Steel02.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 // $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 

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