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