YieldSurfaceSection2d.hGo to the documentation of this file.00001 // @ rkaul@stanford.edu 00002 // @ ggd@stanford.edu 00003 00004 #ifndef YieldSurfaceSection2d_h 00005 #define YieldSurfaceSection2d_h 00006 00007 #include <SectionForceDeformation.h> 00008 #include <YieldSurface_BC.h> 00009 #include <Matrix.h> 00010 #include <Vector.h> 00011 00012 class Channel; 00013 class FEM_ObjectBroker; 00014 class Information; 00015 00016 class YieldSurfaceSection2d: public SectionForceDeformation 00017 { 00018 public: 00019 YieldSurfaceSection2d ( int tag, int classtag, 00020 YieldSurface_BC *ptrys, 00021 bool use_kr=true); 00022 YieldSurfaceSection2d (void); 00023 ~YieldSurfaceSection2d (void); 00024 00025 virtual int commitState (void); 00026 virtual int revertToLastCommit (void); 00027 virtual int revertToStart (void); 00028 00029 virtual int setTrialSectionDeformation (const Vector&); 00030 virtual const Vector &getSectionDeformation (void); 00031 00032 const Vector &getStressResultant (void); 00033 const Matrix &getSectionTangent (void); 00034 const Matrix &getSectionFlexibility (void); 00035 00036 const ID &getType (void); 00037 int getOrder (void) const; 00038 00039 int sendSelf (int commitTag, Channel &theChannel); 00040 int recvSelf (int commitTag, Channel &theChannel, 00041 FEM_ObjectBroker &theBroker); 00042 00043 virtual void Print (OPS_Stream &s, int flag =0); 00044 00045 virtual SectionForceDeformation *getCopy (void)=0; 00046 00047 protected: 00048 virtual void getSectionStiffness(Matrix &Ks)=0; 00049 const bool use_Kr_orig; 00050 YieldSurface_BC *ys; 00051 Vector e; // section trial deformations 00052 Vector s; 00053 Vector eCommit; 00054 Vector sCommit; 00055 Matrix ks; 00056 00057 private: 00058 // int algo; 00059 bool use_Kr, split_step; 00060 00061 static ID code; 00062 static Vector dele; 00063 static Vector surfaceForce; 00064 static Matrix G; 00065 static Matrix Ktp; 00066 }; 00067 00068 #endif |