Rev 3427 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1877 | fmk | 1 | /* ****************************************************************** ** |
| 2 | ** OpenSees - Open System for Earthquake Engineering Simulation ** |
||
| 3 | ** Pacific Earthquake Engineering Research Center ** |
||
| 4 | ** ** |
||
| 5 | ** ** |
||
| 6 | ** (C) Copyright 1999, The Regents of the University of California ** |
||
| 7 | ** All Rights Reserved. ** |
||
| 8 | ** ** |
||
| 9 | ** Commercial use of this program without express permission of the ** |
||
| 10 | ** University of California, Berkeley, is strictly prohibited. See ** |
||
| 11 | ** file 'COPYRIGHT' in main directory for information on usage and ** |
||
| 12 | ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. ** |
||
| 13 | ** ** |
||
| 14 | ** Developed by: ** |
||
| 15 | ** Frank McKenna (fmckenna@ce.berkeley.edu) ** |
||
| 16 | ** Gregory L. Fenves (fenves@ce.berkeley.edu) ** |
||
| 17 | ** Filip C. Filippou (filippou@ce.berkeley.edu) ** |
||
| 18 | ** ** |
||
| 19 | ** ****************************************************************** */ |
||
| 20 | |||
| 21 | |||
| 3436 | fmk | 22 | // $Revision: 1.3 $ |
| 23 | // $Date: 2008-04-14 22:38:26 $ |
||
| 1877 | fmk | 24 | // $Source: /usr/local/cvs/OpenSees/SRC/damage/DamageModel.h,v $ |
| 25 | |||
| 26 | #ifndef DamageModel_h |
||
| 27 | #define DamageModel_h |
||
| 28 | |||
| 29 | // Written: Arash Altoontash, Gregory Deierlein |
||
| 30 | // Created: 08/02 |
||
| 31 | // Revision: AA |
||
| 32 | // |
||
| 33 | // Description: This file contains the class definition for |
||
| 34 | // damage model Damage modelis a base class and |
||
| 35 | // thus no objects of it's type can be instantiated. It has pure virtual |
||
| 36 | // functions which must be implemented in it's derived classes. |
||
| 37 | |||
| 38 | #include <DomainComponent.h> |
||
| 39 | #include <MovableObject.h> |
||
| 40 | #include <TaggedObject.h> |
||
| 41 | #include <Vector.h> |
||
| 42 | |||
| 43 | class Response; |
||
| 44 | class DamageResponse; |
||
| 45 | |||
| 46 | enum DamageType { |
||
| 47 | NotSpecified, |
||
| 48 | Force, |
||
| 49 | Deformation, |
||
| 50 | PlasticDefo, |
||
| 51 | TotalEnergy, |
||
| 52 | PlasticEnergy, |
||
| 53 | }; |
||
| 54 | |||
| 55 | class DamageModel : public TaggedObject, public MovableObject |
||
| 56 | { |
||
| 3427 | fmk | 57 | public: |
| 1877 | fmk | 58 | DamageModel(int tag, int classTag); |
| 59 | virtual ~DamageModel(); |
||
| 60 | |||
| 3436 | fmk | 61 | virtual int setTrial(const Vector &trialVector) = 0; |
| 1877 | fmk | 62 | virtual double getDamage (void) = 0; |
| 63 | virtual double getPosDamage (void) = 0; |
||
| 64 | virtual double getNegDamage (void) = 0; |
||
| 65 | |||
| 66 | virtual int commitState (void) = 0; |
||
| 67 | virtual int revertToLastCommit (void) = 0; |
||
| 68 | virtual int revertToStart (void) = 0; |
||
| 69 | |||
| 70 | virtual DamageModel *getCopy (void) = 0; |
||
| 71 | |||
| 3436 | fmk | 72 | virtual Response *setResponse(const char **argv, int argc, OPS_Stream &theOutputStream); |
| 73 | virtual int getResponse(int responseID, Information &info); |
||
| 1877 | fmk | 74 | |
| 75 | virtual int sendSelf(int commitTag, Channel &theChannel) = 0; |
||
| 76 | virtual int recvSelf(int commitTag, Channel &theChannel, |
||
| 77 | FEM_ObjectBroker &theBroker) = 0; |
||
| 78 | virtual void Print(OPS_Stream &s, int flag =0) =0; |
||
| 79 | |||
| 80 | protected: |
||
| 81 | |||
| 82 | private: |
||
| 83 | |||
| 84 | }; |
||
| 85 | |||
| 86 | |||
| 87 | #endif |