xc
PYBase.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 //PYBase.h
29 
30 #ifndef PYBASE_H
31 #define PYBASE_H
32 
33 #include "material/uniaxial/UniaxialMaterial.h"
34 #include "InternalParamsIn.h"
35 #include "InternalParamsLRIn.h"
36 
37 namespace XC {
39 //
42 //
46 class PYBase: public UniaxialMaterial
47  {
48  protected:
51  double TvRate;
54 
55  // Material parameters
56  double initialTangent;
57  int soilType;
58  double matCapacity;
59  double v50;
60  double vRef;
61  double np;
62  double dashpot;
63 
64  void getFarField(const double &y);
65 
66  int sendData(Communicator &);
67  int recvData(const Communicator &);
68 
69 
70  public:
71  PYBase(int tag, int classtag, int soilType, double mCap, double v50, double dashpot);
72  PYBase(int tag, int classtag);
73  PYBase(void);
74 
75  double getTangent(void) const;
76  double getInitialTangent(void) const;
77  void setInitialTangent(const double &);
78  double getStrain(void) const;
79  double getStrainRate(void) const;
80 
81  void setSoilType(const int &);
82  int getSoilType(void) const;
83  void setUltimateCapacity(const double &);
84  double getUltimateCapacity(void) const;
85  void setY50(const double &);
86  double getY50(void) const;
87  void setDashPot(const double &);
88  double getDashPot(void) const;
89 
90  int commitState(void);
91  int revertToLastCommit(void);
92 
93  void Print(std::ostream &s, int flag =0) const;
94 
95  };
96 } // end of XC namespace
97 
98 
99 #endif
double getStrainRate(void) const
default operation for strain rate is zero
Definition: PYBase.cc:112
InternalParamsA CFar
Committed internal parameters for the Far Field component.
Definition: PYBase.h:52
Communication parameters between processes.
Definition: Communicator.h:66
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:93
double matCapacity
Material capacity.
Definition: PYBase.h:58
int getSoilType(void) const
Gets the soil type to represent: soilType= 1 Backbone of p-y curve approximates Matlock (1970) soft c...
Definition: PYBase.cc:60
void setSoilType(const int &)
Sets the soil type to represent: soilType= 1 Backbone of p-y curve approximates Matlock (1970) soft c...
Definition: PYBase.cc:54
double getTangent(void) const
Return the material tangent stiffness.
Definition: PYBase.cc:98
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: PYBase.cc:133
void Print(std::ostream &s, int flag=0) const
Print stuff.
Definition: PYBase.cc:164
void setY50(const double &)
Set the displacement at which 50% of pult is mobilized in monotonic loading.
Definition: PYBase.cc:77
PYMat
Definition: PYBase.h:46
double getDashPot(void) const
Get the viscous damping term (dashpot) on the far-field (elastic) component of the displacement rate ...
Definition: PYBase.cc:91
double vRef
(y or z) reference point for Near Field component
Definition: PYBase.h:60
InternalParamsA T
Trial history variables for entire p-y material.
Definition: PYBase.h:50
double getInitialTangent(void) const
Return the material initial stiffness.
Definition: PYBase.cc:102
double getUltimateCapacity(void) const
Get the ultimate capacity of the p-y material.
Definition: PYBase.cc:73
void setInitialTangent(const double &)
Set initial stiffness.
Definition: PYBase.cc:106
double dashpot
dashpot on the far-field (elastic) component
Definition: PYBase.h:62
double np
exponent for hardening shape of Near Field component
Definition: PYBase.h:61
void setUltimateCapacity(const double &)
Set the ultimate capacity of the p-y material.
Definition: PYBase.cc:67
PYBase(void)
Default constructor.
Definition: PYBase.cc:47
double v50
y (or z) at 50% of matCapacity.
Definition: PYBase.h:59
InternalParamsA C
Committed history variables for entire Q-z material.
Definition: PYBase.h:49
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
InternalParamsA TFar
Trial internal parameters for the Far Field component.
Definition: PYBase.h:53
double TvRate
Trial velocity.
Definition: PYBase.h:51
Internal parameters for the Gap (Drag + Closure).
Definition: InternalParamsA.h:39
double getY50(void) const
Get the displacement at which 50% of pult is mobilized in monotonic loading.
Definition: PYBase.cc:81
int soilType
Soil type.
Definition: PYBase.h:57
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: PYBase.cc:148
void setDashPot(const double &)
Set the viscous damping term (dashpot) on the far-field (elastic) component of the displacement rate ...
Definition: PYBase.cc:86