00001 /* -*- C++ -*- */ 00002 /* 00003 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00004 * 00005 * Fehmi Cirak 00006 * California Institute of Technology 00007 * (C) 2005 All Rights Reserved 00008 * 00009 * <LicenseText> 00010 * 00011 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00012 */ 00013 #ifndef LINEARELASTICPSTRESS_H 00014 #define LINEARELASTICPSTRESS_H 00015 00016 #include "MaterialBase.h" 00017 00018 00019 namespace shells { 00020 00021 class LinearElasticPStress : public MaterialBase { 00022 private: 00023 LinearElasticPStress(); // use createMaterial instead 00024 00025 public: 00026 ~LinearElasticPStress(); 00027 00028 void updateStress(double * const stress, 00029 double const * const gstrain, 00030 double const dtime = 0.0, 00031 double * const internal=NULL, 00032 double const * const gstrainPrv=NULL); 00033 00034 double density(); 00035 double estimatedElasticityConst(); 00036 void initialization(double * history); 00037 00038 static MaterialBase * createMaterial() { 00039 return new LinearElasticPStress(); 00040 } 00041 00042 private: 00043 static const int _numberInternalVariables = 0; 00044 00045 double _youngModulus; 00046 double _poissonRatio; 00047 double _massDensity; 00048 }; 00049 00050 } 00051 00052 // inlined functions 00053 inline double shells::LinearElasticPStress::density() 00054 { 00055 return _massDensity; 00056 } 00057 00058 inline double shells::LinearElasticPStress::estimatedElasticityConst() 00059 { 00060 return _youngModulus; 00061 } 00062 00063 inline void shells::LinearElasticPStress::initialization(double * history) 00064 { 00065 return; 00066 } 00067 00068 #endif // LINEARELASTICPSTRESS_H