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 #ifndef COMPRESSIBLEEXPONENTIALLAW_HPP_
00029 #define COMPRESSIBLEEXPONENTIALLAW_HPP_
00030
00031
00032 #include "AbstractCompressibleMaterialLaw.hpp"
00033
00052 template<unsigned DIM>
00053 class CompressibleExponentialLaw : public AbstractCompressibleMaterialLaw<DIM>
00054 {
00055 private :
00057 double mA;
00058
00060 std::vector<std::vector<double> > mB;
00061
00063 double mCompressibilityParam;
00064
00066 c_matrix<double,DIM,DIM> mIdentity;
00067 public :
00068
00070 CompressibleExponentialLaw();
00071
00090 void ComputeStressAndStressDerivative(c_matrix<double,DIM,DIM>& rC,
00091 c_matrix<double,DIM,DIM >& rInvC,
00092 double pressure,
00093 c_matrix<double,DIM,DIM>& rT,
00094 FourthOrderTensor<DIM,DIM,DIM,DIM>& rDTdE,
00095 bool computeDTdE);
00096
00098 double GetA()
00099 {
00100 return mA;
00101 }
00102
00104 std::vector<std::vector<double> > GetB()
00105 {
00106 return mB;
00107 }
00108
00110 double GetCompressibilityParam()
00111 {
00112 return mCompressibilityParam;
00113 }
00114 };
00115
00116
00117
00118 #endif