QzSimple1.h

Go to the documentation of this file.
00001 /* *********************************************************************
00002 **    Module:   QzSimple1.h 
00003 **
00004 **    Purpose:  Provide a simple Q-z material for OpenSees
00005 **
00006 **
00007 **    Developed by Ross W. Boulanger
00008 **    (C) Copyright 2002, All Rights Reserved.
00009 **
00010 ** ****************************************************************** */
00011 
00012 // $Revision: 1.0
00013 // $Date: 2002/1/22
00014 // $Source: /OpenSees/SRC/material/uniaxial/QzSimple1.h
00015 
00016 #ifndef QZSIMPLE1_H
00017 #define QZSIMPLE1_H
00018 
00019 // Written: RWB
00020 // Created: Jan 2002
00021 // tested and checked: Boris Jeremic (jeremic@ucdavis.edu) Spring 2002
00022 //
00023 // Description: This file contains the class definition for QzSimple1.
00024 // 
00025 
00026 #include <UniaxialMaterial.h>
00027 
00028 
00029 class QzSimple1 : public UniaxialMaterial
00030 {
00031   public:
00032     QzSimple1(int tag, int qzType, double Qult, double z50, double suction,
00033                       double dashpot);
00034     QzSimple1();
00035     ~QzSimple1();
00036 
00037     const char *getClassType(void) const {return "QzSimple1";};
00038 
00039     int setTrialStrain(double z, double zRate); 
00040     double getStrain(void);          
00041     double getStress(void);
00042     double getTangent(void);
00043     double getInitialTangent(void);
00044     double getStrainRate(void);
00045     double getDampTangent(void);
00046 
00047     int commitState(void);
00048     int revertToLastCommit(void);    
00049     int revertToStart(void);        
00050 
00051     UniaxialMaterial *getCopy(void);
00052     
00053     int sendSelf(int commitTag, Channel &theChannel);  
00054     int recvSelf(int commitTag, Channel &theChannel, 
00055                  FEM_ObjectBroker &theBroker);    
00056     
00057     void Print(OPS_Stream &s, int flag =0);
00058 
00059    
00060   protected:
00061     
00062   private:
00063 
00064         // Functions to get Q & z for each component individually
00065         void getGap(double zlast, double dz, double dz_old);
00066         void getClosure(double zlast, double dz);
00067         void getSuction(double zlast, double zy);
00068         void getNearField(double zlast, double dz, double dz_old);
00069         void getFarField(double z);
00070 
00071     // Material parameters
00072         int    QzType;          // Q-z relation selection
00073     double Qult;                // Material capacity
00074     double z50;                 // z at 50% of Qult in compression
00075     double suction;             // ratio of max suction force to Qult
00076         double zref;            // reference point for Near Field component
00077         double np;                      // exponent for hardening shape of Near Field component
00078         double Elast;           // Q/Qult when yielding first occurs in virgin compression
00079         double maxElast;        // max size of elastic range (in terms of dQ/Qult)
00080         double nd;                      // exponent for hardening shape of suction component
00081         double dashpot;     // dashpot on the far-field (elastic) component
00082 
00083         // Generated parameters or constants (not user input)
00084         double NFkrig;          // stiffness of the "rigid" portion of Near Field 
00085         
00086     // Committed history variables for entire Q-z material
00087     double Cz;                  // Committed z
00088     double CQ;                  // Committed Q
00089     double Ctangent;    // Committed tangent
00090 
00091         // Trial history variables for entire Q-z material
00092     double Tz;                  // Trial z
00093     double TQ;                  // Trial Q
00094     double Ttangent;    // Trial tangent
00095         double TzRate;      // Trial velocity
00096 
00097         // Committed internal parameters for the NearField rigid-plastic component
00098         double CNF_Qinr;                //  Q at start of current plastic loading cycle - right
00099         double CNF_Qinl;                //  Q at start of current plastic loading cycle - left
00100         double CNF_zinr;                //  z at start of current plastic loading cycle - right
00101         double CNF_zinl;                //  z at start of current plastic loading cycle - left
00102         double CNF_Q;                   //  current Q
00103         double CNF_z;                   //  current z
00104         double CNF_tang;                //  tangent
00105 
00106         // Trial internal parameters for the NearField plastic component
00107         double TNF_Qinr;                //  Q at start of current plastic loading cycle - right
00108         double TNF_Qinl;                //  Q at start of current plastic loading cycle - left
00109         double TNF_zinr;                //  z at start of current plastic loading cycle - right
00110         double TNF_zinl;                //  z at start of current plastic loading cycle - left
00111         double TNF_Q;                   //  current Q
00112         double TNF_z;                   //  current z
00113         double TNF_tang;                //  tangent
00114 
00115         // Committed internal parameters for the Suction component
00116         double CSuction_Qin;    //  Q at start of current plastic loading cycle
00117         double CSuction_zin;    //  z at start of current plastic loading cycle
00118         double CSuction_Q;              //  current Q
00119         double CSuction_z;              //  current z
00120         double CSuction_tang;   //  tangent
00121 
00122         // Trial internal parameters for the Suction component
00123         double TSuction_Qin;    //  Q at start of current plastic loading cycle
00124         double TSuction_zin;    //  z at start of current plastic loading cycle
00125         double TSuction_Q;              //  current Q
00126         double TSuction_z;              //  current z
00127         double TSuction_tang;   //  tangent
00128 
00129         // Committed internal parameters for the Closure component
00130         double CClose_Q;                //  current Q
00131         double CClose_z;                //  current z
00132         double CClose_tang;             //  tangent
00133 
00134         // Trial internal parameters for the Closure component
00135         double TClose_Q;                //  current Q
00136         double TClose_z;                //  current z
00137         double TClose_tang;             //  tangent
00138 
00139         // Committed internal parameters for the Gap (Suction + Closure)
00140         double CGap_z;                  //      z
00141         double CGap_Q;                  //  combined Q
00142         double CGap_tang;               //  combined tangent
00143 
00144         // Trial internal parameters for the Gap (Suction + Closure)
00145         double TGap_z;                  //      z
00146         double TGap_Q;                  //  combined Q
00147         double TGap_tang;               //  combined tangent
00148 
00149         // Committed internal parameters for the Far Field component
00150         double CFar_z;                  //  z
00151         double CFar_Q;                  //  current Q
00152         double CFar_tang;       //  tangent
00153 
00154         // Trial internal parameters for the Far Field component
00155         double TFar_z;                  //  z
00156         double TFar_Q;                  //  current Q
00157         double TFar_tang;       //  tangent
00158 
00159         double initialTangent;
00160 };
00161 
00162 #endif

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