1 /*---------------------------------------------------------------------------*\
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 -------------------------------------------------------------------------------
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/>.
28 Linear elastic rheology
33 \*---------------------------------------------------------------------------*/
35 #ifndef linearElastic_H
36 #define linearElastic_H
38 #include "rheologyLaw.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 /*---------------------------------------------------------------------------*\
46 Class linearElastic Declaration
47 \*---------------------------------------------------------------------------*/
56 dimensionedScalar rho_;
58 //- Modulus of elasticity
62 dimensionedScalar nu_;
64 // Private Member Functions
66 //- Disallow default bitwise copy construct
67 linearElastic(const linearElastic&);
69 //- Disallow default bitwise assignment
70 void operator=(const linearElastic&);
74 //- Runtime type information
75 TypeName("linearElastic");
77 // Static data members
82 //- Construct from dictionary
86 const volSymmTensorField& sigma,
87 const dictionary& dict
93 virtual ~linearElastic();
99 virtual tmp<volScalarField> rho() const;
101 //- Return modulus of elasticity
102 virtual tmp<volScalarField> E() const;
104 //- Return Poisson's ratio
105 virtual tmp<volScalarField> nu() const;
108 virtual tmp<volScalarField> rho(scalar t) const
113 //- Return modulus of elasticity
114 virtual tmp<volScalarField> E(scalar t) const
119 virtual tmp<volScalarField> E(const volScalarField& epsEq) const
124 //- Return Poisson's ratio
125 virtual tmp<volScalarField> nu(scalar t) const
130 //- Return creep compliance
131 virtual tmp<volScalarField> J(scalar t) const
133 notImplemented(type() + "::J(scalar t)");
138 //- Return modulus of plasticity
139 virtual tmp<volScalarField> Ep() const;
141 virtual tmp<volScalarField> Ep(const volScalarField& sigmaEq) const
146 //- Return yield stress
147 virtual tmp<volScalarField> sigmaY() const;
149 //- Return yield stress given cellID
150 virtual scalar sigmaY
151 (const scalar epsilonPEq, const label cellID) const;
153 //- Correct the rheological model
154 virtual void correct()
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 } // End namespace Foam
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 // ************************************************************************* //