Steel02.hGo 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 // $Revision: 1.2 $ 00022 // $Date: 2006/08/03 23:42:19 $ 00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/Steel02.h,v $ 00024 00025 // Written: fmk 00026 // Created: 03/06 00027 // 00028 // Description: This file contains the class definition for 00029 // Steel02. Steel02 is based on an f2c of the FEDEAS material 00030 // Steel02.f which is: 00031 //----------------------------------------------------------------------- 00032 // MENEGOTTO-PINTO STEEL MODEL WITH FILIPPOU ISOTROPIC HARDENING 00033 // written by MOHD YASSIN (1993) 00034 // adapted to FEDEAS material library 00035 // by E. Spacone, G. Monti and F.C. Filippou (1994) 00036 //----------------------------------------------------------------------- 00037 00038 00039 #ifndef Steel02_h 00040 #define Steel02_h 00041 00042 #include <UniaxialMaterial.h> 00043 00044 class Steel02 : public UniaxialMaterial 00045 { 00046 public: 00047 Steel02(int tag, 00048 double fy, double E0, double b, 00049 double R0, double cR1, double cR2, 00050 double a1, double a2, double a3, double a4); 00051 00052 // Constructor for no isotropic hardening 00053 Steel02(int tag, 00054 double fy, double E0, double b, 00055 double R0, double cR1, double cR2); 00056 00057 // Constructor for no isotropic hardening 00058 // Also provides default values for R0, cR1, and cR2 00059 Steel02(int tag, double fy, double E0, double b); 00060 00061 Steel02(void); 00062 virtual ~Steel02(); 00063 00064 00065 const char *getClassType(void) const {return "Steel02";}; 00066 00067 double getInitialTangent(void); 00068 UniaxialMaterial *getCopy(void); 00069 00070 int setTrialStrain(double strain, double strainRate = 0.0); 00071 double getStrain(void); 00072 double getStress(void); 00073 double getTangent(void); 00074 00075 int commitState(void); 00076 int revertToLastCommit(void); 00077 int revertToStart(void); 00078 00079 int sendSelf(int commitTag, Channel &theChannel); 00080 int recvSelf(int commitTag, Channel &theChannel, 00081 FEM_ObjectBroker &theBroker); 00082 00083 void Print(OPS_Stream &s, int flag =0); 00084 00085 protected: 00086 00087 private: 00088 // matpar : STEEL FIXED PROPERTIES 00089 double Fy; // = matpar(1) : yield stress 00090 double E0; // = matpar(2) : initial stiffness 00091 double b; // = matpar(3) : hardening ratio (Esh/E0) 00092 double R0; // = matpar(4) : exp transition elastic-plastic 00093 double cR1; // = matpar(5) : coefficient for changing R0 to R 00094 double cR2; // = matpar(6) : coefficient for changing R0 to R 00095 double a1; // = matpar(7) : coefficient for isotropic hardening in compression 00096 double a2; // = matpar(8) : coefficient for isotropic hardening in compression 00097 double a3; // = matpar(9) : coefficient for isotropic hardening in tension 00098 double a4; // = matpar(10) : coefficient for isotropic hardening in tension 00099 // hstvP : STEEL HISTORY VARIABLES 00100 double epsminP; // = hstvP(1) : max eps in compression 00101 double epsmaxP; // = hstvP(2) : max eps in tension 00102 double epsplP; // = hstvP(3) : plastic excursion 00103 double epss0P; // = hstvP(4) : eps at asymptotes intersection 00104 double sigs0P; // = hstvP(5) : sig at asymptotes intersection 00105 double epssrP; // = hstvP(6) : eps at last inversion point 00106 double sigsrP; // = hstvP(7) : sig at last inversion point 00107 int konP; // = hstvP(8) : index for loading/unloading 00108 // hstv : STEEL HISTORY VARIABLES 00109 double epsP; // = strain at previous converged step 00110 double sigP; // = stress at previous converged step 00111 double eP; // stiffness modulus at last converged step; 00112 00113 double epsmin; 00114 double epsmax; 00115 double epspl; 00116 double epss0; 00117 double sigs0; 00118 double epsr; 00119 double sigr; 00120 int kon; 00121 double sig; 00122 double e; 00123 double eps; // = strain at current step 00124 }; 00125 00126 00127 #endif 00128 |