ElasticIsotropic3D.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:           Elastic Isotropic Material implementation:
00013 //# CLASS:             ElasticIsotropic3D
00014 //#
00015 //# VERSION:           0.61803398874989 (golden section)
00016 //# LANGUAGE:          C++
00017 //# TARGET OS:         all...
00018 //# DESIGN:            Zhaohui Yang, Boris Jeremic (jeremic@ucdavis.edu)
00019 //# PROGRAMMER(S):     Zhaohui Yang, Boris Jeremic
00020 //#
00021 //#
00022 //# DATE:              10Oct2000
00023 //# UPDATE HISTORY:    22Nov2002 small fixes 
00024 //#                    Aug2006   Z.Cheng
00025 //#
00026 //===============================================================================
00027                                                                         
00028                                                                         
00029 #ifndef ElasticIsotropic3D_h
00030 #define ElasticIsotropic3D_h
00031          
00032 #include <ElasticIsotropicMaterial.h>
00033 
00034 class ElasticIsotropic3D : public ElasticIsotropicMaterial
00035 {
00036   public:
00037     ElasticIsotropic3D (int tag, double E, double nu, double rho);
00038     ElasticIsotropic3D ();
00039     ~ElasticIsotropic3D ();
00040 
00041     const char *getClassType(void) const {return "ElasticIsotropic3D";};
00042 
00043     int setTrialStrain (const Vector &v);
00044     int setTrialStrain (const Vector &v, const Vector &r);
00045     int setTrialStrainIncr (const Vector &v);
00046     int setTrialStrainIncr (const Vector &v, const Vector &r);
00047     const Matrix &getTangent (void);
00048 
00049     const Vector &getStress (void);
00050     const Vector &getStrain (void);
00051     
00052     int setTrialStrain (const Tensor &v);
00053     int setTrialStrain (const Tensor &v, const Tensor &r);
00054     int setTrialStrainIncr (const Tensor &v);
00055     int setTrialStrainIncr (const Tensor &v, const Tensor &r);
00056     const Tensor &getTangentTensor (void);
00057     const stresstensor& getStressTensor (void);
00058     const straintensor& getStrainTensor (void);
00059  
00060     int commitState (void);
00061     int revertToLastCommit (void);
00062     int revertToStart (void);
00063     
00064     NDMaterial *getCopy (void);
00065     const char *getType (void) const;
00066     int getOrder (void) const;
00067 
00068     void Print(OPS_Stream &s, int flag =0);
00069     
00070   private:  
00071     void setInitElasticStiffness(void);
00072 
00073   protected:
00074 
00075   private:
00076     static Vector sigma;        // Stress vector
00077     static Matrix D;            // Elastic constantsVector sigma;
00078     Vector epsilon;             // Strain vector
00079 
00080     static stresstensor Stress; // Stress tensor    
00081     static Tensor Dt;           // Elastic constants tensor
00082     straintensor Strain;        // Strain tensor    
00083 };
00084 
00085 
00086 #endif
00087 
00088 

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