XC Open source finite element analysis program
NullEvolution.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  NullEvolution.h - description
29  -------------------
30  begin : Thu Aug 1 2002
31  email : rkaul@ce-blume215-pent-2.stanford.edu
32  ***************************************************************************/
33 
34 /***************************************************************************
35  * *
36  * *
37  ***************************************************************************/
38 
39 #ifndef NULLEVOLUTION_H
40 #define NULLEVOLUTION_H
41 
42 #include "material/yieldSurface/evolution/YS_Evolution.h"
43 
49 namespace XC {
51 //
55  {
56  private:
57  static Vector vec_dim_1;
58  static Vector vec_dim_2;
59  static Vector vec_dim_3;
60  public:
61 
62  NullEvolution(int tag, double isox);
63  NullEvolution(int tag, double isox, double isoy);
64  NullEvolution(int tag, double isox, double isoy, double isoz);
65 
66  int evolveSurface(YieldSurface_BC *ys, double magPlasticDefo,
67  Vector & G, Vector & F_Surface, int flag);
68 
70 
72 
73  int getResponse(int responseID, Information & info);
74  Response* setResponse(const std::vector<std::string> &argv, Information & info);
75 
76  virtual int sendSelf(CommParameters &) {return -1;}
77  virtual int recvSelf(const CommParameters &){return -1;}
79  int revertToLastCommit();
80  int commitState(int status);
81  double getTrialPlasticStrains(int dof);
82  double getCommitPlasticStrains(int dof);
83  };
84 } // end of XC namespace
85 
86 #endif
Definition: Vector.h:82
int evolveSurface(YieldSurface_BC *ys, double magPlasticDefo, Vector &G, Vector &F_Surface, int flag)
Definition: NullEvolution.cpp:77
Information about an element.
Definition: Information.h:80
int getResponse(int responseID, Information &info)
Definition: NullEvolution.cpp:127
int revertToLastCommit()
Definition: NullEvolution.cpp:140
Yield surface.
Definition: YieldSurface_BC.h:46
const Vector & getEquiPlasticStiffness()
Definition: NullEvolution.cpp:101
Yield surface evolution.
Definition: YS_Evolution.h:46
int commitState(int status)
Definition: NullEvolution.cpp:137
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
Definition: Response.h:71
Useful for declaring inner-surfaces or pinching surfaces or just plain elastic-perfectly plastic surf...
Definition: NullEvolution.h:54
YS_Evolution * getCopy()
Definition: NullEvolution.cpp:85
Response * setResponse(const std::vector< std::string > &argv, Information &info)
Definition: NullEvolution.cpp:133