xc
PotentialSurface.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 //# CLASS: PotentialSurface(the base class for all potential surfaces) #
35 //# #
36 //# VERSION: #
37 //# LANGUAGE: C++.ver >= 2.0 ( Borland C++ ver=3.00, SUN C++ ver=2.1 ) #
38 //# TARGET OS: DOS || UNIX || . . . #
39 //# DESIGNER(S): Boris Jeremic, Zhaohui Yang #
40 //# PROGRAMMER(S): Boris Jeremic, Zhaohui Yang #
41 //# #
42 //# #
43 //# DATE: 08-03-2000 #
44 //# UPDATE HISTORY: #
45 //# #
46 //# #
47 //# #
48 //# #
49 //# SHORT EXPLANATION: The goal is to create a platform for efficient and easy #
50 //# implementation of any elasto-plastic constitutive model!#
51 //# #
52 //############################################################################
53 //
54 
55 #ifndef PS_H
56 #define PS_H
57 
58 #include <iostream>
59 #include "utility/kernel/CommandEntity.h"
60 
61 namespace XC {
62  class BJtensor;
63  class EPState;
64 
77  {
78  public:
79  virtual PotentialSurface *getCopy(void) const=0; // create a clone of itself
80  virtual ~PotentialSurface() {}; // Codewizard requires virtual destructor
81  virtual BJtensor dQods(const EPState *EPS ) const= 0; //pure virtual func
82  virtual BJtensor d2Qods2(const EPState *EPS ) const= 0; //pure virtual func
83 
84  // Added for Consistent Algorithm, Z. Cheng, Jan 2004
85  // Ref. Jeremic & Sture, Mechanics of Cohesive-Frictional Materials, Vol.2 165-183 (1997)
86  virtual BJtensor d2Qodsds1(const EPState *EPS ) const;
87  virtual BJtensor d2Qodsds2(const EPState *EPS ) const;
88  virtual BJtensor d2Qodsds3(const EPState *EPS ) const;
89  virtual BJtensor d2Qodsds4(const EPState *EPS ) const;
90  virtual BJtensor d2Qodsdt1(const EPState *EPS ) const;
91  virtual BJtensor d2Qodsdt2(const EPState *EPS ) const;
92  virtual BJtensor d2Qodsdt3(const EPState *EPS ) const;
93  virtual BJtensor d2Qodsdt4(const EPState *EPS ) const;
94 
95  virtual void print(std::ostream &) const;
96  };
97 
98 std::ostream& operator<<(std::ostream &os, const PotentialSurface & PS);
99 
100 } // end of XC namespace
101 
102 
103 #endif
104 
virtual BJtensor d2Qodsdt3(const EPState *EPS) const
The d(dQ/dsigma_ij)/dt3_mn.
Definition: PotentialSurface.cc:105
Boris Jeremic tensor class.
Definition: BJtensor.h:112
Definition: PotentialSurface.h:76
virtual BJtensor d2Qodsds3(const EPState *EPS) const
The d(dQ/dsigma_ij)/ds3.
Definition: PotentialSurface.cc:73
virtual BJtensor d2Qodsds4(const EPState *EPS) const
The d(dQ/dsigma_ij)/ds4.
Definition: PotentialSurface.cc:81
virtual BJtensor d2Qodsdt2(const EPState *EPS) const
The d(dQ/dsigma_ij)/dt2_mn.
Definition: PotentialSurface.cc:97
Base class for all elasto-plastic states.
Definition: EPState.h:151
Objet that can execute python scripts.
Definition: CommandEntity.h:40
virtual BJtensor d2Qodsds1(const EPState *EPS) const
The d(dQ/dsigma_ij)/ds1.
Definition: PotentialSurface.cc:58
virtual BJtensor d2Qodsdt4(const EPState *EPS) const
The d(dQ/dsigma_ij)/dt4_mn.
Definition: PotentialSurface.cc:113
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
virtual BJtensor d2Qodsdt1(const EPState *EPS) const
The d(dQ/dsigma_ij)/dt1_mn.
Definition: PotentialSurface.cc:89
virtual BJtensor d2Qodsds2(const EPState *EPS) const
The d(dQ/dsigma_ij)/ds2.
Definition: PotentialSurface.cc:65