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 Steel01_h
00027 #define Steel01_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #include <UniaxialMaterial.h>
00044
00045
00046 #define STEEL_01_DEFAULT_A1 0.0
00047 #define STEEL_01_DEFAULT_A2 55.0
00048 #define STEEL_01_DEFAULT_A3 0.0
00049 #define STEEL_01_DEFAULT_A4 55.0
00050
00066 class Steel01 : public UniaxialMaterial
00067 {
00068 public:
00070 Steel01(int tag, double fy, double E0, double b,
00071
00072 double a1 = STEEL_01_DEFAULT_A1, double a2 = STEEL_01_DEFAULT_A2,
00073 double a3 = STEEL_01_DEFAULT_A3, double a4 = STEEL_01_DEFAULT_A4,
00074 double min = NEG_INF_STRAIN, double max = POS_INF_STRAIN);
00076 Steel01();
00078 ~Steel01();
00079
00081 int setTrialStrain(double strain, double strainRate = 0.0);
00083 int setTrial (double strain, double &stress, double &tangent, double strainRate = 0.0);
00085 double getStrain(void);
00087 double getStress(void);
00089 double getTangent(void);
00091 double getSecant (void);
00092
00094 int commitState(void);
00096 int revertToLastCommit(void);
00098 int revertToStart(void);
00099
00101 UniaxialMaterial *getCopy(void);
00102
00104 int sendSelf(int commitTag, Channel &theChannel);
00106 int recvSelf(int commitTag, Channel &theChannel,
00107 FEM_ObjectBroker &theBroker);
00108
00110 void Print(ostream &s, int flag =0);
00111
00113 int setParameter(char **argv, int argc, Information &info);
00115 int updateParameter(int parameterID, Information &info);
00116
00117 protected:
00118
00119 private:
00120
00121 double fy;
00122 double E0;
00123 double b;
00124 double a1;
00126 double a2;
00128 double a3;
00130 double a4;
00131 double epsmin;
00132 double epsmax;
00133
00134
00135 double epsy;
00137 double Esh;
00138
00139
00140 double CminStrain;
00141 double CmaxStrain;
00142 double CshiftP;
00143 double CshiftN;
00144 int Cloading;
00145
00146
00148
00149
00150
00151
00152
00153 double Cstrain;
00155 double Cstress;
00157 double Ctangent;
00158
00159
00160 double TminStrain;
00162 double TmaxStrain;
00164 double TshiftP;
00166 double TshiftN;
00168 int Tloading;
00170 int Tfailed;
00171
00172
00173 double Tstrain;
00175 double Tstress;
00177 double Ttangent;
00178
00179
00181 void setHistoryVariables ();
00182
00184 void determineTrialState (double dStrain);
00185
00187 void detectLoadReversal (double dStrain);
00188 };
00189
00190 #endif