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 ElasticPPMaterial_h
00027 #define ElasticPPMaterial_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #include <UniaxialMaterial.h>
00042
00053 class ElasticPPMaterial : public UniaxialMaterial
00054 {
00055 public:
00057 ElasticPPMaterial(int tag, double E, double eyp);
00058
00060 ElasticPPMaterial(int tag, double E, double eyp, double eyn, double ezero);
00062 ElasticPPMaterial();
00063
00065 ~ElasticPPMaterial();
00066
00068 int setTrialStrain(double strain, double strainRate = 0.0);
00070 double getStrain(void);
00072 double getStress(void);
00074 double getTangent(void);
00075
00077 double getSecant (void);
00078
00080 int commitState(void);
00082 int revertToLastCommit(void);
00084 int revertToStart(void);
00085
00087 UniaxialMaterial *getCopy(void);
00088
00090 int sendSelf(int commitTag, Channel &theChannel);
00092 int recvSelf(int commitTag, Channel &theChannel,
00093 FEM_ObjectBroker &theBroker);
00094
00096 void Print(ostream &s, int flag =0);
00097
00098 protected:
00099
00100 private:
00102 double fyp, fyn;
00103 double ezero;
00104 double E;
00105 double trialStrain;
00106 double eptrial;
00107 double ep;
00108 };
00109
00110
00111 #endif
00112
00113
00114