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/>.
24 \*---------------------------------------------------------------------------*/
26 #include "hhuCombustionThermo.H"
28 #include "zeroGradientFvPatchFields.H"
29 #include "fixedUnburntEnthalpyFvPatchScalarField.H"
30 #include "gradientUnburntEnthalpyFvPatchScalarField.H"
31 #include "mixedUnburntEnthalpyFvPatchScalarField.H"
33 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
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();
53 if (isA<fixedValueFvPatchScalarField>(tbf[patchi]))
55 hbt[patchi] = fixedUnburntEnthalpyFvPatchScalarField::typeName;
59 isA<zeroGradientFvPatchScalarField>(tbf[patchi])
60 || isA<fixedGradientFvPatchScalarField>(tbf[patchi])
63 hbt[patchi] = gradientUnburntEnthalpyFvPatchScalarField::typeName;
65 else if (isA<mixedFvPatchScalarField>(tbf[patchi]))
67 hbt[patchi] = mixedUnburntEnthalpyFvPatchScalarField::typeName;
74 void hhuCombustionThermo::huBoundaryCorrection(volScalarField& hu)
76 volScalarField::GeometricBoundaryField& hbf = hu.boundaryField();
82 isA<gradientUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
85 refCast<gradientUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
86 .gradient() = hbf[patchi].fvPatchField::snGrad();
90 isA<mixedUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
93 refCast<mixedUnburntEnthalpyFvPatchScalarField>(hbf[patchi])
94 .refGrad() = hbf[patchi].fvPatchField::snGrad();
100 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
102 hhuCombustionThermo::hhuCombustionThermo
105 const objectRegistry& obj
108 hCombustionThermo(mesh, obj),
115 mesh.time().timeName(),
128 mesh.time().timeName(),
134 dimensionSet(0, 2, -2, 0, 0),
140 // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
142 hhuCombustionThermo::~hhuCombustionThermo()
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 } // End namespace Foam
150 // ************************************************************************* //