00001
00002
00004
00005 #if !defined YS_EVOLUTION2D_H
00006 #define YS_EVOLUTION2D_H
00007
00008 #include "YS_Evolution.h"
00009 #include "PlasticHardeningMaterial.h"
00010
00011 class YS_Evolution2D : public YS_Evolution
00012 {
00013 public:
00014 YS_Evolution2D(int tag, int classTag,
00015 double min_iso_factor,
00016 double iso_ratio,
00017 double kin_ratio);
00018
00019 virtual ~YS_Evolution2D();
00020
00021
00022 virtual void Print(OPS_Stream &s, int flag =0) =0;
00023 virtual YS_Evolution *getCopy(void) = 0;
00024 virtual Response *setResponse(char **argv, int argc, Information &info);
00025 virtual int getResponse(int responseID, Information &info);
00026 virtual int displaySelf(Renderer &theViewer, int displayMode, float fact);
00027
00028 virtual int update(int flag);
00029
00030 virtual int sendSelf(int commitTag, Channel &theChannel){return -1;}
00031 virtual int recvSelf(int commitTag, Channel &theChannel,
00032 FEM_ObjectBroker &theBroker){return -1;}
00033
00034 virtual int commitState();
00035 virtual int revertToLastCommit(void);
00036 virtual const Vector &getEquiPlasticStiffness(void)=0;
00037
00038
00039 virtual int evolveSurface(YieldSurface_BC *ys, double magPlasticDefo,
00040 Vector &G, Vector &F_Surface, int flag=0);
00041
00042 protected:
00043 virtual void setTrialPlasticStrains(double ep, const Vector &f, const Vector &g)=0;
00044 virtual double getIsoPlasticStiffness(int dir)=0;
00045 virtual double getKinPlasticStiffness(int dir)=0;
00046 virtual Vector& getEvolDirection(Vector &f_new)=0;
00047
00048 protected:
00049
00050
00051 bool softening;
00052 static Vector v2;
00053 double minIsoFactor;
00054 YieldSurface_BC *tmpYSPtr;
00055 };
00056
00057 #endif
00058