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 #include <UniaxialMaterial.h>
00043
00044 class ElasticMaterial : public UniaxialMaterial
00045 {
00046 public:
00047 ElasticMaterial(int tag, double E, double eta = 0.0);
00048 ElasticMaterial();
00049 ~ElasticMaterial();
00050
00051 const char *getClassType(void) const {return "ElasticMaterial";};
00052
00053 int setTrialStrain(double strain, double strainRate = 0.0);
00054 int setTrial(double strain, double &stress, double &tangent, double strainRate = 0.0);
00055 double getStrain(void) {return trialStrain;};
00056 double getStrainRate(void) {return trialStrainRate;};
00057 double getStress(void);
00058 double getTangent(void) {return E;};
00059 double getDampTangent(void) {return eta;};
00060 double getInitialTangent(void) {return E;};
00061
00062 int commitState(void);
00063 int revertToLastCommit(void);
00064 int revertToStart(void);
00065
00066 UniaxialMaterial *getCopy(void);
00067
00068 int sendSelf(int commitTag, Channel &theChannel);
00069 int recvSelf(int commitTag, Channel &theChannel,
00070 FEM_ObjectBroker &theBroker);
00071
00072 void Print(OPS_Stream &s, int flag =0);
00073
00074 int setParameter(const char **argv, int argc, Parameter ¶m);
00075 int updateParameter(int parameterID, Information &info);
00076
00077
00078 int activateParameter(int parameterID);
00079 double getStressSensitivity(int gradNumber, bool conditional);
00080 double getInitialTangentSensitivity(int gradNumber);
00081 int commitSensitivity(double strainGradient, int gradNumber, int numGrads);
00082
00083
00084 protected:
00085
00086 private:
00087 double trialStrain;
00088 double trialStrainRate;
00089 double E;
00090 double eta;
00091
00092
00093 int parameterID;
00094
00095 };
00096
00097
00098 #endif
00099