kOmegaSST.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) 2007-2019 PCOpt/NTUA
9  Copyright (C) 2013-2019 FOSS GP
10  Copyright (C) 2019-2020 OpenCFD Ltd.
11 -------------------------------------------------------------------------------
12 License
13  This file is part of OpenFOAM.
14 
15  OpenFOAM is free software: you can redistribute it and/or modify it
16  under the terms of the GNU General Public License as published by
17  the Free Software Foundation, either version 3 of the License, or
18  (at your option) any later version.
19 
20  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23  for more details.
24 
25  You should have received a copy of the GNU General Public License
26  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
27 
28 \*---------------------------------------------------------------------------*/
29 
30 #include "kOmegaSST.H"
32 
33 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
34 
35 namespace Foam
36 {
37 namespace incompressible
38 {
39 namespace RASVariables
40 {
41 
42 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
43 
44 defineTypeNameAndDebug(kOmegaSST, 0);
45 addToRunTimeSelectionTable(RASModelVariables, kOmegaSST, dictionary);
46 
47 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
48 
50 (
51  const fvMesh& mesh,
52  const solverControl& SolverControl
53 )
54 :
55  RASModelVariables(mesh, SolverControl)
56 {
57  TMVar1BaseName_ = "k";
58  TMVar2BaseName_ = "omega";
59 
60  TMVar1Ptr_.ref(mesh_.lookupObjectRef<volScalarField>(TMVar1BaseName_));
61  TMVar2Ptr_.ref(mesh_.lookupObjectRef<volScalarField>(TMVar2BaseName_));
62  nutPtr_.ref(mesh_.lookupObjectRef<volScalarField>(nutBaseName_));
63 
64  allocateInitValues();
65  allocateMeanFields();
66 }
67 
68 
69 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
70 
72 (
74 )
75 {
76  // The presence of G is required to update the boundary value of omega
77  const volVectorField& U = turbulence.U();
78  const volScalarField S2(2*magSqr(symm(fvc::grad(U))));
79 
80  volScalarField G(turbulence.GName(), nutRef() * S2);
82 }
83 
84 
85 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
86 
87 } // End namespace RASVariables
88 } // End namespace incompressible
89 } // End namespace Foam
90 
91 // ************************************************************************* //
Foam::symm
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
Definition: dimensionedSymmTensor.C:84
Foam::fvc::grad
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
Definition: fvcGrad.C:54
turbulence
Info<< "Reading field U\n"<< endl;volVectorField U(IOobject("U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);volScalarField rho(IOobject("rho", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE), thermo.rho());volVectorField rhoU(IOobject("rhoU", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), rho *U);volScalarField rhoE(IOobject("rhoE", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), rho *(e+0.5 *magSqr(U)));surfaceScalarField pos(IOobject("pos", runTime.timeName(), mesh), mesh, dimensionedScalar("pos", dimless, 1.0));surfaceScalarField neg(IOobject("neg", runTime.timeName(), mesh), mesh, dimensionedScalar("neg", dimless, -1.0));surfaceScalarField phi("phi", fvc::flux(rhoU));Info<< "Creating turbulence model\n"<< endl;autoPtr< compressible::turbulenceModel > turbulence(compressible::turbulenceModel::New(rho, U, phi, thermo))
Definition: createFields.H:94
Foam::incompressible::RASModelVariables
Abstract base class for objective functions. No point in making this runTime selectable since its chi...
Definition: RASModelVariables.H:59
Foam::constant::universal::G
const dimensionedScalar G
Newtonian constant of gravitation.
Foam::solverControl
Base class for solver control classes.
Definition: solverControl.H:51
kOmegaSST.H
Foam::incompressible::RASModelVariables::correctBoundaryConditions
virtual void correctBoundaryConditions(const incompressible::turbulenceModel &turbulence)
correct bounday conditions of turbulent fields
Definition: RASModelVariables.C:445
Foam::magSqr
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
Foam::incompressible::RASVariables::addToRunTimeSelectionTable
addToRunTimeSelectionTable(RASModelVariables, kEpsilon, dictionary)
Foam::incompressible::RASVariables::kOmegaSST::kOmegaSST
kOmegaSST(const fvMesh &mesh, const solverControl &SolverControl)
Construct from components.
Definition: kOmegaSST.C:50
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:6
addToRunTimeSelectionTable.H
Macros for easy insertion into run-time selection tables.
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:85
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::incompressible::RASVariables::kOmegaSST::correctBoundaryConditions
virtual void correctBoundaryConditions(const incompressible::turbulenceModel &turbulence)
Correct boundary conditions of turbulent fields.
Definition: kOmegaSST.C:72
U
U
Definition: pEqn.H:72
Foam::incompressible::RASVariables::defineTypeNameAndDebug
defineTypeNameAndDebug(kEpsilon, 0)
Foam::IncompressibleTurbulenceModel
Templated abstract base class for single-phase incompressible turbulence models.
Definition: IncompressibleTurbulenceModel.H:55
Foam::GeometricField< scalar, fvPatchField, volMesh >