00001 #ifndef THERISOMAT_H 00002 #define THERISOMAT_H 00003 00004 #include "iotools.h" 00005 #include "alias.h" 00006 struct matrix; 00007 00008 00009 /** 00010 Class defines thermal isotropic dilatancy material 00011 */ 00012 class therisomat 00013 { 00014 public: 00015 therisomat (void); 00016 ~therisomat (void); 00017 00018 /// reads material parameter from file 00019 void read (XFILE *in); 00020 void print (FILE *out); 00021 00022 /// assembles thermal dilatancy %matrix 00023 void matdilat (matrix &d,strastrestate ssst); 00024 /// assembles thermal dilatancy %matrix for 1D stress/strain state 00025 void matdilat_bar (matrix &d); 00026 /// assembles thermal dilatancy %matrix for 2D beam stress/strain state 00027 void matdilat_plbeam (matrix &d); 00028 /// assembles thermal dilatancy %matrix 2D plainstress state 00029 void matdilat_plstress (matrix &d); 00030 /// assembles thermal dilatancy %matrix 2D plainstrain state 00031 void matdilat_plstrain (matrix &d); 00032 /// assembles thermal dilatancy %matrix axisymmetrical problems 00033 void matdilat_axi (matrix &d); 00034 /// assembles thermal dilatancy %matrix for plates 00035 void matdilat_plate (matrix &d); 00036 /// assembles thermal dilatancy %matrix for 3D stress/strain state 00037 void matdilat_spacestr (matrix &d); 00038 00039 /// computes thermal strains 00040 void temprstrains (long ipp); 00041 00042 /// marks required non-mechanical quantities 00043 void give_reqnmq(long *anmq); 00044 /// coefficient of thermal dilatancy 00045 double alpha; 00046 }; 00047 00048 #endif