00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef PYLIQ1_H
00018 #define PYLIQ1_H
00019
00020
00021
00022
00023
00024
00025
00026 #include <UniaxialMaterial.h>
00027 #include <Domain.h>
00028 #include <FourNodeQuad.h>
00029 #include <FluidSolidPorousMaterial.h>
00030 #include <PySimple1.h>
00031 #include <iostream>
00032 #include <string>
00033
00034 class PyLiq1 : public PySimple1
00035 {
00036 public:
00037 PyLiq1(int tag, int classtag, int soilType, double pult, double y50, double drag,
00038 double dashpot, double pRes, int solidElem1, int solidElem2, Domain *theDomain);
00039 PyLiq1();
00040 ~PyLiq1();
00041
00042 const char *getClassType(void) const {return "PyLiq1";};
00043
00044 int setTrialStrain(double y, double yRate);
00045 double getStrain(void);
00046 double getStress(void);
00047 double getTangent(void);
00048 double getStrainRate(void);
00049 double getDampTangent(void);
00050 double getInitialTangent(void);
00051
00052 int commitState(void);
00053 int revertToLastCommit(void);
00054 int revertToStart(void);
00055
00056 UniaxialMaterial *getCopy(void);
00057
00058 int sendSelf(int commitTag, Channel &theChannel);
00059 int recvSelf(int commitTag, Channel &theChannel,
00060 FEM_ObjectBroker &theBroker);
00061
00062
00063 int updateParameter(int snum, Information &eleInformation);
00064
00065 void Print(OPS_Stream &s, int flag =0);
00066
00067 protected:
00068
00069 private:
00070
00071
00072 double pRes;
00073
00074
00075 double Ty;
00076 double Cy;
00077 double Tp;
00078 double Cp;
00079 double Tangent;
00080 double maxTangent;
00081 double Tru;
00082 double Cru;
00083 double Hru;
00084
00085
00086
00087 int solidElem1;
00088 int solidElem2;
00089 double meanConsolStress;
00090 static int loadStage;
00091 int lastLoadStage;
00092 std::string elemFlag;
00093 Domain *theDomain;
00094 FourNodeQuad *theQuad1;
00095 FourNodeQuad *theQuad2;
00096
00097
00098 double initialTangent;
00099
00100
00101 double getEffectiveStress(void);
00102 static Vector stressV3;
00103
00104 };
00105
00106 #endif // PYLIQ1_H