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 
20  tmp<volScalarField> Yt(nullptr);
21 
22  if (Y.size())
23  {
24  Yt = tmp<volScalarField>
25  (
26  new volScalarField
27  (
28  IOobject("Yt", runTime.timeName(), mesh),
29  mesh,
31  )
32  );
33  }
34 
35  forAll(Y, i)
36  {
37  if (i != inertIndex && composition.active(i))
38  {
39  volScalarField& Yi = Y[i];
40 
41  fvScalarMatrix YiEqn
42  (
43  fvm::ddt(rho, Yi)
44  + mvConvection->fvmDiv(phi, Yi)
45  + thermophysicalTransport.divj(Yi)
46  ==
47  reaction.R(Yi)
48  + fvOptions(rho, Yi)
49  );
50 
51  YiEqn.relax();
52 
53  fvOptions.constrain(YiEqn);
54 
55  YiEqn.solve("Yi");
56 
57  fvOptions.correct(Yi);
58 
59  Yi.max(0.0);
60  Yt.ref() += Yi;
61  }
62  }
63 
64  if (Y.size())
65  {
66  Y[inertIndex] = scalar(1) - Yt;
67  Y[inertIndex].max(0.0);
68  }
69 }
fvMatrix< scalar > fvScalarMatrix
Definition: fvMatricesFwd.H:42
fv::options & fvOptions
basicSpecieMixture & composition
engineTime & runTime
phi
Definition: pEqn.H:104
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields
Definition: createFields.H:103
label inertIndex
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
Definition: fvcDdt.C:45
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:57
dynamicFvMesh & mesh
rhoReactionThermophysicalTransportModel & thermophysicalTransport
autoPtr< BasicCompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const typename BasicCompressibleMomentumTransportModel::transportModel &transport)
Y[inertIndex]
Definition: YEqn.H:45
CombustionModel< rhoReactionThermo > & reaction
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
Definition: dimensionSets.H:47
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
forAll(Y, i)
Definition: YEqn.H:16
tmp< fv::convectionScheme< scalar > > mvConvection(fv::convectionScheme< scalar >::New(mesh, fields, phi, mesh.divScheme("div(phi,Yi_h)")))
volScalarField Yt(0.0 *Y[0])