NeoHookeanCompressible3D.h

Go to the documentation of this file.
00001 //===============================================================================
00002 //# COPYRIGHT (C): Woody's license (by BJ):
00003 //                 ``This    source  code is Copyrighted in
00004 //                 U.S.,  for  an  indefinite  period,  and anybody
00005 //                 caught  using it without our permission, will be
00006 //                 mighty good friends of ourn, cause we don't give
00007 //                 a  darn.  Hack it. Compile it. Debug it. Run it.
00008 //                 Yodel  it.  Enjoy it. We wrote it, that's all we
00009 //                 wanted to do.''
00010 //
00011 //# PROJECT:           Object Oriented Finite Element Program
00012 //# PURPOSE:           Finite Deformation Hyper-Elastic classes
00013 //# CLASS:
00014 //#
00015 //# VERSION:           0.6_(1803398874989) (golden section)
00016 //# LANGUAGE:          C++
00017 //# TARGET OS:         all...
00018 //# DESIGN:            Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu)
00019 //# PROGRAMMER(S):     Zhao Cheng, Boris Jeremic
00020 //#
00021 //#
00022 //# DATE:              July 2004
00023 //# UPDATE HISTORY:
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) ;        // Default Lagrangian Tangent Tensor
00051     const Tensor& getInitialTangentTensor(void) ;
00052 
00053     const  straintensor& getStrainTensor(void) ;   // Default Green Lagrangian Strain
00054     const  stresstensor& getStressTensor(void) ;   // Default 2nd Piola Kirchhoff Stress
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     //int getOrder (void) const;
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 //    int setParameter(char **argv, int argc, Information &info);
00074 //    int updateParameter(int parameterID, Information &info);
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;  // only for static reference return
00102 };
00103 
00104 #endif
00105 

Generated on Mon Oct 23 15:05:14 2006 for OpenSees by doxygen 1.5.0