YEqn.H
Go to the documentation of this file.
1 tmp<fv::convectionScheme<scalar>> mvConvection(nullptr);
2 
3 if (Y.size())
4 {
5  mvConvection = tmp<fv::convectionScheme<scalar>>
6  (
8  (
9  mesh,
10  fields,
11  phi,
12  mesh.divScheme("div(phi,Yi_h)")
13  )
14  );
15 }
16 
17 {
18  reaction.correct();
19  Qdot = reaction.Qdot();
21  (
22  IOobject("Yt", runTime.timeName(), mesh),
23  mesh,
24  dimensionedScalar("Yt", dimless, 0)
25  );
26 
27  forAll(Y, i)
28  {
29  if (i != inertIndex && composition.active(i))
30  {
31  volScalarField& Yi = Y[i];
32 
33  fvScalarMatrix YiEqn
34  (
35  fvm::ddt(rho, Yi)
36  + mvConvection->fvmDiv(phi, Yi)
37  - fvm::laplacian(turbulence.muEff(), Yi)
38  ==
39  reaction.R(Yi)
40  + fvOptions(rho, Yi)
41  );
42 
43  YiEqn.relax();
44 
45  fvOptions.constrain(YiEqn);
46 
47  YiEqn.solve(mesh.solver("Yi"));
48 
49  fvOptions.correct(Yi);
50 
51  Yi.max(0.0);
52  Yt += Yi;
53  }
54  }
55 
56  if (Y.size())
57  {
58  Y[inertIndex] = scalar(1) - Yt;
59  Y[inertIndex].max(0.0);
60  }
61 }
mvConvection
tmp< fv::convectionScheme< scalar > > mvConvection(fv::convectionScheme< scalar >::New(mesh, fields, phi, mesh.divScheme("div(phi,Yi_h)")))
runTime
engineTime & runTime
Definition: createEngineTime.H:13
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
rho
rho
Definition: readInitialConditions.H:88
composition
basicSpecieMixture & composition
Definition: createFieldRefs.H:6
Foam::fvScalarMatrix
fvMatrix< scalar > fvScalarMatrix
Definition: fvMatricesFwd.H:44
fvOptions
fv::options & fvOptions
Definition: setRegionFluidFields.H:23
Qdot
Qdot
Definition: YEqn.H:14
Foam::dimensionedScalar
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Definition: dimensionedScalarFwd.H:42
Y
Y[inertIndex]
Definition: YEqn.H:46
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam::volScalarField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:57
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:6
Foam::New
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Definition: DimensionedFieldReuseFunctions.H:105
reaction
CombustionModel< rhoReactionThermo > & reaction
Definition: setRegionFluidFields.H:3
Foam::fac::ddt
tmp< GeometricField< Type, faPatchField, areaMesh > > ddt(const dimensioned< Type > dt, const faMesh &mesh)
Definition: facDdt.C:47
inertIndex
label inertIndex
Definition: setRegionFluidFields.H:11
Foam::fac::laplacian
tmp< GeometricField< Type, faPatchField, areaMesh > > laplacian(const GeometricField< Type, faPatchField, areaMesh > &vf, const word &name)
Definition: facLaplacian.C:47
forAll
forAll(Y, i)
Definition: YEqn.H:17
Yt
volScalarField Yt(0.0 *Y[0])
fields
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields
Definition: createFields.H:97
Foam::dimless
const dimensionSet dimless
Dimensionless.
Definition: dimensionSets.C:189