XC Open source finite element analysis program
SteelBase0103.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 
28 #ifndef SteelBase0103_h
29 #define SteelBase0103_h
30 
31 #include "material/uniaxial/steel/SteelBase.h"
32 
33 
34 namespace XC {
35 
36 // Default values for isotropic hardening parameters a1, a2, a3, and a4
37 const double STEEL_0103_DEFAULT_A1= 0.0;
38 const double STEEL_0103_DEFAULT_A2= 55.0;
39 const double STEEL_0103_DEFAULT_A3= 0.0;
40 const double STEEL_0103_DEFAULT_A4= 55.0;
41 
43 //
45 class SteelBase0103: public SteelBase
46  {
47  protected:
48  /*** CONVERGED History Variables ***/
49  double CminStrain;
50  double CmaxStrain;
51  double CshiftP;
52  double CshiftN;
53  int Cloading;
54  // 1 = loading (positive strain increment)
55  // -1 = unloading (negative strain increment)
56  // 0 initially
57 
58  /*** CONVERGED State Variables ***/
59  double Cstrain;
60  double Cstress;
61  double Ctangent;
62 
63  /*** TRIAL State Variables ***/
64  double Tstrain;
65  double Tstress;
66  double Ttangent; // Not really a state variable, but declared here
67  // for convenience
68 
69  /*** TRIAL History Variables ***/
70  double TminStrain;
71  double TmaxStrain;
72  double TshiftP;
73  double TshiftN;
74  int Tloading;
75 
76  virtual void determineTrialState(double dStrain)= 0;
77 
78  protected:
79  int sendData(CommParameters &);
80  int recvData(const CommParameters &);
81 
82  virtual int setup_parameters(void);
83  public:
84  SteelBase0103(int tag, int classTag, double fy, double E0, double b,
85  double a1 = STEEL_0103_DEFAULT_A1, double a2 = STEEL_0103_DEFAULT_A2,
86  double a3 = STEEL_0103_DEFAULT_A3, double a4 = STEEL_0103_DEFAULT_A4);
87  SteelBase0103(int tag, int classTag);
88  SteelBase0103(int classTag);
89 
90  int setTrialStrain(double strain, double strainRate = 0.0);
91  int setTrial(double strain, double &stress, double &tangent, double strainRate = 0.0);
92  double getStrain(void) const;
93  double getStress(void) const;
94  double getTangent(void) const;
95 
96  int commitState(void);
97  int revertToLastCommit(void);
98  int revertToStart(void);
99 
100  void Print(std::ostream &s, int flag =0);
101  };
102 } // end of XC namespace
103 
104 #endif
Base class for steel uniaxial materials.
Definition: SteelBase.h:37
void Print(std::ostream &s, int flag=0)
Imprime el objeto.
Definition: SteelBase0103.cc:186
virtual int setup_parameters(void)
Sets all history and state variables to initial values.
Definition: SteelBase0103.cc:39
int revertToLastCommit(void)
Reset material to last committed state.
Definition: SteelBase0103.cc:140
double CmaxStrain
Maximum strain in tension.
Definition: SteelBase0103.h:50
double E0
Initial stiffness.
Definition: SteelBase.h:42
double a3
coefficient for isotropic hardening in tension
Definition: SteelBase.h:46
double CminStrain
Minimum strain in compression.
Definition: SteelBase0103.h:49
double CshiftN
Shift in hysteresis loop for negative loading.
Definition: SteelBase0103.h:52
Base class for Steel01 and Steel03.
Definition: SteelBase0103.h:45
double a4
coefficient for isotropic hardening in tension
Definition: SteelBase.h:47
int recvData(const CommParameters &)
Receives object members through the channel being passed as parameter.
Definition: SteelBase0103.cc:175
double b
Hardening ratio (b = Esh/E0)
Definition: SteelBase.h:43
double a1
coefficient for isotropic hardening in compression
Definition: SteelBase.h:44
int Cloading
Flag for loading/unloading.
Definition: SteelBase0103.h:53
double a2
coefficient for isotropic hardening in compression
Definition: SteelBase.h:45
int sendData(CommParameters &)
Send object members through the channel being passed as parameter.
Definition: SteelBase0103.cc:164
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
double CshiftP
Shift in hysteresis loop for positive loading.
Definition: SteelBase0103.h:51
double fy
Yield stress.
Definition: SteelBase.h:41
SteelBase0103(int tag, int classTag, double fy, double E0, double b, double a1=STEEL_0103_DEFAULT_A1, double a2=STEEL_0103_DEFAULT_A2, double a3=STEEL_0103_DEFAULT_A3, double a4=STEEL_0103_DEFAULT_A4)
Constructor.
Definition: SteelBase0103.cc:66