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 #ifndef HardeningMaterial_h
00026 #define HardeningMaterial_h
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #include <UniaxialMaterial.h>
00037 #include <Matrix.h>
00038
00039 class HardeningMaterial : public UniaxialMaterial
00040 {
00041 public:
00042 HardeningMaterial(int tag, double E, double sigmaY,
00043 double K, double H, double eta = 0.0);
00044 HardeningMaterial();
00045 ~HardeningMaterial();
00046
00047 const char *getClassType(void) {return "HardeningMaterial";};
00048
00049 int setTrialStrain(double strain, double strainRate = 0.0);
00050 double getStrain(void);
00051 double getStress(void);
00052 double getTangent(void);
00053 double getInitialTangent(void) {return E;};
00054
00055 int commitState(void);
00056 int revertToLastCommit(void);
00057 int revertToStart(void);
00058
00059 UniaxialMaterial *getCopy(void);
00060
00061 int sendSelf(int commitTag, Channel &theChannel);
00062 int recvSelf(int commitTag, Channel &theChannel,
00063 FEM_ObjectBroker &theBroker);
00064
00065 void Print(OPS_Stream &s, int flag =0);
00066
00067
00068 int setParameter (const char **argv, int argc, Parameter ¶m);
00069 int updateParameter (int parameterID, Information &info);
00070 int activateParameter (int parameterID);
00071 double getStressSensitivity (int gradNumber, bool conditional);
00072 double getInitialTangentSensitivity (int gradNumber);
00073 int commitSensitivity (double strainGradient, int gradNumber, int numGrads);
00074
00075
00076 protected:
00077
00078 private:
00079
00080 double E;
00081 double sigmaY;
00082 double Hiso;
00083 double Hkin;
00084 double eta;
00085
00086
00087 double CplasticStrain;
00088 double CbackStress;
00089 double Chardening;
00090
00091
00092 double TplasticStrain;
00093 double TbackStress;
00094 double Thardening;
00095
00096
00097 double Tstrain;
00098 double Tstress;
00099 double Ttangent;
00100
00101
00102 int parameterID;
00103 Matrix *SHVs;
00104
00105 };
00106
00107
00108 #endif
00109