PySimple1.h

Go to the documentation of this file.
00001 /* *********************************************************************
00002 **    Module:   PySimple1.h 
00003 **
00004 **    Purpose:  Provide a simple p-y spring for OpenSees
00005 **              
00006 **
00007 **    Developed by Ross W. Boulanger
00008 **    (C) Copyright 2001, All Rights Reserved.
00009 **
00010 ** ****************************************************************** */
00011 
00012 // $Revision: 1.0
00013 // $Date: 2001/10/15
00014 // $Source: /OpenSees/SRC/material/uniaxial/PySimple1.h
00015 
00016 #ifndef PYSIMPLE1_H
00017 #define PYSIMPLE1_H
00018 
00019 // Written: RWB
00020 // Created: Oct 2001
00021 // tested and checked: Boris Jeremic (jeremic@ucdavis.edu) Spring 2002
00022 //
00023 // Description: This file contains the class definition for PySimple1.
00024 // 
00025 
00026 #include <UniaxialMaterial.h>
00027 
00028 class PySimple1 : public UniaxialMaterial
00029 {
00030   public:
00031     PySimple1(int tag, int classtag, int soilType, double pult, double y50, 
00032               double drag, double dashpot);
00033     PySimple1();
00034     ~PySimple1();
00035 
00036 
00037     const char *getClassType(void) const {return "PySimple1";};
00038 
00039     int setTrialStrain(double y, double yRate); 
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     // Material parameters
00063         int    soilType;        // Soil type = 1 for soft clay 
00064     double pult;                // Spring capacity
00065     double y50;                 // y at 50% of pult
00066     double drag;                // ratio of max gap drag force to pult
00067         double yref;            // reference point for Near Field component
00068         double np;                      // exponent for hardening shape of Near Field component
00069         double Elast;           // p/pult when yielding first occurs in virgin loading
00070         double nd;                      // exponent for hardening shape of drag component
00071         double dashpot;     // dashpot on the far-field (elastic) component
00072 
00073 
00074   private:
00075 
00076         // Functions to get p & y for each component individually
00077         void getGap(double ylast, double dy, double dy_old);
00078         void getClosure(double ylast, double dy);
00079         void getDrag(double ylast, double dy);
00080         void getNearField(double ylast, double dy, double dy_old);
00081         void getFarField(double y);
00082 
00083         // Generated parameters or constants (not user input)
00084         double NFkrig;          // stiffness of the "rigid" portion of Near Field spring
00085         
00086     // Committed history variables for entire p-y material
00087     double Cy;                  // Committed p
00088     double Cp;                  // Committed y
00089     double Ctangent;    // Committed tangent
00090 
00091         // Trial history variables for entire p-y material
00092     double Ty;                  // Trial p
00093     double Tp;                  // Trial y
00094     double Ttangent;    // Trial tangent
00095         double TyRate;      // Trial velocity
00096 
00097         // Committed internal parameters for the NearField rigid-plastic component
00098         double CNFpinr;         //  p at start of current plastic loading cycle - right side
00099         double CNFpinl;         //                                              - left side
00100         double CNFyinr;         //  y at start of current plastic loading cycle - right side
00101         double CNFyinl;         //                                              - left side
00102         double CNF_p;           //  current p
00103         double CNF_y;           //  current y
00104         double CNF_tang;        //  tangent
00105 
00106         // Trial internal parameters for the NearField rigid-plastic component
00107         double TNFpinr;         //  p at start of current plastic loading cycle - right side
00108         double TNFpinl;         //                                              - left side
00109         double TNFyinr;         //  y at start of current plastic loading cycle - right side
00110         double TNFyinl;         //                                              - left side
00111         double TNF_p;           //  current p
00112         double TNF_y;           //  current y
00113         double TNF_tang;        //  tangent
00114 
00115         // Committed internal parameters for the Drag component
00116         double CDrag_pin;               //  p at start of current plastic loading cycle
00117         double CDrag_yin;               //  y at start of current plastic loading cycle
00118         double CDrag_p;                 //  current p
00119         double CDrag_y;                 //  current y
00120         double CDrag_tang;              //  tangent
00121 
00122         // Trial internal parameters for the Drag component
00123         double TDrag_pin;               //  p at start of current plastic loading cycle
00124         double TDrag_yin;               //  y at start of current plastic loading cycle
00125         double TDrag_p;                 //  current p
00126         double TDrag_y;                 //  current y
00127         double TDrag_tang;              //  tangent
00128 
00129         // Committed internal parameters for the Closure component
00130         double CClose_yleft;    //  left reference point
00131         double CClose_yright;   //  right reference point
00132         double CClose_p;                //  current p
00133         double CClose_y;                //  current y
00134         double CClose_tang;             //  tangent
00135 
00136         // Trial internal parameters for the Closure component
00137         double TClose_yleft;    //  left reference point
00138         double TClose_yright;   //  right reference point
00139         double TClose_p;                //  current p
00140         double TClose_y;                //  current y
00141         double TClose_tang;             //  tangent
00142 
00143         // Committed internal parameters for the Gap (Drag + Closure)
00144         double CGap_y;                  //      y
00145         double CGap_p;                  //  combined p
00146         double CGap_tang;               //  combined tangent
00147 
00148         // Trial internal parameters for the Gap (Drag + Closure)
00149         double TGap_y;                  //      y
00150         double TGap_p;                  //  combined p
00151         double TGap_tang;               //  combined tangent
00152 
00153         // Committed internal parameters for the Far Field component
00154         double CFar_y;                  //  y
00155         double CFar_p;                  //  current p
00156         double CFar_tang;       //  tangent
00157 
00158         // Trial internal parameters for the Far Field component
00159         double TFar_y;                  //  y
00160         double TFar_p;                  //  current p
00161         double TFar_tang;       //  tangent
00162 
00163         double initialTangent;
00164 };
00165 
00166 
00167 #endif

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