Concrete01.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.11 $
00022 // $Date: 2006/09/05 22:14:55 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/Concrete01.h,v $
00024                                                                         
00025                                                                         
00026 #ifndef Concrete01_h
00027 #define Concrete01_h
00028 
00029 // Written: MHS 
00030 // Created: 06/99
00031 // Revision: A
00032 //
00033 // Description: This file contains the class definition for 
00034 // Concrete01.h adapted from Concr1.f90 (Filippou)
00035 //   - Modified Kent-Park envelope
00036 //   - No tension
00037 //   - Linear unloading/reloading
00038 //
00039 // What: "@(#) Concrete01.h, revA"
00040 
00041 
00042 #include <UniaxialMaterial.h>
00043 
00044 class Concrete01 : public UniaxialMaterial
00045 {
00046  public:
00047   Concrete01 (int tag, double fpc, double eco, double fpcu, double ecu);
00048   Concrete01 ();
00049   ~Concrete01();
00050 
00051   const char *getClassType(void) const {return "Concrete01";};
00052   
00053   int setTrialStrain(double strain, double strainRate = 0.0); 
00054   int setTrial (double strain, double &stress, double &tangent, double strainRate = 0.0);
00055   double getStrain(void);      
00056   double getStress(void);
00057   double getTangent(void);
00058   double getInitialTangent(void) {return 2.0*fpc/epsc0;}
00059 
00060   int commitState(void);
00061   int revertToLastCommit(void);    
00062   int revertToStart(void);        
00063   
00064   UniaxialMaterial *getCopy(void);
00065   
00066   int sendSelf(int commitTag, Channel &theChannel);  
00067   int recvSelf(int commitTag, Channel &theChannel, 
00068                FEM_ObjectBroker &theBroker);    
00069   
00070   void Print(OPS_Stream &s, int flag =0);
00071   
00072   // AddingSensitivity:BEGIN //////////////////////////////////////////
00073   int    setParameter             (const char **argv, int argc, Parameter &param);
00074   int    updateParameter          (int parameterID, Information &info);
00075   int    activateParameter        (int parameterID);
00076   double getStressSensitivity     (int gradNumber, bool conditional);
00077   int    commitSensitivity        (double strainGradient, int gradNumber, int numGrads);
00078   // AddingSensitivity:END ///////////////////////////////////////////
00079 
00080  protected:
00081 
00082  private:
00083   /*** Material Properties ***/
00084   double fpc;    // Compressive strength
00085   double epsc0;  // Strain at compressive strength
00086   double fpcu;   // Crushing strength
00087   double epscu;  // Strain at crushing strength
00088   
00089   /*** CONVERGED History Variables ***/
00090   double CminStrain;   // Smallest previous concrete strain (compression)
00091   double CunloadSlope; // Unloading (reloading) slope from CminStrain
00092   double CendStrain;   // Strain at the end of unloading from CminStrain
00093   
00094   /*** CONVERGED State Variables ***/
00095   double Cstrain;
00096   double Cstress;   
00097   double Ctangent;      // Don't need Ctangent other than for revert and sendSelf/recvSelf
00098   // Storing it is better than recomputing it!!!
00099   
00100   /*** TRIAL History Variables ***/
00101   double TminStrain;
00102   double TunloadSlope;
00103   double TendStrain;
00104   
00105   /*** TRIAL State Variables ***/
00106   double Tstrain;
00107   double Tstress;
00108   double Ttangent; // Not really a state variable, but declared here
00109   // for convenience
00110   
00111   void determineTrialState (double dStrain);
00112   
00113   void reload();
00114   void unload();
00115   void envelope();
00116   
00117   // AddingSensitivity:BEGIN //////////////////////////////////////////
00118   int parameterID;
00119   Matrix *SHVs;
00120   // AddingSensitivity:END ///////////////////////////////////////////
00121 };
00122 
00123 
00124 #endif
00125 
00126 

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