YieldSurface_BC2D.h

Go to the documentation of this file.
00001 // YieldSurfaceBC_2D.h: interface for the HingeForceDeformation class.
00002 //
00004 
00005 #if !defined YIELDSURFACE_BC2D_H
00006 #define YIELDSURFACE_BC2D_H
00007 
00008 #include "YieldSurface_BC.h"
00009 #include <UniaxialMaterial.h>
00010 
00011 class YieldSurface_BC2D : public YieldSurface_BC
00012 {
00013 public:
00014     YieldSurface_BC2D(int tag, int classTag, double xmax, double ymax,
00015                      YS_Evolution &model);
00016 
00017         virtual ~YieldSurface_BC2D();
00018 
00019 
00020 //    virtual Response *setResponse(char **argv, int argc, Information &info);
00021 //    virtual int       getResponse(int responseID, Information &info);
00022     virtual void        Print(OPS_Stream &s, int flag =0)=0;
00023     virtual int         sendSelf(int commitTag, Channel &theChannel){return -1;}
00024     virtual int         recvSelf(int commitTag, Channel &theChannel,
00025                                         FEM_ObjectBroker &theBroker){return -1;}
00026 
00027     virtual void        setTransformation(int xDof, int yDof, int xFact, int yFact);
00028 
00029         virtual void    getCommitGradient(Matrix &G);
00030         virtual void    getTrialGradient(Matrix &G, Vector &force);
00031         //virtual const   Vector &getGradient(void);
00032         //virtual const   Vector &getTrialGradient(void);
00033 
00034         virtual int             update(int flag = 0);
00035     virtual int         getState(int stateInfo);
00036     virtual double  getTrialDrift(Vector &force);
00037     virtual int         getTrialForceLocation(Vector &force);
00038     virtual int         getCommitForceLocation();
00039         //virtual const   Vector &getForce(void);
00040         //virtual const   Vector &getTrialForce(void);
00041 
00042         //virtual int     setTrialForce(Vector &force);
00043 
00044         // double  getIsotropicFactor(void){ return hModel->getIsotropicFactor();}
00045 
00046     virtual void    addPlasticStiffness(Matrix &K);
00047 //    virtual void      checkState(Vector &trialforce, bool &plastify, bool &shootsthrough);
00048 
00049         virtual double  setToSurface(Vector &force, int algoType, int colorFlag = 0);
00050         virtual int     modifySurface(double magPlasticDefo, Vector &Fsurface, Matrix &G, int flag=0);
00051         //virtual int     trialModifySurface(double magPlasticDefo);
00052         //virtual double        getElasticForce(Vector &force, Vector &elasticForce);
00053 
00054         virtual int     commitState(Vector &force);
00055         virtual int             revertToLastCommit(void);
00056 
00057         virtual YieldSurface_BC *getCopy(void) = 0;
00058         virtual int             displaySelf(Renderer &theViewer, int displayMode, float fact);
00059 
00060                         int             displayCommitForcePoint(Renderer &theViewer, int displayMode, float fact);
00061                 int     displayForcePoint(bool toDeformed, double f_x, double f_y, int color);
00062                 int             displayForcePoint(Vector &force, int color = 4);
00063 //protected:
00064         virtual Vector& translationTo(Vector &f_new, Vector &f_dir);
00065         virtual double  getDrift(double x, double y);
00066 //  For the following 2 methods, x, y already non-dimensionalized
00067     virtual void        getGradient(double &gx, double &gy, double x, double y)=0;
00068     virtual double      getSurfaceDrift(double x, double y)=0;
00069     virtual void        setExtent()=0;
00070         virtual const   Vector &getExtent(void);
00071 
00072     virtual int         forceLocation(double drift);
00073         virtual double  interpolate(double xi, double yi, double xj, double yj);
00074         virtual void    customizeInterpolate(double &xi, double &yi, double &xj, double &yj);
00075 
00076         double  interpolateClose(double xi, double yi, double xj, double yj);
00077 //  Dimensionalizing taken care at Element System <--> Local System level
00078 //              void    toDeformedCoord(double &x, double &y);
00079 //              void    toOriginalCoord(double &x, double &y);
00080 
00081 protected:
00082 //      UniaxialMaterial  *kpMatX, *kpMatY;
00083 
00084     double xPos, xNeg, yPos, yNeg;          // Extent along X and Y
00085     double a1, b1, a2, b2, a3, b3, a4, b4;  // y = ax +b -> inner quad
00086     double offset, increment;
00087 //    double isotropicRatio;          // Ratio of the plastic deformation that
00088                                     // is isotropic
00090 //  state variables
00092 //    double translateX, translateY;  // Kinematic displacement
00093 //    double isotropicFactor;         // Magnification factor
00094 //    double sumPlasticDeformX, sumPlasticDeformY;
00095 
00096 //    double translateX_hist, translateY_hist;
00097     int    status_hist;
00098     int state;
00099 //    double isotropicFactor_hist;
00100 //    double sumPlasticDeformX_hist, sumPlasticDeformY_hist;
00101     double fx_hist, fy_hist, gx_hist, gy_hist;
00102     double fx_trial, fy_trial, gx_trial, gy_trial;
00103 
00104     static Vector v6;
00105         static double  error;
00106         static Vector v2;
00107         static Vector g2;
00108         static Vector v4;
00109         static Vector T2;
00110         static Vector F2;
00111 public:
00112 //      const  static int dFReturn, RadialReturn, ConstantXReturn, ConstantYReturn;
00113 
00114 };
00115 
00116 #endif

Generated on Mon Oct 23 15:05:23 2006 for OpenSees by doxygen 1.5.0