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 ElasticMaterial_h
00027 #define ElasticMaterial_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #include <UniaxialMaterial.h>
00045
00054 class ElasticMaterial : public UniaxialMaterial
00055 {
00056 public:
00064 ElasticMaterial(int tag, double E, double eta = 0.0);
00065
00069 ElasticMaterial();
00070
00072 ~ElasticMaterial();
00073
00074
00076 int setTrialStrain(double strain, double strainRate = 0.0);
00078 double getStrain(void) {return trialStrain;};
00080 double getStrainRate(void) {return trialStrainRate;};
00082 double getStress(void);
00084 double getTangent(void) {return E;};
00086 double getDampTangent(void) {return eta;};
00087
00089 int commitState(void);
00091 int revertToLastCommit(void);
00093 int revertToStart(void);
00094
00096 UniaxialMaterial *getCopy(void);
00097
00099 int sendSelf(int commitTag, Channel &theChannel);
00101 int recvSelf(int commitTag, Channel &theChannel,
00102 FEM_ObjectBroker &theBroker);
00103
00105 void Print(ostream &s, int flag =0);
00106
00108 int setParameter(char **argv, int argc, Information &info);
00110 int updateParameter(int parameterID, Information &info);
00111
00112 protected:
00113
00114 private:
00116 double commitStrain;
00118 double commitStrainRate;
00120 double trialStrain;
00122 double trialStrainRate;
00124 double E;
00126 double eta;
00127 };
00128
00129
00130 #endif
00131