00001 #ifndef EDGEM_H 00002 #define EDGEM_H 00003 00004 #include <stdio.h> 00005 #include "alias.h" 00006 00007 /** 00008 class mechanical edges 00009 00010 this class is used in hemivariational inequalities 00011 00012 this class is strongly connected with the class gedge in GEFEL 00013 class gedge contains node numbers, previous and next edges, 00014 first and last nodes, direction and normal %vectors 00015 the class gedge in GEFEL contains problem independent informations 00016 00017 the class edgem contains problem dependent informations 00018 00019 JK, 8.8.2007 00020 */ 00021 00022 class edgem 00023 { 00024 public: 00025 edgem (void); 00026 ~edgem (void); 00027 void read (FILE *in); 00028 void init (long edid); 00029 00030 void nodal_displacements (long lcid); 00031 void tan_nor_displacements (); 00032 void compute_jumps (); 00033 void compute_edge_functional_derivative (long lcid,double *v); 00034 00035 00036 /// number of nodes on edge 00037 long nn; 00038 00039 /// number of approximated functions 00040 long napfun; 00041 00042 /// number of assigned general edge from GEFEL 00043 long ned; 00044 00045 /// displacements are discontinuous along the edge, therefore displacements 00046 /// from each side of the edge are required in order to compute the jump between them 00047 00048 /// nodal displacements in the global coordinate system 00049 double u1,u2,u3,u4,v1,v2,v3,v4; 00050 00051 /// tangentional displacements (displacements in the direction defined by the edge) 00052 double td1,td2,td3,td4; 00053 00054 /// normal displacements (displacements normal to the direction defined by the edge) 00055 double nd1,nd2,nd3,nd4; 00056 00057 /// jumps in the tangential and normal directions 00058 /// at each end of the edge 00059 double jt1,jt2,jn1,jn2; 00060 00061 00062 /// auxiliary array for nodal displacements 00063 /// this class serves only for 2D problems 00064 /// it means that nodes contain 2 DOFs 00065 double *r; 00066 00067 /// type of material 00068 /// in the case of hemivariational inequalities, the material model describes the multifunction b 00069 mattype *tm; 00070 /// number of appropriate material type 00071 long *idm; 00072 00073 }; 00074 00075 #endif