xc
PlasticDamageConcretePlaneStress.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 /* ****************************************************************** **
30 ** OpenSees - Open System for Earthquake Engineering Simulation **
31 ** Pacific Earthquake Engineering Research Center **
32 ** **
33 ** **
34 ** (C) Copyright 1999, The Regents of the University of California **
35 ** All Rights Reserved. **
36 ** **
37 ** Commercial use of this program without express permission of the **
38 ** University of California, Berkeley, is strictly prohibited. See **
39 ** file 'COPYRIGHT' in main directory for information on usage and **
40 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
41 ** **
42 ** Developed by: **
43 ** Frank McKenna (fmckenna@ce.berkeley.edu) **
44 ** Gregory L. Fenves (fenves@ce.berkeley.edu) **
45 ** Filip C. Filippou (filippou@ce.berkeley.edu) **
46 ** **
47 ** ****************************************************************** */
48 
49 // $Revision: 1.6 $
50 // $Date: 2006-08-04 18:18:37 $
51 // $Source: /usr/local/cvs/OpenSees/SRC/material/nD/ElasticIsotropicPlaneStress2D.h,v $
52 
53 #ifndef PlasticDamageConcretePlaneStress_h
54 #define PlasticDamageConcretePlaneStress_h
55 
56 // Written: Thanh Do
57 // Created: 07/16
58 //
59 // Description:
60 //
61 // What: "@(#) ElasticIsotropicThreeDimesnional.h, revA"
62 
63 #include "utility/matrix/Vector.h"
64 #include "utility/matrix/Matrix.h"
65 #include "material/nD/NDMaterial.h"
66 
67 namespace XC {
68 
69 // Type Definitions
70 typedef struct {
71  double E;
72  double nu;
73  double ft;
74  double fc;
75  double Ap;
76  double An;
77  double Bn;
78  double beta;
80 
81 typedef struct {
82  double sig[3];
83  double eps_p[4];
84  double rn;
85  double rp;
86  double dp;
87  double dn;
89 
90 typedef struct {
91  double eps_p[4];
92  double rn;
93  double rp;
94  double dp;
95  double dn;
97 
98 //typedef struct {
99 // double sig[3];
100 // double km[9];
101 // struct2_T Pres;
102 // double eps[3];
103 // struct3_T Past;
104 // double Deps[3];
105 //} struct1_T;
106 
108  {
109  private:
110  // parameters
111  double E;
112  double nu;
113  double ft;
114  double fc;
115  double beta;
116  double Ap;
117  double An;
118  double Bn;
119 
120  double sig[3];
121  double eps[3];
122  double Deps[3];
123 
124  Matrix Ce;
125  Matrix Ce0;
126  Matrix CeCommitted;
127 
128  // double Ce[9]; // current tangent
129  // double Ce0[9]; // initial tangent
130  // double CeCommitted[9]; // committed tangent
131 
132  // current state variables
133  //double sig[3];
134  double eps_p[4];
135  double rn;
136  double rp;
137  double dp;
138  double dn;
139 
140  // committed state variables
141  double Committed_sig[4];
142  double Committed_eps[3];
143  double Committed_eps_p[4];
144  double Committed_rn;
145  double Committed_rp;
146  double Committed_dp;
147  double Committed_dn;
148 
149  Vector stress;
150  Vector strain;
151  Vector Cstress;
152  Vector Cstrain;
153  protected:
154  int sendData(Communicator &);
155  int recvData(const Communicator &);
156  public:
159  double E,
160  double nu,
161  double ft,
162  double fc,
163  double beta = 0.6,
164  double Ap = 0.5,
165  double An = 2.0,
166  double Bn = 0.75);
167  double getE(void) const;
168  double getNu(void) const;
169  double getFt(void) const;
170  double getFc(void) const;
171  double getBeta(void) const;
172  double getAp(void) const;
173  double getAn(void) const;
174  double getBn(void) const;
175 
176  void setE(const double &);
177  void setNu(const double &);
178  void setFt(const double &);
179  void setFc(const double &);
180  void setBeta(const double &);
181  void setAp(const double &);
182  void setAn(const double &);
183  void setBn(const double &);
184 
185  void setup(void);
186 
187  int setTrialStrain(const Vector &v);
188  int setTrialStrain(const Vector &v, const Vector &r);
189  int setTrialStrainIncr(const Vector &v);
190  int setTrialStrainIncr(const Vector &v, const Vector &r);
191  const Matrix &getTangent(void) const;
192  const Matrix &getInitialTangent(void) const;
193 
194  const Vector &getStress(void) const;
195  const Vector &getStrain(void) const;
196 
197  int commitState(void);
198  int revertToLastCommit(void);
199  int revertToStart(void);
200 
201  NDMaterial *getCopy(const std::string &) const;
202  NDMaterial *getCopy(void) const;
203  const std::string &getType(void) const;
204  int getOrder(void) const;
205 
206  int sendSelf(Communicator &);
207  int recvSelf(const Communicator &);
208 
209  void Print(std::ostream &s, int flag = 0) const;
210  };
211 } // end of XC namespace
212 
213 #endif
214 
int revertToStart(void)
Revert the material to its initial state.
Definition: PlasticDamageConcretePlaneStress.cpp:1110
Float vector abstraction.
Definition: Vector.h:94
Definition: setup.py:1
Communication parameters between processes.
Definition: Communicator.h:66
double getBn(void) const
Get parameter controlling ductility and peak strength of the compressive response.
Definition: PlasticDamageConcretePlaneStress.cpp:162
double getFc(void) const
Get compressive yield strength.
Definition: PlasticDamageConcretePlaneStress.cpp:148
int recvData(const Communicator &)
Receive material data.
Definition: PlasticDamageConcretePlaneStress.cpp:1159
void setBeta(const double &)
Set plastic deformation rate.
Definition: PlasticDamageConcretePlaneStress.cpp:179
void setAp(const double &)
Set parameter controlling tensile fracture energy.
Definition: PlasticDamageConcretePlaneStress.cpp:182
Definition: PlasticDamageConcretePlaneStress.h:90
int recvSelf(const Communicator &)
Receive the object.
Definition: PlasticDamageConcretePlaneStress.cpp:1197
int setTrialStrainIncr(const Vector &v)
Set trial strain increment.
Definition: PlasticDamageConcretePlaneStress.cpp:1039
const Vector & getStress(void) const
Returns the material stress vector at the current trial strain.
Definition: PlasticDamageConcretePlaneStress.cpp:1059
PlasticDamageConcretePlaneStress(int tag=0)
Constructor.
Definition: PlasticDamageConcretePlaneStress.cpp:114
const Matrix & getTangent(void) const
Return the tangent stiffness matrix at the current trial strain.
Definition: PlasticDamageConcretePlaneStress.cpp:1053
void setFc(const double &)
Set compressive yield strength.
Definition: PlasticDamageConcretePlaneStress.cpp:175
int setTrialStrain(const Vector &v)
Sets the value of the trial strain vector, that value used by {getStress()} and getTangent(), to be strain.
Definition: PlasticDamageConcretePlaneStress.cpp:195
const Vector & getStrain(void) const
Returns strain.
Definition: PlasticDamageConcretePlaneStress.cpp:1062
double getFt(void) const
Get tensile yield strength.
Definition: PlasticDamageConcretePlaneStress.cpp:145
void setBn(const double &)
Set parameter controlling ductility and peak strength of the compressive response.
Definition: PlasticDamageConcretePlaneStress.cpp:189
double getE(void) const
Return the material elastic modulus.
Definition: PlasticDamageConcretePlaneStress.cpp:139
double getNu(void) const
Get Poisson ratio.
Definition: PlasticDamageConcretePlaneStress.cpp:142
void setAn(const double &)
Set parameter controlling ductility of the compressive response.
Definition: PlasticDamageConcretePlaneStress.cpp:185
Base class for 2D and 3D materials.
Definition: NDMaterial.h:101
int sendData(Communicator &)
Send material data.
Definition: PlasticDamageConcretePlaneStress.cpp:1134
Definition: PlasticDamageConcretePlaneStress.h:81
void setNu(const double &)
Set Poisson ratio.
Definition: PlasticDamageConcretePlaneStress.cpp:169
double getBeta(void) const
Get plastic deformation rate.
Definition: PlasticDamageConcretePlaneStress.cpp:152
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
Definition: PlasticDamageConcretePlaneStress.h:107
Matrix of floats.
Definition: Matrix.h:111
int sendSelf(Communicator &)
Send the object.
Definition: PlasticDamageConcretePlaneStress.cpp:1183
Definition: PlasticDamageConcretePlaneStress.h:70
double getAp(void) const
Get parameter controlling tensile fracture energy.
Definition: PlasticDamageConcretePlaneStress.cpp:155
void Print(std::ostream &s, int flag=0) const
print out data
Definition: PlasticDamageConcretePlaneStress.cpp:1218
double getAn(void) const
Get parameter controlling ductility of the compressive response.
Definition: PlasticDamageConcretePlaneStress.cpp:158
NDMaterial * getCopy(void) const
Virtual constructor.
Definition: PlasticDamageConcretePlaneStress.cpp:1121
void setFt(const double &)
Set tensile yield strength.
Definition: PlasticDamageConcretePlaneStress.cpp:172