Giesekus.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2019 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::laminarModels::Giesekus
26 
27 Description
28  Giesekus model for viscoelasticity.
29 
30  Reference:
31  \verbatim
32  Giesekus, H., 1982.
33  A simple constitutive equation for polymer fluids based on the
34  concept of deformation-dependent tensional mobility.
35  J. Non-Newton. Fluid. 11, 69–109.
36  \endverbatim
37 
38 See also
39  Foam::laminarModels::Maxwell
40 
41 SourceFiles
42  Giesekus.C
43 
44 \*---------------------------------------------------------------------------*/
45 
46 #ifndef Giesekus_H
47 #define Giesekus_H
48 
49 #include "Maxwell.H"
50 
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
52 
53 namespace Foam
54 {
55 namespace laminarModels
56 {
57 
58 /*---------------------------------------------------------------------------*\
59  Class Giesekus Declaration
60 \*---------------------------------------------------------------------------*/
61 
62 template<class BasicTurbulenceModel>
63 class Giesekus
64 :
65  public Maxwell<BasicTurbulenceModel>
66 {
67 protected:
68 
69  // Protected data
70 
71  // Model coefficients
72 
74 
75 
76  // Protected Member Functions
77 
78  virtual tmp<fvSymmTensorMatrix> sigmaSource() const;
79 
80 
81 public:
82 
83  typedef typename BasicTurbulenceModel::alphaField alphaField;
84  typedef typename BasicTurbulenceModel::rhoField rhoField;
85  typedef typename BasicTurbulenceModel::transportModel transportModel;
86 
87 
88  //- Runtime type information
89  TypeName("Giesekus");
90 
91 
92  // Constructors
93 
94  //- Construct from components
95  Giesekus
96  (
97  const alphaField& alpha,
98  const rhoField& rho,
99  const volVectorField& U,
100  const surfaceScalarField& alphaRhoPhi,
101  const surfaceScalarField& phi,
102  const transportModel& transport,
103  const word& propertiesName = turbulenceModel::propertiesName,
104  const word& type = typeName
105  );
106 
107  //- Disallow default bitwise copy construction
108  Giesekus(const Giesekus&) = delete;
109 
110 
111 
112  //- Destructor
113  virtual ~Giesekus()
114  {}
115 
116 
117  // Member Functions
118 
119  //- Re-read model coefficients if they have changed
120  virtual bool read();
121 
122 
123  // Member Operators
124 
125  //- Disallow default bitwise assignment
126  void operator=(const Giesekus&) = delete;
127 };
128 
129 
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 
132 } // End namespace laminarModels
133 } // End namespace Foam
134 
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 
137 #ifdef NoRepository
138  #include "Giesekus.C"
139 #endif
140 
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 
143 #endif
144 
145 // ************************************************************************* //
surfaceScalarField & phi
BasicTurbulenceModel::alphaField alphaField
Definition: Giesekus.H:82
Maxwell model for viscoelasticity using the upper-convected time derivative of the stress tensor...
Definition: Maxwell.H:67
virtual bool read()
Re-read model coefficients if they have changed.
Definition: Giesekus.C:75
BasicTurbulenceModel::rhoField rhoField
Definition: Giesekus.H:83
BasicTurbulenceModel::transportModel transportModel
Definition: Giesekus.H:84
Giesekus(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName=turbulenceModel::propertiesName, const word &type=typeName)
Construct from components.
Definition: Giesekus.C:40
static const word propertiesName
Default name of the turbulence properties dictionary.
virtual ~Giesekus()
Destructor.
Definition: Giesekus.H:112
A class for handling words, derived from string.
Definition: word.H:59
Giesekus model for viscoelasticity.
Definition: Giesekus.H:62
virtual tmp< fvSymmTensorMatrix > sigmaSource() const
Definition: Giesekus.C:92
dimensionedScalar alphaG_
Definition: Giesekus.H:72
void operator=(const Giesekus &)=delete
Disallow default bitwise assignment.
U
Definition: pEqn.H:72
TypeName("Giesekus")
Runtime type information.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition: POSIX.C:488
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
A class for managing temporary objects.
Definition: PtrList.H:53
Namespace for OpenFOAM.