Stokes.C
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2013-2017 OpenFOAM Foundation
9 Copyright (C) 2020-2021 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27\*---------------------------------------------------------------------------*/
28
29#include "Stokes.H"
30#include "volFields.H"
31#include "surfaceFields.H"
32#include "fvcGrad.H"
33#include "fvcDiv.H"
34#include "fvmLaplacian.H"
35
36// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37
38namespace Foam
39{
40namespace laminarModels
41{
42
43// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
44
45template<class BasicTurbulenceModel>
47(
48 const alphaField& alpha,
49 const rhoField& rho,
50 const volVectorField& U,
51 const surfaceScalarField& alphaRhoPhi,
53 const transportModel& transport,
54 const word& propertiesName
55)
56:
57 linearViscousStress<laminarModel<BasicTurbulenceModel>>
58 (
59 typeName,
60 alpha,
61 rho,
62 U,
63 alphaRhoPhi,
64 phi,
65 transport,
66 propertiesName
67 )
68{}
69
70
71// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
72
73template<class BasicTurbulenceModel>
74const dictionary&
76{
77 return dictionary::null;
78}
79
80
81template<class BasicTurbulenceModel>
83{
84 return true;
85}
86
87
88template<class BasicTurbulenceModel>
91{
93 (
95 (
96 IOobject::groupName("nut", this->alphaRhoPhi_.group()),
97 this->runTime_.timeName(),
98 this->mesh_,
101 false
102 ),
103 this->mesh_,
105 );
106}
107
108
109template<class BasicTurbulenceModel>
112(
113 const label patchi
114) const
115{
116 return tmp<scalarField>
117 (
118 new scalarField(this->mesh_.boundary()[patchi].size(), Zero)
119 );
120}
121
122
123template<class BasicTurbulenceModel>
126{
128 (
130 (
131 IOobject::groupName("nuEff", this->alphaRhoPhi_.group()), this->nu()
132 )
133 );
134}
135
136
137template<class BasicTurbulenceModel>
140(
141 const label patchi
142) const
143{
144 return this->nu(patchi);
145}
146
147
148template<class BasicTurbulenceModel>
150{
152}
153
154
155// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156
157} // End namespace laminarModels
158} // End namespace Foam
159
160// ************************************************************************* //
surfaceScalarField & phi
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Definition: IOobject.H:170
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Definition: Time.C:717
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
static const dictionary null
An empty dictionary, which is also the parent for all dictionaries.
Definition: dictionary.H:394
Templated abstract base class for laminar transport models.
Definition: laminarModel.H:55
virtual void correct()
Correct the laminar transport.
Definition: laminarModel.C:333
Turbulence model for Stokes flow.
Definition: Stokes.H:61
BasicTurbulenceModel::alphaField alphaField
Definition: Stokes.H:65
BasicTurbulenceModel::rhoField rhoField
Definition: Stokes.H:66
virtual void correct()
Correct the Stokes viscosity.
Definition: Stokes.C:149
virtual tmp< volScalarField > nuEff() const
Return the effective viscosity, i.e. the Stokes viscosity.
Definition: Stokes.C:125
BasicTurbulenceModel::transportModel transportModel
Definition: Stokes.H:67
virtual tmp< volScalarField > nut() const
Return the turbulence viscosity, i.e. 0 for Stokes flow.
Definition: Stokes.C:90
virtual const dictionary & coeffDict() const
Const access to the coefficients dictionary.
Definition: Stokes.C:75
virtual bool read()
Read turbulenceProperties dictionary.
Definition: Stokes.C:82
Linear viscous stress turbulence model base class.
A class for managing temporary objects.
Definition: tmp.H:65
A class for handling words, derived from Foam::string.
Definition: word.H:68
U
Definition: pEqn.H:72
Calculate the divergence of the given field.
Calculate the gradient of the given field.
Calculate the matrix for the laplacian of the field.
Namespace for OpenFOAM.
const dimensionSet dimViscosity
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
static constexpr const zero Zero
Global zero (0)
Definition: zero.H:131
volScalarField & nu
volScalarField & alpha
Foam::surfaceFields.