QzSimple1.hGo 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 |