Forward compatibility: flex
[foam-extend-3.2.git] / src / thermophysicalModels / reactionThermo / combustionThermo / hhuCombustionThermo / hhuCombustionThermo.C
blobfa68d1009e2528a8759ead062b6461e4e4e27992
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 \*---------------------------------------------------------------------------*/
26 #include "hhuCombustionThermo.H"
27 #include "fvMesh.H"
28 #include "zeroGradientFvPatchFields.H"
29 #include "fixedUnburntEnthalpyFvPatchScalarField.H"
30 #include "gradientUnburntEnthalpyFvPatchScalarField.H"
31 #include "mixedUnburntEnthalpyFvPatchScalarField.H"
33 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
35 namespace Foam
38 /* * * * * * * * * * * * * * * Private Static Data * * * * * * * * * * * * * */
40 defineTypeNameAndDebug(hhuCombustionThermo, 0);
41 defineRunTimeSelectionTable(hhuCombustionThermo, fvMesh);
43 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
45 wordList hhuCombustionThermo::huBoundaryTypes()
47     const volScalarField::GeometricBoundaryField& tbf = Tu_.boundaryField();
49     wordList hbt = tbf.types();
51     forAll(tbf, patchi)
52     {
53         if (isA<fixedValueFvPatchScalarField>(tbf[patchi]))
54         {
55             hbt[patchi] = fixedUnburntEnthalpyFvPatchScalarField::typeName;
56         }
57         else if
58         (
59             isA<zeroGradientFvPatchScalarField>(tbf[patchi])
60          || isA<fixedGradientFvPatchScalarField>(tbf[patchi])
61         )
62         {
63             hbt[patchi] = gradientUnburntEnthalpyFvPatchScalarField::typeName;
64         }
65         else if (isA<mixedFvPatchScalarField>(tbf[patchi]))
66         {
67             hbt[patchi] = mixedUnburntEnthalpyFvPatchScalarField::typeName;
68         }
69     }
71     return hbt;
74 void hhuCombustionThermo::huBoundaryCorrection(volScalarField& hu)
76     volScalarField::GeometricBoundaryField& hbf = hu.boundaryField();
78     forAll(hbf, patchi)
79     {
80         if
81         (
82             isA<gradientUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
83         )
84         {
85             refCast<gradientUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
86                 .gradient() = hbf[patchi].fvPatchField::snGrad();
87         }
88         else if
89         (
90             isA<mixedUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
91         )
92         {
93             refCast<mixedUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
94                 .refGrad() = hbf[patchi].fvPatchField::snGrad();
95         }
96     }
100 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
102 hhuCombustionThermo::hhuCombustionThermo
104     const fvMesh& mesh,
105     const objectRegistry& obj
108     hCombustionThermo(mesh, obj),
110     Tu_
111     (
112         IOobject
113         (
114             "Tu",
115             mesh.time().timeName(),
116             obj,
117             IOobject::MUST_READ,
118             IOobject::AUTO_WRITE
119         ),
120         mesh
121     ),
123     hu_
124     (
125         IOobject
126         (
127             "hu",
128             mesh.time().timeName(),
129             obj,
130             IOobject::NO_READ,
131             IOobject::NO_WRITE
132         ),
133         mesh,
134         dimensionSet(0, 2, -2, 0, 0),
135         huBoundaryTypes()
136     )
140 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
142 hhuCombustionThermo::~hhuCombustionThermo()
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 } // End namespace Foam
150 // ************************************************************************* //