xc
RoundedMohrCoulomb01YieldSurface.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 //# COPY LEFT and RIGHT: #
30 //# Commercial use of this program without express permission of the#
31 //# University of California, is strictly encouraged. Copyright and Copyleft#
32 //# are covered by the following clause: #
33 //# #
34 //# Woody's license: #
35 //# ``This source code is Copyrighted in U.S., by the The Regents of the#
36 //# University of California, for an indefinite period, and anybody caught#
37 //# using it without our permission, will be mighty good friends of ourn,#
38 //# cause we don't give a darn. Hack it. Compile it. Debug it. Run it. Yodel#
39 //# it. Enjoy it. We wrote it, that's all we wanted to do.'' bj #
40 //# #
41 //# #
42 //# #
43 //# PROJECT: Object Oriented Finite Element Program #
44 //# PURPOSE: Rounded Mohr Coulomb Potential Surface #
45 //# CLASS: RoundedMohrCoulomb01YieldSurface #
46 //# #
47 //# VERSION: #
48 //# LANGUAGE: C++ #
49 //# TARGET OS: DOS || UNIX || . . . #
50 //# DESIGNER(S): Boris Jeremic jeremic@ucdavis.edu #
51 //# Zhao Cheng, #
52 //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic #
53 //# #
54 //# #
55 //# DATE: 12 Feb. 2003 #
56 //# UPDATE HISTORY: #
57 //# #
58 //# #
59 //# #
60 //# #
61 //# SHORT EXPLANATION: Functions for rounded Mohr-Coulomb yield function #
62 //# #
63 //=============================================================================
64 
65 #ifndef RoundedMohrCoulomb01YieldSurface_H
66 #define RoundedMohrCoulomb01YieldSurface_H
67 
68 
69 #include "material/nD/template_3d_ep/YieldSurface.h"
70 
71 
72 namespace XC {
77  {
78  public:
79  YieldSurface *getCopy(void) const; //create a clone of itself
80 
81  RoundedMohrCoulomb01YieldSurface ( ) {} // Default constructor
82  virtual ~RoundedMohrCoulomb01YieldSurface() {} // Destructor
83 
84  double f(const EPState *EPS) const;
85  BJtensor dFods(const EPState *EPS) const;
86 
87  // Redefine 1st derivative of F over scalar internal variables
88  double xi_s1( const EPState *EPS ) const;
89  double xi_s2( const EPState *EPS ) const;
90 
91  // Redefine 1st derivative of F over tensorial internal variables
92 // tensor xi_t1(const EPState *EPS) const;
93 
94  virtual void print(std::ostream &os) const;
95  };
96 
97 } // end of XC namespace
98 
99 #endif
100 
BJtensor dFods(const EPState *EPS) const
BJtensor dF/dsigma_ij.
Definition: RoundedMohrCoulomb01YieldSurface.cpp:96
Rounded Mohr-Coulomb yield surface.
Definition: RoundedMohrCoulomb01YieldSurface.h:76
Boris Jeremic tensor class.
Definition: BJtensor.h:112
double f(const EPState *EPS) const
Yield criterion evaluation function F(EPState)
Definition: RoundedMohrCoulomb01YieldSurface.cpp:76
double xi_s2(const EPState *EPS) const
double xi_s2 = dF/dS2 = dF/k = -1.0 Derivative in terms of second scalar var
Definition: RoundedMohrCoulomb01YieldSurface.cpp:150
Base class for yield surfaces.
Definition: YieldSurface.h:69
Base class for all elasto-plastic states.
Definition: EPState.h:151
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
YieldSurface * getCopy(void) const
Virtual constructor.
Definition: RoundedMohrCoulomb01YieldSurface.cpp:72
double xi_s1(const EPState *EPS) const
double xi_s1 = dF/dS1 = dF/dalfa1 = I1 Derivative in terms of first scalar var
Definition: RoundedMohrCoulomb01YieldSurface.cpp:131