SchmidCostaExponentialLaw2d.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
00029
00030 #ifndef SCHMIDCOSTAEXPONENTIALLAW2D_HPP_
00031 #define SCHMIDCOSTAEXPONENTIALLAW2D_HPP_
00032
00033 #include "AbstractIncompressibleMaterialLaw.hpp"
00034
00051 class SchmidCostaExponentialLaw2d : public AbstractIncompressibleMaterialLaw<2>
00052 {
00053 private :
00054
00056 double mA;
00057
00059 std::vector<std::vector<double> > mB;
00060
00062 c_matrix<double,2,2> mIdentity;
00063
00065 c_matrix<double,2,2>* mpChangeOfBasisMatrix;
00066
00067 public :
00068
00070 SchmidCostaExponentialLaw2d();
00071
00090 void ComputeStressAndStressDerivative(c_matrix<double,2,2>& rC,
00091 c_matrix<double,2,2>& rInvC,
00092 double pressure,
00093 c_matrix<double,2,2>& rT,
00094 FourthOrderTensor<2>& rDTdE,
00095 bool computeDTdE);
00096
00100 double GetA();
00101
00105 std::vector<std::vector<double> > GetB();
00106
00110 double GetZeroStrainPressure();
00111
00123 void SetChangeOfBasisMatrix(c_matrix<double,2,2>& rChangeOfBasisMatrix)
00124 {
00125 mpChangeOfBasisMatrix = &rChangeOfBasisMatrix;
00126 }
00127 };
00128
00129 #endif