BoucWenMaterial.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 2001, 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 ** Reliability module developed by:                                   **
00020 **   Terje Haukaas (haukaas@ce.berkeley.edu)                          **
00021 **   Armen Der Kiureghian (adk@ce.berkeley.edu)                       **
00022 **                                                                    **
00023 ** ****************************************************************** */
00024                                                                         
00025 // $Revision: 1.3 $
00026 // $Date: 2006/09/05 22:14:06 $
00027 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/BoucWenMaterial.h,v $
00028 
00029 
00030 //
00031 // Written by Terje Haukaas (haukaas@ce.berkeley.edu) 
00032 //
00033 
00034 #ifndef BoucWenMaterial_h
00035 #define BoucWenMaterial_h
00036 
00037 #include <UniaxialMaterial.h>
00038 #include <Matrix.h>
00039 
00040 class BoucWenMaterial : public UniaxialMaterial
00041 {
00042   public:
00043     BoucWenMaterial(int tag, 
00044                     double alpha,
00045                     double ko,
00046                     double n,
00047                     double gamma,
00048                     double beta,
00049                     double Ao,
00050                     double deltaA,
00051                     double deltaNu,
00052                     double deltaEta,
00053                     double tolerance,
00054                     int maxNumIter);
00055     BoucWenMaterial();
00056     ~BoucWenMaterial();
00057 
00058     const char *getClassType(void) const {return "BoucWenMaterial";};
00059 
00060     int setTrialStrain(double strain, double strainRate = 0.0); 
00061     double getStrain(void);          
00062     double getStress(void);
00063     double getTangent(void);
00064     double signum(double);
00065     int commitState(void);
00066     int revertToLastCommit(void);    
00067     int revertToStart(void);        
00068     UniaxialMaterial *getCopy(void);
00069     int sendSelf(int commitTag, Channel &theChannel);  
00070     int recvSelf(int commitTag, Channel &theChannel, 
00071                  FEM_ObjectBroker &theBroker);    
00072     void Print(OPS_Stream &s, int flag =0);
00073     
00074         // Reliability and sensitivity stuff
00075     double getInitialTangent        (void);
00076     int setParameter (const char **argv, int argc, Parameter &param);
00077     int    updateParameter          (int parameterID, Information &info);
00078         int    activateParameter        (int parameterID);
00079         double getStressSensitivity     (int gradNumber, bool conditional);
00080         double getStrainSensitivity     (int gradNumber);
00081         double getTangentSensitivity    (int gradNumber);
00082         double getDampTangentSensitivity(int gradNumber);
00083         double getRhoSensitivity        (int gradNumber);
00084         int    commitSensitivity        (double strainGradient, int gradNumber, int numGrads);
00085 
00086   protected:
00087     
00088   private:
00089     // Material parameters
00090     double alpha;
00091     double ko;
00092         double n;
00093     double gamma;
00094     double beta;
00095     double Ao;
00096     double deltaA;
00097     double deltaNu;
00098     double deltaEta;
00099 
00100     // History variables (trial and commited)
00101     double Tstrain, Cstrain;
00102         double Tz, Cz;
00103         double Te, Ce;
00104 
00105         // Ohter variables
00106         double Tstress, Ttangent;
00107 
00108         double tolerance;
00109         int maxNumIter;
00110 
00111         // Sensitivit stuff
00112     int parameterID;
00113         Matrix *SHVs;
00114 
00115 
00116 };
00117 
00118 
00119 #endif
00120 

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