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
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef BoucWenMaterial_h
00035 #define BoucWenMaterial_h
00036
00037 #include <UniaxialMaterial.h>
00038 #include <Matrix.h>
00039
00040 class BoucWenMaterial : public UniaxialMaterial
00041 {
00042 public:
00043 BoucWenMaterial(int tag,
00044 double alpha,
00045 double ko,
00046 double n,
00047 double gamma,
00048 double beta,
00049 double Ao,
00050 double deltaA,
00051 double deltaNu,
00052 double deltaEta,
00053 double tolerance,
00054 int maxNumIter);
00055 BoucWenMaterial();
00056 ~BoucWenMaterial();
00057
00058 const char *getClassType(void) const {return "BoucWenMaterial";};
00059
00060 int setTrialStrain(double strain, double strainRate = 0.0);
00061 double getStrain(void);
00062 double getStress(void);
00063 double getTangent(void);
00064 double signum(double);
00065 int commitState(void);
00066 int revertToLastCommit(void);
00067 int revertToStart(void);
00068 UniaxialMaterial *getCopy(void);
00069 int sendSelf(int commitTag, Channel &theChannel);
00070 int recvSelf(int commitTag, Channel &theChannel,
00071 FEM_ObjectBroker &theBroker);
00072 void Print(OPS_Stream &s, int flag =0);
00073
00074
00075 double getInitialTangent (void);
00076 int setParameter (const char **argv, int argc, Parameter ¶m);
00077 int updateParameter (int parameterID, Information &info);
00078 int activateParameter (int parameterID);
00079 double getStressSensitivity (int gradNumber, bool conditional);
00080 double getStrainSensitivity (int gradNumber);
00081 double getTangentSensitivity (int gradNumber);
00082 double getDampTangentSensitivity(int gradNumber);
00083 double getRhoSensitivity (int gradNumber);
00084 int commitSensitivity (double strainGradient, int gradNumber, int numGrads);
00085
00086 protected:
00087
00088 private:
00089
00090 double alpha;
00091 double ko;
00092 double n;
00093 double gamma;
00094 double beta;
00095 double Ao;
00096 double deltaA;
00097 double deltaNu;
00098 double deltaEta;
00099
00100
00101 double Tstrain, Cstrain;
00102 double Tz, Cz;
00103 double Te, Ce;
00104
00105
00106 double Tstress, Ttangent;
00107
00108 double tolerance;
00109 int maxNumIter;
00110
00111
00112 int parameterID;
00113 Matrix *SHVs;
00114
00115
00116 };
00117
00118
00119 #endif
00120