00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TZSIMPLE1_H
00016 #define TZSIMPLE1_H
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <UniaxialMaterial.h>
00026
00027
00028 class TzSimple1 : public UniaxialMaterial
00029 {
00030 public:
00031 TzSimple1(int tag, int classtag, int tzType, double tult, double z50, double dashpot);
00032 TzSimple1();
00033 ~TzSimple1();
00034
00035 const char *getClassType(void) const {return "TzSimple1";};
00036
00037 int setTrialStrain(double y, double yRate);
00038 double getStrain(void);
00039 double getStress(void);
00040 double getTangent(void);
00041 double getInitialTangent(void);
00042 double getStrainRate(void);
00043 double getDampTangent(void);
00044
00045 int commitState(void);
00046 int revertToLastCommit(void);
00047 int revertToStart(void);
00048
00049 UniaxialMaterial *getCopy(void);
00050
00051 int sendSelf(int commitTag, Channel &theChannel);
00052 int recvSelf(int commitTag, Channel &theChannel,
00053 FEM_ObjectBroker &theBroker);
00054
00055 void Print(OPS_Stream &s, int flag =0);
00056
00057
00058 protected:
00059
00060
00061 int tzType;
00062 double tult;
00063 double z50;
00064 double zref;
00065 double np;
00066 double dashpot;
00067
00068 private:
00069
00070
00071 void getNearField(double zlast, double dz, double dz_old);
00072 void getFarField(double z);
00073
00074
00075 double Cz;
00076 double Ct;
00077 double Ctangent;
00078
00079
00080 double Tz;
00081 double Tt;
00082 double Ttangent;
00083 double TzRate;
00084
00085
00086 double CNF_tin;
00087 double CNF_zin;
00088 double CNF_t;
00089 double CNF_z;
00090 double CNF_tang;
00091
00092
00093 double TNF_tin;
00094 double TNF_zin;
00095 double TNF_t;
00096 double TNF_z;
00097 double TNF_tang;
00098
00099
00100 double CFar_z;
00101 double CFar_t;
00102 double CFar_tang;
00103
00104
00105 double TFar_z;
00106 double TFar_t;
00107 double TFar_tang;
00108
00109 double initialTangent;
00110
00111 };
00112
00113
00114 #endif