FreeFOAM The Cross-Platform CFD Toolkit
basicXiSubG.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 | Copyright (C) 1991-2010 OpenCFD Ltd.
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 \*---------------------------------------------------------------------------*/
25 
26 #include "basicXiSubG.H"
28 
29 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
30 
31 namespace Foam
32 {
33 namespace XiGModels
34 {
35  defineTypeNameAndDebug(basicSubGrid, 0);
36  addToRunTimeSelectionTable(XiGModel, basicSubGrid, dictionary);
37 };
38 };
39 
40 
41 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
42 
44 (
45  const dictionary& XiGProperties,
46  const hhuCombustionThermo& thermo,
48  const volScalarField& Su
49 )
50 :
51  XiGModel(XiGProperties, thermo, turbulence, Su),
52  k1(readScalar(XiGModelCoeffs_.lookup("k1"))),
53  XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su))
54 {}
55 
56 
57 // * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
58 
60 {}
61 
62 
63 // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
64 
66 {
67  const objectRegistry& db = Su_.db();
68  const volVectorField& U = db.lookupObject<volVectorField>("U");
69  const volScalarField& N = db.lookupObject<volScalarField>("N");
70  const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
71 
72  tmp<volScalarField> tGtot = XiGModel_->G();
73  volScalarField& Gtot = tGtot();
74 
75  forAll(N, celli)
76  {
77  if (N[celli] > 1e-3)
78  {
79  Gtot[celli] += k1*mag(U[celli])/Lobs[celli];
80  }
81  }
82 
83  return tGtot;
84 }
85 
86 
88 {
89  const objectRegistry& db = Su_.db();
90  const volScalarField& Xi = db.lookupObject<volScalarField>("Xi");
91  const volScalarField& rho = db.lookupObject<volScalarField>("rho");
92  const volScalarField& mgb = db.lookupObject<volScalarField>("mgb");
93  const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
94 
95  return XiGModel_->Db()
96  + rho*Su_*(Xi - 1.0)*mgb*(0.5*Lobs)*Lobs/(mgb*Lobs + 1.0);
97 }
98 
99 
100 bool Foam::XiGModels::basicSubGrid::read(const dictionary& XiGProperties)
101 {
102  XiGModel::read(XiGProperties);
103 
104  XiGModelCoeffs_.lookup("k1") >> k1;
105 
106  return true;
107 }
108 
109 
110 // ************************ vim: set sw=4 sts=4 et: ************************ //