CyclicModel.h

Go to the documentation of this file.
00001 #ifndef CyclicModel_H
00002 #define CyclicModel_H
00003 
00004 #include <TaggedObject.h>
00005 #include <MovableObject.h>
00006 #include <OPS_Globals.h>
00007 
00008 class CyclicModel : public TaggedObject, public MovableObject
00009 {
00010 public:
00011         CyclicModel(int tag, int classTag);
00012         ~CyclicModel();
00013         
00014         int commitState(double newResidual);
00015     void update(double f, double d, bool yield);
00016         virtual CyclicModel *getCopy()=0;
00017         
00018         virtual double getFactor();
00019         // for now ignore
00020         virtual int     sendSelf(int commitTag, Channel &theChannel){return -1;}
00021     virtual int         recvSelf(int commitTag, Channel &theChannel,
00022                                                          FEM_ObjectBroker &theBroker){return -1;}
00023         virtual void Print (OPS_Stream &s, int flag=0);
00024 
00025 protected:
00026 // virtual methods
00027         virtual int createFullCycleTask();
00028         virtual int createHalfCycleTask();
00029         virtual double getTaskFactor()=0;
00030 
00031 // protected:
00032         int setCurrent(double f, double d);
00033         int dir(double x);
00034 
00035         int taskStatus(void);
00036         double rationalize(double x1, double y1, double x2, double y2);
00037         bool   contains(double x1, double x2, double x);
00038 
00039 private:
00040         int initNewTask();
00041 
00042 protected:
00043 double resFactor;
00044 double cycFactor, cycFactor_hist;
00045 double f_hist, d_hist;
00046 double f_curr, d_curr;
00047 double delT_curr, delT_hist;
00048 double f_bgn, d_bgn;
00049 double f_end, d_end;
00050 
00051 bool   initYieldPos, initYieldNeg;
00052 bool   initCyc;
00053 bool   yielding, yielding_hist;
00054 double initFpos,initDpos;
00055 double initFneg,initDneg;
00056 double initFMag,initDMag;
00057 double k_init;
00058 double k_hist, k_curr;
00059 double fpeakPos, fpeakNeg;
00060 double dpeakPos, dpeakNeg;
00061 int    state_hist, state_curr;
00062 
00063 const static int Loading,Unloading, Crossover;
00064 const static double Tol, delK;
00065 };
00066 
00067 #endif
00068 

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