ShearCurve.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/09/05 22:39:58 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/limitState/limitCurve/ShearCurve.h,v $
00024                                                                         
00025 // Written: kje
00026 // Created: 08/01
00027 // Modified: 09/02
00028 // Revision: A
00029 //
00030 // Description: This file contains the class definition for 
00031 // ShearCurve. Defines the curve used by LimitStateMaterial  
00032 // to determine if shear failure has occured according to empirical 
00033 // drift capacity model by Elwood (2002).
00034 
00035 
00036 #ifndef ShearCurve_h
00037 #define ShearCurve_h
00038 
00039 #define TAG_ShearCurve  1972 //???????? 
00040 
00041 #include <LimitCurve.h>
00042 
00043 class Element;
00044 class Domain;
00045 
00046 class ShearCurve : public LimitCurve
00047 {
00048   public:
00049         ShearCurve(int tag, int eleTag, Domain *theDomain, 
00050                 double rho, double fc, double b, double h, double d, double Fsw, //SDK
00051                 double Kdeg, double Fres, 
00052                 int defType, int forType,
00053                 int ndI = 0, int ndJ = 0, int dof = 0, int perpDirn = 0,
00054                 double delta = 0.0);
00055         ShearCurve();
00056     ~ShearCurve();
00057 
00058     LimitCurve *getCopy (void);
00059 
00060         int checkElementState(double springForce);
00061 
00062         double getDegSlope(void);
00063         double getResForce(void);
00064         double getUnbalanceForce(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         double findLimit(double input);
00073 
00074         int revertToStart(void);        
00075         int setParameter(const char **argv, int argc, Parameter &param);
00076         int    updateParameter          (int parameterID, Information &info);
00077 
00078 
00079   protected:
00080     
00081   private:
00082     void setDegSlope(double V, double Dshear); // sets degrading slope upon shear failure
00083                                                                                            // based on calc drift at axial failure
00084                                                                                            // if Kdeg >= 0.0
00085     
00086         // Associated beam-colum element information
00087         int eleTag;                     // tag for associated beam column element
00088         Element *theElement;// element pointer
00089         Domain *theDomain;      // needed to retrieve element pointer
00090 
00091         int stateFlag;  // state of limitstate material
00092                                         // stateFlag = 0: prior to failure
00093                                         // stateFlag = 1: first time limit surface is reached
00094                                         // stateFlag = 2: on limit surface after first failure
00095                                         // stateFlag = 3: off limit surface after first failure
00096 
00097         double Kdeg;    // degrading slope for LimitState material after failure
00098         double Fres;    // residual capacity for LimitState material after failure (assumed to be positive)
00099         int defType, forType; // flags indicating the axes of the limit state surface
00100                                                   //    defType = 1 for max chord rotation
00101                                                   //                = 2 for drift based on displ of nodes ndI and ndJ
00102                               //    forType = 0 for force in associated LimitState material
00103                               //                        = 1 for shear from beam-column element
00104                                                   //            = 2 for axial load from beam-column element
00105         
00106         double rho;     // transverse reinforcement ratio Ast/b/s
00107         double fc;              // concrete strength in psi
00108         double b;               // column width
00109         double h;       // column cross section height
00110         double d;               // column effective depth
00111 
00112         int ndI;                // nodes for determining interstory drift
00113         int ndJ;
00114         int dof;                // degree of freedom in which drift is desired
00115         int perpDirn;   // perpendicular direction to dof to get distance between nodes
00116         double oneOverL;// 1/dist between nodes
00117 
00118         double P;               // axial load in associated beam-column element
00119         double Fsw;             // Asw*fy*dcore/s
00120 
00121 
00122 
00123         double delta;   // drift ratio used to shift failure surface
00124 
00125         double theta1;
00126         double theta4;
00127         double theta5;
00128         double sigma;
00129         double eps_normal;
00130         
00131 };
00132 
00133 
00134 #endif

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