XC Open source finite element analysis program
SteelBase.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 //SteelBase.h
28 #ifndef SteelBase_h
29 #define SteelBase_h
30 
31 #include <material/uniaxial/UniaxialMaterial.h>
32 
33 namespace XC {
35 //
38  {
39  protected:
40  /*** Material Properties ***/
41  double fy;
42  double E0;
43  double b;
44  double a1;
45  double a2;
46  double a3;
47  double a4;
48 
49  int sendData(CommParameters &);
50  int recvData(const CommParameters &);
51 
52  virtual int setup_parameters(void)= 0;
53  public:
54  SteelBase(int tag,int classTag,const double &fy,const double &e0,const double &b,const double &a1,const double &a2,const double &a3,const double &a4);
55  SteelBase(int tag,int classTag);
56 
57  void setInitialTangent(const double &);
58  double getInitialTangent(void) const;
59  void setFy(const double &);
60  double getFy(void) const;
61 
62  inline void setHardeningRatio(const double &d)
63  { b= d; }
64  inline double getHardeningRatio(void) const
65  { return b; }
66  inline double getEsh(void) const
67  { return b*E0; }
68  inline double getEpsy(void) const
69  { return fy/E0; }
70  };
71 } // end of XC namespace
72 
73 #endif
Base class for steel uniaxial materials.
Definition: SteelBase.h:37
double E0
Initial stiffness.
Definition: SteelBase.h:42
double a3
coefficient for isotropic hardening in tension
Definition: SteelBase.h:46
int recvData(const CommParameters &)
Receives object members through the channel being passed as parameter.
Definition: SteelBase.cc:74
double a4
coefficient for isotropic hardening in tension
Definition: SteelBase.h:47
double b
Hardening ratio (b = Esh/E0)
Definition: SteelBase.h:43
SteelBase(int tag, int classTag, const double &fy, const double &e0, const double &b, const double &a1, const double &a2, const double &a3, const double &a4)
Constructor.
Definition: SteelBase.cc:35
double a1
coefficient for isotropic hardening in compression
Definition: SteelBase.h:44
void setFy(const double &)
Assigns yield stress.
Definition: SteelBase.cc:53
double a2
coefficient for isotropic hardening in compression
Definition: SteelBase.h:45
void setInitialTangent(const double &)
Assigns intial Young&#39;s modulus.
Definition: SteelBase.cc:42
double getFy(void) const
Returns yield stress.
Definition: SteelBase.cc:60
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
double fy
Yield stress.
Definition: SteelBase.h:41
double getInitialTangent(void) const
Returns intial Young&#39;s modulus.
Definition: SteelBase.cc:49
int sendData(CommParameters &)
Send object members through the channel being passed as parameter.
Definition: SteelBase.cc:65
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:88