00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef Mehanny_h
00022 #define Mehanny_h
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #include <ErrorHandler.h>
00038 #include <DamageModel.h>
00039
00040 class DamageResponse;
00041
00042
00043 class Mehanny : public DamageModel
00044 {
00045 public:
00046
00047 Mehanny(int tag, double alpha, double beta, double gamma ,
00048 double ultimatePosValue , double ultimateNegValue, double abstol, double reltol, double posmodifier, double negmodifier);
00049 Mehanny();
00050 ~Mehanny();
00051
00052 int setTrial (Vector trialVector );
00053 int setTrial () { return -1; }
00054
00055 int setInputResponse ( Element *elem , const char **argv , int argc, int ndof );
00056
00057 double getDamage(void);
00058 double getPosDamage (void);
00059 double getNegDamage (void);
00060
00061 int commitState(void);
00062 int revertToLastCommit (void);
00063 int revertToStart (void);
00064
00065 DamageModel *getCopy (void);
00066
00067 int setVariable(const char *argv);
00068 int getVariable(int variableID, double &info);
00069
00070 int setParameter(char **argv, int argc, Information &eleInformation);
00071 int updateParameter(int responseID, Information &eleInformation);
00072
00073 Response *setResponse(char **argv, int argc, Information &info);
00074 int getResponse(int responseID, Information &info);
00075
00076 int sendSelf(int commitTag, Channel &theChannel);
00077 int recvSelf(int commitTag, Channel &theChannel,
00078 FEM_ObjectBroker &theBroker);
00079 void Print(OPS_Stream &s, int flag =0);
00080
00081
00082 void update(void) {return;}
00083
00084 protected:
00085
00086 private:
00087 int processData (double PDefo);
00088
00089
00090 double Alpha , Beta , Gamma , UltimatePosValue , UltimateNegValue;
00091 double PosModifier, NegModifier;
00092 double AbsTol, RelTol;
00093
00094
00095 double TrialPlasticDefo;
00096 double TrialDefoIncr;
00097 double TrialTempPDefo;
00098 double TrialPosCycle;
00099 double TrialNegCycle;
00100 double TrialSumPosFHC;
00101 double TrialPosPHC;
00102 double TrialSumNegFHC;
00103 double TrialNegPHC;
00104 double TrialDamage;
00105
00106
00107 double CommPlasticDefo;
00108 double CommDefoIncr;
00109 double CommTempPDefo;
00110 double CommPosCycle;
00111 double CommNegCycle;
00112 double CommSumPosFHC;
00113 double CommPosPHC;
00114 double CommSumNegFHC;
00115 double CommNegPHC;
00116 double CommDamage;
00117
00118
00119 double LCommPlasticDefo;
00120 double LCommDefoIncr;
00121 double LCommTempPDefo;
00122 double LCommPosCycle;
00123 double LCommNegCycle;
00124 double LCommSumPosFHC;
00125 double LCommPosPHC;
00126 double LCommSumNegFHC;
00127 double LCommNegPHC;
00128 double LCommDamage;
00129
00130
00131 };
00132
00133
00134 #endif
00135