YEqn.H
Go to the documentation of this file.
1 tmp<fv::convectionScheme<scalar>> mvConvection
2 (
4  (
5  mesh,
6  fields,
7  phi,
8  mesh.divScheme("div(phi,Yi_h)")
9  )
10 );
11 
12 
13 {
14  combustion->correct();
15  volScalarField Yt(0.0*Y[0]);
16 
17  forAll(Y, i)
18  {
19  if (i != inertIndex && composition.active(i))
20  {
21  volScalarField& Yi = Y[i];
22 
23  fvScalarMatrix YiEqn
24  (
25  fvm::ddt(rho, Yi)
26  + mvConvection->fvmDiv(phi, Yi)
27  + thermophysicalTransport->divj(Yi)
28  ==
29  coalParcels.SYi(i, Yi)
30  + combustion->R(Yi)
31  + fvOptions(rho, Yi)
32  );
33 
34  YiEqn.relax();
35 
36  fvOptions.constrain(YiEqn);
37 
38  YiEqn.solve("Yi");
39 
40  fvOptions.correct(Yi);
41 
42  Yi.max(0.0);
43  Yt += Yi;
44  }
45  }
46 
47  Y[inertIndex] = scalar(1) - Yt;
48  Y[inertIndex].max(0.0);
49 }
fvMatrix< scalar > fvScalarMatrix
Definition: fvMatricesFwd.H:42
fv::options & fvOptions
basicSpecieMixture & composition
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
Info<< "Creating combustion model\"<< endl;autoPtr< CombustionModel< psiReactionThermo > > combustion(CombustionModel< psiReactionThermo >::New(thermo, turbulence()))
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])