FiniteDeformationElastic3D.hGo 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: 19AUg2003 00023 //# UPDATE HISTORY: Sept 2003 00024 //# May28, 2004 00025 //# 00026 //=============================================================================== 00027 00028 #ifndef FiniteDeformationElastic3D_h 00029 #define FiniteDeformationElastic3D_h 00030 00031 #include <math.h> 00032 00033 #include <ID.h> 00034 #include <Channel.h> 00035 #include <OPS_Globals.h> 00036 #include <ConsoleErrorHandler.h> 00037 00038 #include <Matrix.h> 00039 #include <Vector.h> 00040 #include <Tensor.h> 00041 #include <stresst.h> 00042 #include <straint.h> 00043 00044 #include <NDMaterial.h> 00045 00046 class FiniteDeformationElastic3D : public NDMaterial 00047 { 00048 public: 00049 00050 FiniteDeformationElastic3D(int tag, int classTag, double ); 00051 FiniteDeformationElastic3D(); 00052 00053 virtual ~FiniteDeformationElastic3D(); 00054 virtual double getRho(void); 00055 00056 virtual int setTrialF(const straintensor &f); 00057 virtual int setTrialFIncr(const straintensor &df); 00058 virtual int setTrialC(const straintensor &c); 00059 virtual int setTrialCIncr(const straintensor &dc); 00060 00061 virtual const Tensor& getTangentTensor(void) ; // Default Lagrangian Tangent Tensor 00062 virtual const Tensor& getInitialTangentTensor(void) ; 00063 00064 virtual const straintensor& getStrainTensor(void) ; // Default Green Lagrangian Strain 00065 virtual const stresstensor& getStressTensor(void) ; // Default 2nd Piola Kirchhoff Stress 00066 virtual const straintensor& getF(void); 00067 virtual const straintensor& getC(void); 00068 00069 virtual int commitState(void) ; 00070 virtual int revertToLastCommit(void) ; 00071 virtual int revertToStart(void) ; 00072 00073 virtual NDMaterial *getCopy (void); 00074 virtual NDMaterial *getCopy (const char *type); 00075 00076 virtual const char *getType (void) const; 00077 //virtual int getOrder (void) const; 00078 00079 virtual int sendSelf(int commitTag, Channel &theChannel); 00080 virtual int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker); 00081 00082 virtual void Print(OPS_Stream &s, int flag = 0); 00083 00084 virtual const stresstensor& getPK1StressTensor(void) ; 00085 virtual const stresstensor& getCauchyStressTensor(void) ; 00086 00087 protected: 00088 00089 double rho; 00090 00091 }; 00092 00093 #endif 00094 |