00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef PYSIMPLE1_H
00017 #define PYSIMPLE1_H
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <UniaxialMaterial.h>
00027
00028 class PySimple1 : public UniaxialMaterial
00029 {
00030 public:
00031 PySimple1(int tag, int classtag, int soilType, double pult, double y50,
00032 double drag, double dashpot);
00033 PySimple1();
00034 ~PySimple1();
00035
00036
00037 const char *getClassType(void) const {return "PySimple1";};
00038
00039 int setTrialStrain(double y, double yRate);
00040 double getStrain(void);
00041 double getStress(void);
00042 double getTangent(void);
00043 double getInitialTangent(void);
00044 double getStrainRate(void);
00045 double getDampTangent(void);
00046
00047 int commitState(void);
00048 int revertToLastCommit(void);
00049 int revertToStart(void);
00050
00051 UniaxialMaterial *getCopy(void);
00052
00053 int sendSelf(int commitTag, Channel &theChannel);
00054 int recvSelf(int commitTag, Channel &theChannel,
00055 FEM_ObjectBroker &theBroker);
00056
00057 void Print(OPS_Stream &s, int flag =0);
00058
00059
00060 protected:
00061
00062
00063 int soilType;
00064 double pult;
00065 double y50;
00066 double drag;
00067 double yref;
00068 double np;
00069 double Elast;
00070 double nd;
00071 double dashpot;
00072
00073
00074 private:
00075
00076
00077 void getGap(double ylast, double dy, double dy_old);
00078 void getClosure(double ylast, double dy);
00079 void getDrag(double ylast, double dy);
00080 void getNearField(double ylast, double dy, double dy_old);
00081 void getFarField(double y);
00082
00083
00084 double NFkrig;
00085
00086
00087 double Cy;
00088 double Cp;
00089 double Ctangent;
00090
00091
00092 double Ty;
00093 double Tp;
00094 double Ttangent;
00095 double TyRate;
00096
00097
00098 double CNFpinr;
00099 double CNFpinl;
00100 double CNFyinr;
00101 double CNFyinl;
00102 double CNF_p;
00103 double CNF_y;
00104 double CNF_tang;
00105
00106
00107 double TNFpinr;
00108 double TNFpinl;
00109 double TNFyinr;
00110 double TNFyinl;
00111 double TNF_p;
00112 double TNF_y;
00113 double TNF_tang;
00114
00115
00116 double CDrag_pin;
00117 double CDrag_yin;
00118 double CDrag_p;
00119 double CDrag_y;
00120 double CDrag_tang;
00121
00122
00123 double TDrag_pin;
00124 double TDrag_yin;
00125 double TDrag_p;
00126 double TDrag_y;
00127 double TDrag_tang;
00128
00129
00130 double CClose_yleft;
00131 double CClose_yright;
00132 double CClose_p;
00133 double CClose_y;
00134 double CClose_tang;
00135
00136
00137 double TClose_yleft;
00138 double TClose_yright;
00139 double TClose_p;
00140 double TClose_y;
00141 double TClose_tang;
00142
00143
00144 double CGap_y;
00145 double CGap_p;
00146 double CGap_tang;
00147
00148
00149 double TGap_y;
00150 double TGap_p;
00151 double TGap_tang;
00152
00153
00154 double CFar_y;
00155 double CFar_p;
00156 double CFar_tang;
00157
00158
00159 double TFar_y;
00160 double TFar_p;
00161 double TFar_tang;
00162
00163 double initialTangent;
00164 };
00165
00166
00167 #endif