CompressibleExponentialLaw.hpp
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
00051 template<unsigned DIM>
00052 class CompressibleExponentialLaw : public AbstractCompressibleMaterialLaw<DIM>
00053 {
00054 private:
00055
00057 double mA;
00058
00060 std::vector<std::vector<double> > mB;
00061
00063 double mCompressibilityParam;
00064
00066 c_matrix<double,DIM,DIM> mIdentity;
00067
00068 public:
00069
00071 CompressibleExponentialLaw();
00072
00091 void ComputeStressAndStressDerivative(c_matrix<double,DIM,DIM>& rC,
00092 c_matrix<double,DIM,DIM >& rInvC,
00093 double pressure,
00094 c_matrix<double,DIM,DIM>& rT,
00095 FourthOrderTensor<DIM,DIM,DIM,DIM>& rDTdE,
00096 bool computeDTdE);
00097
00099 double GetA()
00100 {
00101 return mA;
00102 }
00103
00105 std::vector<std::vector<double> > GetB()
00106 {
00107 return mB;
00108 }
00109
00111 double GetCompressibilityParam()
00112 {
00113 return mCompressibilityParam;
00114 }
00115 };
00116
00117 #endif