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 "AbstractMaterialLaw.hpp"
00034
00044 template<unsigned DIM>
00045 class AbstractIsotropicCompressibleMaterialLaw : public AbstractMaterialLaw<DIM>
00046 {
00047 protected :
00048
00056 virtual double Get_dW_dI1(double I1, double I2, double I3)=0;
00057
00065 virtual double Get_dW_dI2(double I1, double I2, double I3)=0;
00066
00074 virtual double Get_dW_dI3(double I1, double I2, double I3)=0;
00075
00076
00084 virtual double Get_d2W_dI1(double I1, double I2, double I3)=0;
00085
00093 virtual double Get_d2W_dI2(double I1, double I2, double I3)=0;
00094
00102 virtual double Get_d2W_dI3(double I1, double I2, double I3)=0;
00103
00104
00112 virtual double Get_d2W_dI2I3(double I1, double I2, double I3)=0;
00113
00121 virtual double Get_d2W_dI1I3(double I1, double I2, double I3)=0;
00122
00130 virtual double Get_d2W_dI1I2(double I1, double I2, double I3)=0;
00131
00132 public :
00133
00155 void ComputeStressAndStressDerivative(c_matrix<double,DIM,DIM>& rC,
00156 c_matrix<double,DIM,DIM>& rInvC,
00157 double pressure,
00158 c_matrix<double,DIM,DIM>& rT,
00159 FourthOrderTensor<DIM,DIM,DIM,DIM>& rDTdE,
00160 bool computeDTdE);
00161
00165 virtual ~AbstractIsotropicCompressibleMaterialLaw();
00166
00167
00168
00175 void SetChangeOfBasisMatrix(c_matrix<double,DIM,DIM>& rChangeOfBasisMatrix)
00176 {
00177 }
00178 };
00179
00180 #endif