BarSlipMaterial.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: 2004/10/06 19:21:12 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/BarSlipMaterial.h,v $
00024                                                                         
00025                                                                         
00026 // Written: NM (nmitra@u.washington.edu) 
00027 // Created: January 2002
00028 // Updated: September 2004
00029 //
00030 // Description: This file contains the class defination for 
00031 // bar-slip material. The file generates the 4 point envelope for both positive 
00032 // and negative loading and is basically a wrapper for the Pinching4 material at it's outset.
00033 // Updates: new damage calculations and user interfaces
00034 
00035 
00036 #ifndef BarSlipMaterial_h
00037 #define BarSlipMaterial_h
00038 
00039 #include <UniaxialMaterial.h>
00040 //#include <Pinching4Material.h>
00041 #include <math.h>
00042 #include <Matrix.h>
00043 #include <Vector.h>
00044 #include <FileStream.h>
00045 
00046 class BarSlipMaterial : public UniaxialMaterial
00047 {
00048 public :
00049         BarSlipMaterial(int tag,
00050                 double fc, double fy, double Es, double fu,
00051                 double Eh, double db, double ld, int nbars, double width, double depth,
00052                 int bsflag, int type);
00053 
00054         BarSlipMaterial(int tag,
00055                 double fc, double fy, double Es, double fu,
00056                 double Eh, double db, double ld, int nbars, double width, double depth,
00057                 int bsflag, int type, int damage, int unit);
00058 
00059         BarSlipMaterial();
00060         ~BarSlipMaterial();
00061 
00062         int setTrialStrain(double strain, double strainRate = 0.0);
00063         double getStrain(void);
00064         double getStress(void);
00065         double getTangent(void);
00066         double getInitialTangent(void);
00067 
00068         int commitState(void);
00069         int revertToLastCommit(void);
00070         int revertToStart(void);
00071 
00072         UniaxialMaterial *getCopy(void);
00073 
00074         int sendSelf(int commitTag, Channel &theChannel);
00075         int recvSelf(int commitTag, Channel &theChannel,
00076                 FEM_ObjectBroker &theBroker);
00077 
00078         void Print(OPS_Stream &s, int flag = 0);
00079 
00080 protected:
00081 
00082 private:
00083         int tagMat;
00084         // bond strength flag
00085    int bsflag;   // 1 --- weak or 0 --- strong bond strength
00086 
00087         // unit used
00088         int unit;     // 1 --- mpa or 2 --- psi (the coefficients of shear stress will change accordingly)
00089 
00090         // type of j to be used for beam top barslip it is "1" or it is "0" for beam bottom bar slip or column
00091         int type;
00092 
00093         int damage; // type of damage in the material;
00094 
00095         // dimensions
00096         double width;  // width of the member
00097         double depth;  // depth of the member
00098 
00099         // material used at onset
00100 //      Pinching4Material* material;
00101         Vector envlpPosStress; Vector envlpPosStrain; 
00102         Vector envlpNegStress; Vector envlpNegStrain;
00103 
00104 
00105         // concrete properties
00106         double fc;   // compressive strength of concrete
00107         
00108         // steel properties
00109         double fy;    // yeild strength of steel
00110         double Es;    // modulus of elasticity of steel
00111         double fu;    // ultimate strength of steel
00112         double Eh;    // modulus of hardening of steel
00113         double db;    // reinforcing steel bar diameter
00114         int nbars;  // no of reinforcing bars
00115 
00116         // anchorage length
00117         double ld;  // anchorage length of the reinforcing steel
00118 
00119                 // bond strengths
00120         double tauET;  // bond strength of steel that is elastic and carries tensile load
00121         double tauYT;  // bond strength of steel that has yeilded in tension
00122         double tauEC;  // bond strength of steel that is elastic and carries compression load
00123         double tauYC;  // bond strength of steel that has yeilded in compression
00124         double tauR;   // residual bond strength of steel
00125 
00126         // unloading-reloading parameters 
00127         double rDispP; double rForceP; double uForceP;
00128         double rDispN; double rForceN; double uForceN;
00129 
00130         // Damage parameters
00131         double gammaK1; double gammaK2; double gammaK3; double gammaK4; double gammaKLimit;
00132         double gammaD1; double gammaD2; double gammaD3; double gammaD4; double gammaDLimit;
00133         double gammaF1; double gammaF2; double gammaF3; double gammaF4; double gammaFLimit;
00134         double gammaE;
00135 
00136 
00137         // positive and negative envelopes
00138         Matrix eP;
00139         Matrix eN;
00140 
00141         //**************************************************************************
00142         // Trial Set varables
00143         double Tstrain; double Ttangent; double Tstress;
00144 
00145         // Converged Material History parameters
00146         int Cstate;
00147         double Cstrain;
00148         double Cstress;
00149         double CstrainRate;
00150         double lowCstateStrain;
00151         double lowCstateStress;
00152         double hghCstateStrain;
00153         double hghCstateStress;
00154         double CminStrainDmnd;
00155         double CmaxStrainDmnd;
00156         double Cenergy;
00157         double CgammaK;
00158         double CgammaD;
00159         double CgammaF;
00160         double gammaKUsed;
00161         double gammaFUsed;
00162 
00163         // Trial Material History Parameters
00164         int Tstate;
00165         double dstrain;
00166         double TstrainRate;
00167         double lowTstateStrain;
00168         double lowTstateStress;
00169         double hghTstateStrain;
00170         double hghTstateStress;
00171         double TminStrainDmnd;
00172         double TmaxStrainDmnd;
00173         double Tenergy;
00174         double TgammaK;
00175         double TgammaD;
00176         double TgammaF;
00177 
00178         // strength and stiffness parameters;
00179         double kElasticPos;
00180         double kElasticNeg;
00181         double kElasticPosDamgd;
00182         double kElasticNegDamgd;
00183         double uMaxDamgd;
00184         double uMinDamgd;
00185 
00186         Vector envlpPosDamgdStress; Vector envlpNegDamgdStress;
00187 
00188         double kunload;
00189         Vector state3Stress; Vector state3Strain; Vector state4Stress; Vector state4Strain;
00190         double elasticStrainEnergy;
00191         double energyCapacity;
00192 //****************************************************************
00193 
00194         void getBondStrength(void);
00195         void getBarSlipEnvelope(void);
00196         void createMaterial(void);
00197 
00198 
00199                 void SetEnvelope(void);
00200         void getstate(double, double);
00201         double posEnvlpStress(double);
00202         double posEnvlpTangent(double);
00203         double negEnvlpStress(double);
00204         double negEnvlpTangent(double);
00205 
00206         void getState3(Vector& , Vector& , double);
00207         void getState4(Vector& , Vector& , double);
00208         double Envlp3Tangent(Vector , Vector , double);
00209         double Envlp3Stress(Vector , Vector , double);
00210         double Envlp4Tangent(Vector , Vector , double);
00211         double Envlp4Stress(Vector , Vector , double);
00212 
00213         void updateDmg(double);
00214 
00215 //FileStream* fn;
00216 //FileStream* fg;
00217 
00218 };
00219 #endif

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