Mehanny.h

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** Developed by:                                                      **
00015 **   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
00016 **   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
00017 **   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
00018 **                                                                    **
00019 ** ****************************************************************** */
00020                                                                         
00021 #ifndef Mehanny_h
00022 #define Mehanny_h         
00023 
00024 // $Revision: 1.1 $
00025 // $Date: 2004/09/01 03:54:28 $
00026 // $Source: /usr/local/cvs/OpenSees/SRC/damage/Mehanny.h,v $
00027 
00028 
00029 // Written: Arash Altoontash, Gregory Deierlein
00030 // Created: 10/02
00031 // Revision: AA
00032 //
00033 // Description: This file contains the class definition for 
00034 // Cimbined damage model. It is a subclass od DamageModel
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   // method for this damage model to update itself according to its new parameters
00082   void update(void) {return;}
00083   
00084  protected:
00085   
00086  private:
00087   int processData (double PDefo);
00088   // Model parameters
00089   
00090   double Alpha , Beta , Gamma , UltimatePosValue , UltimateNegValue;
00091   double PosModifier, NegModifier;
00092   double AbsTol, RelTol;
00093   
00094   // Trial step
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   // Commited state
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   // Last commit
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   //  FILE *OutputFile;         // For debugging
00131 };
00132 
00133 
00134 #endif
00135 

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