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,2,2,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