FiniteDeformationElastic3D.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:              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 

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