00001 #ifndef ENDNODEM_H 00002 #define ENDNODEM_H 00003 00004 #include <stdio.h> 00005 #include "alias.h" 00006 #include "iotools.h" 00007 00008 /** 00009 class endnodem defines general end node for mechanical problems 00010 00011 this class is used in hemivariational inequalities 00012 00013 this class is strongly connected with the class endnode in GEFEL 00014 class endnode contains node numbers, first and last nodes, 00015 the class endnode in GEFEL contains problem independent informations 00016 00017 the class endnodem contains problem dependent informations 00018 00019 JK, 1.3.2009 00020 */ 00021 class endnodem 00022 { 00023 public: 00024 endnodem (); 00025 ~endnodem (void); 00026 00027 void nodal_displacements (long lcid); 00028 void compute_jumps (); 00029 void compute_endnode_functional_derivative (long lcid,double *v); 00030 00031 00032 /// number of approximated functions 00033 long napfun; 00034 00035 /// number of assigned general endnode from GEFEL 00036 long nen; 00037 00038 /// displacements are discontinuous at end node, therefore displacements 00039 /// from each side of the end node are required in order to compute the jump between them 00040 00041 /// nodal displacements in the global coordinate system 00042 double u1,u2,v1,v2; 00043 00044 /// jumps in the displacement field 00045 double ju,jv; 00046 00047 /// auxiliary array for nodal displacements 00048 /// this class serves only for 2D problems 00049 /// it means that nodes contain 2 DOFs 00050 double *r; 00051 00052 /// type of material 00053 /// in the case of hemivariational inequalities, the material model describes the multifunction b 00054 mattype *tm; 00055 /// number of appropriate material type 00056 long *idm; 00057 00058 }; 00059 00060 #endif