00001 #ifndef ELEMENT_H 00002 #define ELEMENT_H 00003 00004 #include <stdio.h> 00005 #include "alias.h" 00006 #include "iotools.h" 00007 //#include "vector.h" 00008 #include "matrix.h" 00009 00010 00011 /** 00012 Class element defines general finite element. 00013 00014 Created by JK, 00015 */ 00016 00017 class element 00018 { 00019 public: 00020 element (void); 00021 ~element (void); 00022 void read (XFILE *in,long eid); 00023 void readmat (XFILE *in); 00024 void print (FILE *out,long eid); 00025 void printmat (FILE *out); 00026 00027 void alloc_initdispl (long ndofe); 00028 void initdisplacement (double *r,long ndofe); 00029 void subtrinitdispl (double *r,long ndofe); 00030 void alloc_growstr (long eid); 00031 00032 /// type of element 00033 elemtype te; 00034 /// indicator of prescribed displacements on element 00035 long prescdispl; 00036 /// indicator of temperature changes on element 00037 long presctemp; 00038 /// computation of reactions 00039 long react; 00040 /// array of integration point pointers 00041 long **ipp; 00042 /// type of cross section 00043 crsectype crst; 00044 /// number of appropriate cross section type 00045 long idcs; 00046 /// stress/strain state 00047 strastrestate ssst; 00048 /// number of strain/stress components 00049 long ncomp; 00050 00051 /// array of initial displacements 00052 /// it is used in problems with changing number of elements 00053 double *initdispl; 00054 00055 /// transformation %matrix due to hanging nodes 00056 matrix *tmat; 00057 00058 /* 00059 priprava pro kodova cisla na prvku 00060 00061 number of element only code numbers 00062 long necn; 00063 array containing element only code numbers 00064 long *cne; 00065 */ 00066 00067 /// type of material 00068 mattype *tm; 00069 /// number of appropriate material type 00070 long *idm; 00071 /// number of material types 00072 long nm; 00073 00074 }; 00075 00076 #endif