Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "basicXiSubG.H"
00027 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00028
00029
00030
00031 namespace Foam
00032 {
00033 namespace XiGModels
00034 {
00035 defineTypeNameAndDebug(basicSubGrid, 0);
00036 addToRunTimeSelectionTable(XiGModel, basicSubGrid, dictionary);
00037 };
00038 };
00039
00040
00041
00042
00043 Foam::XiGModels::basicSubGrid::basicSubGrid
00044 (
00045 const dictionary& XiGProperties,
00046 const hhuCombustionThermo& thermo,
00047 const compressible::RASModel& turbulence,
00048 const volScalarField& Su
00049 )
00050 :
00051 XiGModel(XiGProperties, thermo, turbulence, Su),
00052 k1(readScalar(XiGModelCoeffs_.lookup("k1"))),
00053 XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su))
00054 {}
00055
00056
00057
00058
00059 Foam::XiGModels::basicSubGrid::~basicSubGrid()
00060 {}
00061
00062
00063
00064
00065 Foam::tmp<Foam::volScalarField> Foam::XiGModels::basicSubGrid::G() const
00066 {
00067 const objectRegistry& db = Su_.db();
00068 const volVectorField& U = db.lookupObject<volVectorField>("U");
00069 const volScalarField& N = db.lookupObject<volScalarField>("N");
00070 const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
00071
00072 tmp<volScalarField> tGtot = XiGModel_->G();
00073 volScalarField& Gtot = tGtot();
00074
00075 forAll(N, celli)
00076 {
00077 if (N[celli] > 1e-3)
00078 {
00079 Gtot[celli] += k1*mag(U[celli])/Lobs[celli];
00080 }
00081 }
00082
00083 return tGtot;
00084 }
00085
00086
00087 Foam::tmp<Foam::volScalarField> Foam::XiGModels::basicSubGrid::Db() const
00088 {
00089 const objectRegistry& db = Su_.db();
00090 const volScalarField& Xi = db.lookupObject<volScalarField>("Xi");
00091 const volScalarField& rho = db.lookupObject<volScalarField>("rho");
00092 const volScalarField& mgb = db.lookupObject<volScalarField>("mgb");
00093 const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
00094
00095 return XiGModel_->Db()
00096 + rho*Su_*(Xi - 1.0)*mgb*(0.5*Lobs)*Lobs/(mgb*Lobs + 1.0);
00097 }
00098
00099
00100 bool Foam::XiGModels::basicSubGrid::read(const dictionary& XiGProperties)
00101 {
00102 XiGModel::read(XiGProperties);
00103
00104 XiGModelCoeffs_.lookup("k1") >> k1;
00105
00106 return true;
00107 }
00108
00109
00110