00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef ABSTRACTISOTROPICCOMPRESSIBLEMATERIALLAW_HPP_
00031 #define ABSTRACTISOTROPICCOMPRESSIBLEMATERIALLAW_HPP_
00032
00033 #include "AbstractCompressibleMaterialLaw.hpp"
00034
00046 template<unsigned DIM>
00047 class AbstractIsotropicCompressibleMaterialLaw : public AbstractCompressibleMaterialLaw<DIM>
00048 {
00049 protected :
00050
00058 virtual double Get_dW_dI1(double I1, double I2, double I3)=0;
00059
00067 virtual double Get_dW_dI2(double I1, double I2, double I3)=0;
00068
00076 virtual double Get_dW_dI3(double I1, double I2, double I3)=0;
00077
00078
00086 virtual double Get_d2W_dI1(double I1, double I2, double I3)=0;
00087
00095 virtual double Get_d2W_dI2(double I1, double I2, double I3)=0;
00096
00104 virtual double Get_d2W_dI3(double I1, double I2, double I3)=0;
00105
00106
00114 virtual double Get_d2W_dI2I3(double I1, double I2, double I3)=0;
00115
00123 virtual double Get_d2W_dI1I3(double I1, double I2, double I3)=0;
00124
00132 virtual double Get_d2W_dI1I2(double I1, double I2, double I3)=0;
00133
00134 public :
00135
00157 void ComputeStressAndStressDerivative(c_matrix<double,DIM,DIM>& rC,
00158 c_matrix<double,DIM,DIM>& rInvC,
00159 double pressure,
00160 c_matrix<double,DIM,DIM>& rT,
00161 FourthOrderTensor<DIM,DIM,DIM,DIM>& rDTdE,
00162 bool computeDTdE);
00163
00167 virtual ~AbstractIsotropicCompressibleMaterialLaw();
00168 };
00169
00170 #endif