74int main(
int argc,
char *argv[])
78 "Solver for compressible premixed/partially-premixed combustion with"
79 " turbulence modelling."
89 #include "readGravitationalAcceleration.H"
91 #include "initContinuityErrs.H"
93 #include "compressibleCourantNo.H"
94 #include "setInitialDeltaT.H"
101 Info<<
"\nStarting time loop\n" <<
endl;
103 bool hasChanged =
false;
108 #include "compressibleCourantNo.H"
113 tmp<volScalarField> tmagGradP =
mag(fvc::grad(
p));
117 tmagGradP()/
max(tmagGradP())
119 normalisedGradP.writeOpt(IOobject::AUTO_WRITE);
128 fvc::makeAbsolute(
phi,
rho,
U);
131 bitSet& protectedCell =
132 refCast<dynamicRefineFvMesh>(
mesh).protectedCell();
134 if (protectedCell.empty())
136 protectedCell.setSize(
mesh.nCells());
137 protectedCell =
false;
142 if (
betav[celli] < 0.99)
144 protectedCell.set(celli);
152 bool meshChanged =
mesh.update();
160 if (
runTime.write() && hasChanged)
171 fvc::makeRelative(
phi,
rho,
U);
207 runTime.printExecutionTime(Info);
Solve the continuity for density.
Reset the timestep to maintain a constant maximum courant Number. Reduction of time-step is immediate...
Bound the given scalar field if it has gone unbounded.
Read the control parameters used by setDeltaT.
compressible::turbulenceModel & turbulence
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
GeometricField< vector, fvPatchField, volMesh > volVectorField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
messageStream Info
Information stream (stdout output on master, null elsewhere).
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
Read the control parameters used by setDeltaT.
const volScalarField & betav
autoPtr< XiModel > flameWrinkling
Create the flame-wrinkling model.
Info<< "Reading strained laminar flame speed field Su\n"<< endl;volScalarField Su(IOobject("Su", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading field betav\n"<< endl;volScalarField betav(IOobject("betav", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field Lobs\n"<< endl;volScalarField Lobs(IOobject("Lobs", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field CT\n"<< endl;volSymmTensorField CT(IOobject("CT", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field Nv\n"<< endl;volScalarField Nv(IOobject("Nv", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field nsv\n"<< endl;volSymmTensorField nsv(IOobject("nsv", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);IOdictionary PDRProperties(IOobject("PDRProperties", runTime.constant(), mesh, IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE));autoPtr< PDRDragModel > drag
#define forAll(list, i)
Loop across all elements in list.