Forward compatibility: flex
[foam-extend-3.2.git] / src / solidModels / constitutiveModel / plasticityStressReturnMethods / yamadaMises / yamadaMises.H
blobb189ae18e7133d5bd867233f3eac0a96deaef84a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     yamadaMises
27 Description
28     Stress return method similar to that described by a number of
29     references:
30     Yamada, Y. et al. 1968. with Yoshimura, N. and Sakurai, T. Plastic
31     stress-strain matrix and its application for the solution of
32     elastic-plastic problems by the finite element method.
33     International Journal of Mechanical Science. vol. 10, p. 343-354.
34     and
35     Maneeratana, K. 2000. Development of the finite volume method for
36     non-linear structural applications.
38     This approach gives the stress rate explicitly as a function of
39     strain rates and instantaneous stresses
41 SourceFiles
42     yamadaMises.C
44 Author
45     Aleksandar Karac Zenica/UCD
46     Rearranged by Philip Cardiff UCD
48 \*---------------------------------------------------------------------------*/
50 #ifndef yamadaMises_H
51 #define yamadaMises_H
53 #include "plasticityStressReturn.H"
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 namespace Foam
60   class constitutiveModel;
62 /*---------------------------------------------------------------------------*\
63                          Class yamadaMises Declaration
64 \*---------------------------------------------------------------------------*/
66 class yamadaMises
68     public plasticityStressReturn
70     // Private data
72         // Reference to constitutive model
73         constitutiveModel& constitutiveModel_;
75         // Yield stress
76         volScalarField sigmaY_;
78         // Increment of plastic strain
79         volSymmTensorField DEpsilonP_;
81         // Increment of equivalent plastic strain
82         volScalarField DEpsilonPEq_;
84         // Total equivalent plastic strain
85         volScalarField epsilonPEq_;
87         // Active yielding flag
88         // 1.0 for active yielding
89         // 0.0 for fully elastic
90         // 0.0 < beta < 1.0 for step which are a combination of fully elastic
91         // and elastic-plastic
92         volScalarField beta_;
94     // Private Member Functions
96         //- Disallow default bitwise copy construct
97         yamadaMises(const yamadaMises&);
99         //- Disallow default bitwise assignment
100         void operator=(const yamadaMises&);
102 public:
104     //- Runtime type information
105     TypeName("yamadaMises");
107     // Static data members
110     // Constructors
112         //- Construct from dictionary
113         yamadaMises
114         (
115             const word& name,
116             constitutiveModel& constitutiveModel
117         );
120     // Destructor
122         virtual ~yamadaMises();
125     // Member Functions
127         //- Correct the rheological model
128         virtual void correct();
130         //- Return slave friction value fraction
131         virtual const volSymmTensorField& DEpsilonP() const
132         {
133             return DEpsilonP_;
134         }
136         //- Return slave friction value fraction
137         virtual void updateYieldStress();
139         //- Write law dictionary
140         virtual void writeDict(Ostream& os) const {};
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 } // End namespace Foam
148 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 #endif
152 // ************************************************************************* //