xc
EvolutionLaw_LEij.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 // COPYRIGHT (C): :-))
31 // PROJECT: Object Oriented Finite Element Program
32 // PURPOSE: General platform for elaso-plastic constitutive model
33 // implementation
34 //
35 // CLASS: EvolutionLaw_L_Eij (linear tensorial Evolution law)
36 //
37 //
38 // VERSION:
39 // LANGUAGE: C++.ver >= 2.0 ( Borland C++ ver=3.00, SUN C++ ver=2.1 )
40 // TARGET OS: DOS || UNIX || . . .
41 // DESIGNER(S): Boris Jeremic, Zhaohui Yang
42 // PROGRAMMER(S): Boris Jeremic, Zhaohui Yang
43 //
44 //
45 // DATE: 09-13-2000
46 // UPDATE HISTORY:
47 //
48 //
49 //
50 //
51 // SHORT EXPLANATION: This is a linear evolution law for the evoltion of a
52 // tensorial variable alpha which depends on plastic strain
53 // i.e. dalpha = a * de_ij
54 //
55 //============================================================================
56 
57 #ifndef EvolutionLaw_LEij_H
58 #define EvolutionLaw_LEij_H
59 
60 #include <cmath>
61 #include "material/nD/template_3d_ep/EvolutionLaw_T.h"
62 
63 namespace XC {
72  {
73  // Private vars to define the evolution law
74  private:
75  double a;
76  public:
77  EvolutionLaw_L_Eij( double ad = 10.0);
78  EvolutionLaw_L_Eij(const EvolutionLaw_L_Eij &LEL ); // Copy constructor
79 
80  EvolutionLaw_T *getCopy(void) const; // create a clone of itself
81 
82  BJtensor h_t( EPState *EPS, PotentialSurface *PS); // Evaluating hardening function h
83 
84  virtual void print(std::ostream &) const;
85 
86  // some accessor functions
87  double geta() const; // Linear coefficient used to evolve internal var
88  void seta(double ad);
89  };
90 } // end of XC namespace
91 
92 
93 #endif
94 
95 
96 
97 
Linear tensorial Evolution law.
Definition: EvolutionLaw_LEij.h:71
Boris Jeremic tensor class.
Definition: BJtensor.h:112
Definition: PotentialSurface.h:76
virtual void print(std::ostream &) const
Print vars defined in Linear Evolution Law.
Definition: EvolutionLaw_LEij.cpp:129
Base class for all elasto-plastic states.
Definition: EPState.h:151
EvolutionLaw_T * getCopy(void) const
Virtual constructor.
Definition: EvolutionLaw_LEij.cpp:77
Base class for tensorial evolution laws.
Definition: EvolutionLaw_T.h:72
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35