00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef ElasticIsotropic3D_h
00027 #define ElasticIsotropic3D_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #include <ElasticIsotropicMaterial.h>
00040
00041 #include <Matrix.h>
00042 #include <Vector.h>
00043 #include <ID.h>
00044
00045 #include <Tensor.h>
00046 #include <stresst.h>
00047 #include <straint.h>
00048
00050 class ElasticIsotropic3D : public ElasticIsotropicMaterial
00051 {
00052 public:
00054 ElasticIsotropic3D (int tag, double E, double nu, double expp = 0.6, double pr = 100.0, double pop = 0.0);
00056 ElasticIsotropic3D ();
00058 ~ElasticIsotropic3D ();
00059
00061 int setTrialStrain (const Vector &v);
00063 int setTrialStrain (const Vector &v, const Vector &r);
00065 int setTrialStrainIncr (const Vector &v);
00067 int setTrialStrainIncr (const Vector &v, const Vector &r);
00069 const Matrix &getTangent (void);
00071 const Vector &getStress (void);
00073 const Vector &getStrain (void);
00074
00076 int setTrialStrain (const Tensor &v);
00078 int setTrialStrain (const Tensor &v, const Tensor &r);
00080 int setTrialStrainIncr (const Tensor &v);
00082 int setTrialStrainIncr (const Tensor &v, const Tensor &r);
00084 const Tensor &getTangentTensor (void);
00086 const stresstensor getStressTensor (void);
00088 const Tensor &getStrainTensor (void);
00089
00091 int commitState (void);
00093 int revertToLastCommit (void);
00095 int revertToStart (void);
00096
00098 NDMaterial *getCopy (void);
00100 const char *getType (void) const;
00102 int getOrder (void) const;
00103
00105 int sendSelf(int commitTag, Channel &theChannel);
00107 int recvSelf(int commitTag, Channel &theChannel,
00108 FEM_ObjectBroker &theBroker);
00109
00111 void Print(ostream &s, int flag =0);
00113 void setInitElasticStiffness(void);
00114
00116 private:
00117
00118
00119 protected:
00120
00121 private:
00122 static Vector sigma;
00123 static Matrix D;
00124 Vector epsilon;
00125
00126 double exp;
00127 double p_ref;
00128 double po;
00129 stresstensor Stress;
00130 Tensor Dt;
00131 Tensor Dt_commit;
00132 straintensor Strain;
00133
00134 };
00135
00136
00137 #endif
00138
00139
00140 ÿ