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 #ifndef NeoHookeanCompressible3D_h
00028 #define NeoHookeanCompressible3D_h
00029
00030 #include <FiniteDeformationElastic3D.h>
00031
00032 class NeoHookeanCompressible3D : public FiniteDeformationElastic3D
00033 {
00034 public:
00035 NeoHookeanCompressible3D(int tag, int classTag, double, double, double );
00036 NeoHookeanCompressible3D(int tag, double, double, double );
00037 NeoHookeanCompressible3D();
00038
00039 virtual ~NeoHookeanCompressible3D();
00040
00041 const char *getClassType(void) const {return "NeoHookeanCompressible3D";};
00042
00043 double getRho(void);
00044
00045 int setTrialF(const straintensor &f);
00046 int setTrialFIncr(const straintensor &df);
00047 int setTrialC(const straintensor &c);
00048 int setTrialCIncr(const straintensor &dc);
00049
00050 const Tensor& getTangentTensor(void) ;
00051 const Tensor& getInitialTangentTensor(void) ;
00052
00053 const straintensor& getStrainTensor(void) ;
00054 const stresstensor& getStressTensor(void) ;
00055 const straintensor& getF(void);
00056 const straintensor& getC(void);
00057
00058 int commitState(void) ;
00059 int revertToLastCommit(void) ;
00060 int revertToStart(void) ;
00061
00062 NDMaterial *getCopy (void);
00063 NDMaterial *getCopy (const char *type);
00064
00065 const char *getType (void) const;
00066
00067
00068 int sendSelf(int commitTag, Channel &theChannel);
00069 int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00070
00071 void Print(OPS_Stream &s, int flag = 0);
00072
00073
00074
00075
00076 const stresstensor& getPK1StressTensor(void) ;
00077 const stresstensor& getCauchyStressTensor(void) ;
00078
00079
00080 private:
00081
00082 int ComputeTrials(void);
00083
00084 private:
00085
00086 double rho;
00087 double K;
00088 double G;
00089
00090 straintensor F;
00091 straintensor C;
00092 double J;
00093 straintensor Cinv;
00094
00095 int FromForC;
00096
00097 Tensor Stiffness;
00098 straintensor thisGreenStrain;
00099 stresstensor thisPK2Stress;
00100
00101 static stresstensor static_NHC_stress;
00102 };
00103
00104 #endif
00105