xc
ACICreepShrinkageState.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 
29 #ifndef ACICreepShrinkageState_h
30 #define ACICreepShrinkageState_h
31 
32 #include "material/uniaxial/concrete/CreepShrinkageStateBase.h"
33 
34 namespace XC {
35 
40  {
41  private:
42 
43  double eps_cr;
44  double epsP_cr;
45 
46  double eps_sh;
47  double epsP_sh;
48 
49  protected:
50  void commit_eps_and_sig_init(void);
51  int sendData(Communicator &);
52  int recvData(const Communicator &);
53  public:
55  ACICreepShrinkageState(const double &_age, const double &_tcast, const double &_Et);
56  void setup_parameters(const double &);
57 
58 
59  double getCreep(void) const //Added by AMK
60  { return eps_cr; }
61  void setCreep(const double &d)
62  { this->eps_cr= d; }
63  double getShrink(void) const //Added by AMK
64  { return eps_sh; }
65  void setShrink(const double &d)
66  { this->eps_sh= d; }
67 
68  void set_eps_cr_sh_m_total(const double &_eps_cr, const double &_eps_sh, const double &_eps_m, const double &_eps_total)
69  {
70  CreepShrinkageStateBase::set_eps_m_total(_eps_m, _eps_total);
71  this->eps_cr= _eps_cr; // Creep strain.
72  this->eps_sh= eps_sh; // Shrinkage strain.
73  }
74  void update_mech_strain(void)
75  { this->eps_m= this->eps_total - this->eps_cr - this->eps_sh; }
76  void use_creep_shrinkage_from_last_commit(void)
77  {
78  this->eps_cr= this->epsP_cr; // Creep strain.
79  this->eps_sh= this->epsP_sh; // Shrinkage strain.
80  this->update_mech_strain(); // Mechanical strain.
81  }
82 
83  int commit_state(const int &count, const double &hstvP_sig, const double &currentTime);
84  int revert_to_last_commit(void);
85  int revert_to_start(const double &_Et);
86 
87  int sendSelf(Communicator &);
88  int recvSelf(const Communicator &);
89 
90  void Print(std::ostream &s, int flag =0) const;
91 
92  };
93 } // end of XC namespace
94 
95 
96 #endif
97 
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: ACICreepShrinkageState.cc:91
int sendSelf(Communicator &)
Sends object through the communicator argument.
Definition: ACICreepShrinkageState.cc:99
Communication parameters between processes.
Definition: Communicator.h:66
Class that groups the variables that keep track of the creep and shrinkage strains according to the A...
Definition: ACICreepShrinkageState.h:39
void setup_parameters(const double &)
Sets initial values for the concrete parameters.
Definition: ACICreepShrinkageState.cc:44
Base class that groups the variables that keep track of the creep and shrinkage strains.
Definition: CreepShrinkageStateBase.h:40
int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: ACICreepShrinkageState.cc:115
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: ACICreepShrinkageState.cc:84
double eps_total
Total strain.
Definition: CreepShrinkageStateBase.h:53
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
double eps_m
Mechanical strain.
Definition: CreepShrinkageStateBase.h:50