00001
00002
00004
00005 #if !defined PLASTICHARDENING2D_H
00006 #define PLASTICHARDENING2D_H
00007
00008 #include "YS_Evolution2D.h"
00009
00010 class PlasticHardening2D : public YS_Evolution2D
00011 {
00012 public:
00013 PlasticHardening2D(int tag, int classTag, double min_iso_factor,
00014 double iso_ratio, double kin_ratio,
00015 PlasticHardeningMaterial &kpx_pos,
00016 PlasticHardeningMaterial &kpx_neg,
00017 PlasticHardeningMaterial &kpy_pos,
00018 PlasticHardeningMaterial &kpy_neg, double dir);
00019
00020 virtual ~PlasticHardening2D();
00021
00022 virtual int commitState();
00023 virtual int revertToLastCommit(void);
00024
00025 virtual void Print(OPS_Stream &s, int flag =0);
00026 virtual YS_Evolution *getCopy(void)=0;
00027 virtual const Vector &getEquiPlasticStiffness(void);
00028 double getTrialPlasticStrains(int dof);
00029 double getCommitPlasticStrains(int dof);
00030
00031 protected:
00032 virtual void setTrialPlasticStrains(double ep, const Vector &f, const Vector &g);
00033 virtual double getIsoPlasticStiffness(int dir);
00034 virtual double getKinPlasticStiffness(int dir);
00035 virtual Vector& getEvolDirection(Vector &f_new);
00036
00037 protected:
00038
00039 PlasticHardeningMaterial *kpMatXPos, *kpMatYPos;
00040 PlasticHardeningMaterial *kpMatXNeg, *kpMatYNeg;
00041 bool defPosX, defPosY;
00042 double direction;
00043
00044 };
00045
00046 #endif