00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef DamageModel_h
00027 #define DamageModel_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include <DomainComponent.h>
00039 #include <MovableObject.h>
00040 #include <TaggedObject.h>
00041 #include <Vector.h>
00042
00043
00044 #include <ErrorHandler.h>
00045 class Response;
00046 class DamageResponse;
00047
00048
00049 enum DamageType {
00050 NotSpecified,
00051 Force,
00052 Deformation,
00053 PlasticDefo,
00054 TotalEnergy,
00055 PlasticEnergy,
00056 };
00057
00058
00059 class DamageModel : public TaggedObject, public MovableObject
00060 {
00061 public:
00062 DamageModel(int tag, int classTag);
00063 virtual ~DamageModel();
00064
00065 virtual int setTrial (Vector trialVector) = 0;
00066 virtual double getDamage (void) = 0;
00067 virtual double getPosDamage (void) = 0;
00068 virtual double getNegDamage (void) = 0;
00069
00070 virtual int commitState (void) = 0;
00071 virtual int revertToLastCommit (void) = 0;
00072 virtual int revertToStart (void) = 0;
00073
00074 virtual DamageModel *getCopy (void) = 0;
00075
00076 virtual int setVariable(const char *argv) { return -1; }
00077 virtual int getVariable(int variableID, double &info) { return -1; }
00078
00079 virtual int setParameter(char **argv, int argc, Information &theInformation);
00080 virtual int updateParameter(int responseID, Information &theInformation);
00081 virtual Response *setResponse(char **argv, int argc, Information &info) = 0;
00082 virtual int getResponse(int responseID, Information &info) = 0;
00083
00084
00085 virtual int sendSelf(int commitTag, Channel &theChannel) = 0;
00086 virtual int recvSelf(int commitTag, Channel &theChannel,
00087 FEM_ObjectBroker &theBroker) = 0;
00088 virtual void Print(OPS_Stream &s, int flag =0) =0;
00089
00090 protected:
00091
00092 private:
00093
00094 };
00095
00096
00097 #endif