XC Open source finite element analysis program
MultiaxialCyclicPlasticityAxiSymm.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 ** OpenSees - Open System for Earthquake Engineering Simulation **
29 ** Pacific Earthquake Engineering Research Center **
30 ** **
31 ** **
32 ** (C) Copyright 1999, The Regents of the University of California **
33 ** All Rights Reserved. **
34 ** **
35 ** Commercial use of this program without express permission of the **
36 ** University of California, Berkeley, is strictly prohibited. See **
37 ** file 'COPYRIGHT' in main directory for information on usage and **
38 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
39 ** **
40 ** ****************************************************************** */
41 
42 
43 /*----+----+----+----+----+----+----+----+----+----+----+----+----+----+----*
44  | |
45  | MultiaxialCyclicPlasticity NDMaterial |
46  + +
47  |--------------------------------------------------------------------------|
48  | |
49  + Authors: Gang Wang AND Professor Nicholas Sitar +
50  | |
51  | Department of Civil and Environmental Engineering |
52  + Univeristy of California, Berkeley, CA 94720, USA +
53  | |
54  | Email: wang@ce.berkeley.edu (G.W.) |
55  | |
56  +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----*/
57 
58 
59 #ifndef MultiaxialCyclicPlasticityAxiSymm_h
60 #define MultiaxialCyclicPlasticityAxiSymm_h
61 
62 #include <utility/matrix/Vector.h>
63 #include <utility/matrix/Matrix.h>
64 
65 #include <material/nD/soil/cyclicSoil/MultiaxialCyclicPlasticity.h>
66 
67 
68 
69 namespace XC{
71 //
74 
75 //-------------------Declarations-------------------------------
76 
77  private :
78 
79  //static vectors and matrices
80  static Vector strain_vec ; //strain in vector notation
81  static Vector stress_vec ; //stress in vector notation
82  static Matrix tangent_matrix ; //material tangent in matrix notation
83 
84  public :
85 
87  //null constructor
89 
90  //full constructor
91 
93  double rho,
94  double K,
95  double G,
96  double Su,
97  double Ho_kin,
98  double Parameter_h,
99  double Parameter_m,
100  double Parameter_beta,
101  double Kcoeff,
102  double viscosity=0 ) ;
103 
104  //elastic constructor // add density by Gang Wang
105  MultiaxialCyclicPlasticityAxiSymm( int tag, double rho, double K, double G ) ;
106 
107  //make a clone of this material
108  NDMaterial* getCopy(void) const;
109 
110  //send back type of material
111  const std::string &getType( ) const ;
112 
113  //send back order of strain in vector form
114  int getOrder( ) const ;
115 
116  //get the strain and integrate plasticity equations
117  int setTrialStrain( const Vector &strain_from_element) ;
118 
119  //unused trial strain functions
120  int setTrialStrain( const Vector &v, const Vector &r ) ;
121  int setTrialStrainIncr( const Vector &v ) ;
122  int setTrialStrainIncr( const Vector &v, const Vector &r ) ;
123 
124  //send back the strain
125  const Vector& getStrain(void) const;
126 
127  //send back the stress
128  const Vector& getStress(void) const;
129 
130  //send back the tangent
131  const Matrix& getTangent(void) const;
132  const Matrix& getInitialTangent(void) const;
133 
134  //this is mike's problem
135  int setTrialStrain(const Tensor &v) ;
136  int setTrialStrain(const Tensor &v, const Tensor &r) ;
137  int setTrialStrainIncr(const Tensor &v) ;
138  int setTrialStrainIncr(const Tensor &v, const Tensor &r) ;
139  const Tensor& getTangentTensor( ) ;
140 
141  //swap history variables
142  //int commitState( ) ;
143  //int revertToLastCommit( ) ;
144  //int revertToStart( ) ;
145 
146 
147 
148 
149 
150 } ; //end of MultiaxialCyclicPlasticityAxiSymm declarations
151 
152 } //end of XC namespace
153 
154 #endif
const Vector & getStress(void) const
Returns stress.
Definition: MultiaxialCyclicPlasticityAxiSymm.cpp:210
Base class for 2D and 3D materials.
Definition: NDMaterial.h:91
Definition: Vector.h:82
??.
Definition: MultiaxialCyclicPlasticity.h:117
int setTrialStrainIncr(const Vector &v)
Asigna el valor del incremento de la trial strain.
Definition: MultiaxialCyclicPlasticityAxiSymm.cpp:153
const Vector & getStrain(void) const
Returns strain.
Definition: MultiaxialCyclicPlasticityAxiSymm.cpp:195
NDMaterial * getCopy(void) const
Virtual constructor.
Definition: MultiaxialCyclicPlasticityAxiSymm.cpp:106
const Matrix & getTangent(void) const
Return the tangent stiffness matrix.
Definition: MultiaxialCyclicPlasticityAxiSymm.cpp:223
??.
Definition: MultiaxialCyclicPlasticityAxiSymm.h:73
int setTrialStrain(const Vector &strain_from_element)
Asigna el trial strain value.
Definition: MultiaxialCyclicPlasticityAxiSymm.cpp:121
Definition: Matrix.h:82
================================================================================
Definition: ContinuaReprComponent.h:34