2010-05-12 13:27:55 +00:00
|
|
|
Info<< "Reading thermophysical properties\n" << endl;
|
|
|
|
|
2010-08-26 14:22:03 +00:00
|
|
|
autoPtr<hhuCombustionThermo> pThermo
|
2010-05-12 13:27:55 +00:00
|
|
|
(
|
|
|
|
hhuCombustionThermo::New(mesh)
|
|
|
|
);
|
2010-08-26 14:22:03 +00:00
|
|
|
hhuCombustionThermo& thermo = pThermo();
|
|
|
|
basicMultiComponentMixture& composition = thermo.composition();
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
volScalarField rho
|
|
|
|
(
|
|
|
|
IOobject
|
|
|
|
(
|
|
|
|
"rho",
|
|
|
|
runTime.timeName(),
|
|
|
|
mesh,
|
|
|
|
IOobject::NO_READ,
|
|
|
|
IOobject::AUTO_WRITE
|
|
|
|
),
|
2010-08-26 14:22:03 +00:00
|
|
|
thermo.rho()
|
2010-05-12 13:27:55 +00:00
|
|
|
);
|
|
|
|
|
2010-08-26 14:22:03 +00:00
|
|
|
volScalarField& p = thermo.p();
|
|
|
|
const volScalarField& psi = thermo.psi();
|
|
|
|
volScalarField& h = thermo.h();
|
|
|
|
volScalarField& hu = thermo.hu();
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
volScalarField& b = composition.Y("b");
|
|
|
|
Info<< "min(b) = " << min(b).value() << endl;
|
|
|
|
|
|
|
|
//const volScalarField& T = thermo->T();
|
|
|
|
|
|
|
|
|
|
|
|
Info<< "\nReading field U\n" << endl;
|
|
|
|
volVectorField U
|
|
|
|
(
|
|
|
|
IOobject
|
|
|
|
(
|
|
|
|
"U",
|
|
|
|
runTime.timeName(),
|
|
|
|
mesh,
|
|
|
|
IOobject::MUST_READ,
|
|
|
|
IOobject::AUTO_WRITE
|
|
|
|
),
|
|
|
|
mesh
|
|
|
|
);
|
|
|
|
|
|
|
|
# include "compressibleCreatePhi.H"
|
|
|
|
|
|
|
|
Info<< "Creating turbulence model\n" << endl;
|
|
|
|
autoPtr<compressible::RASModel> turbulence
|
|
|
|
(
|
|
|
|
compressible::RASModel::New
|
|
|
|
(
|
|
|
|
rho,
|
|
|
|
U,
|
|
|
|
phi,
|
2010-08-26 14:22:03 +00:00
|
|
|
thermo
|
2010-05-12 13:27:55 +00:00
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
Info<< "Creating field DpDt\n" << endl;
|
|
|
|
volScalarField DpDt
|
|
|
|
(
|
|
|
|
"DpDt",
|
|
|
|
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p)
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
Info<< "Creating the unstrained laminar flame speed\n" << endl;
|
|
|
|
autoPtr<laminarFlameSpeed> unstrainedLaminarFlameSpeed
|
|
|
|
(
|
|
|
|
laminarFlameSpeed::New(thermo)
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
runTime.findInstance(polyMesh::meshSubDir, "betav"),
|
|
|
|
polyMesh::meshSubDir,
|
|
|
|
mesh,
|
|
|
|
IOobject::MUST_READ,
|
|
|
|
IOobject::NO_WRITE
|
|
|
|
),
|
|
|
|
mesh
|
|
|
|
);
|
|
|
|
|
|
|
|
IOdictionary PDRProperties
|
|
|
|
(
|
|
|
|
IOobject
|
|
|
|
(
|
|
|
|
"PDRProperties",
|
|
|
|
runTime.constant(),
|
|
|
|
mesh,
|
Vanilla backport
- in FOAM library
updated containers
backported PackedBoolList, hashedWordList, nullObject, wordRe,
backported functions to
backported int32 support
backported tableReaders
backported Function1, TimeFunction1
backported dynamicCode (for codedBCs, ...) -- needs to be mapped out
advanced error macros (FatalIOErrorInFunction, ...) -- needs to be mapped out
backported IOobject::MUST_READ_IF_MODIFIED and added IOobject::READ_IF_PRESENT_IF_MODIFIED (only in FO)
- in postProcessing
backported IO FOs (partialWrite, removeRegisteredObject, writeDictionary, writeRegisteredObject)
backported field FOs (fieldCoordinateSystemTransform, fieldValues, nearWallFields, processorField, readFields, regionSizeDistribution, streamLine, wallBoundedStreamLine)
backported fvTools FOs (calcFvcDiv, calcFvcGrad, calcMag)
backported jobControl FOs (abortCalculation)
backported utilities FOs (ourantNo, Lambda2, Peclet, Q, codedFunctionObject, pressureTools, residuals, scalarTransport, setTimeStep, timeActivatedFileUpdate, turbulenceFields, vorticity, wallShearStress)
2017-04-09 13:11:54 +00:00
|
|
|
IOobject::MUST_READ_IF_MODIFIED,
|
2010-05-12 13:27:55 +00:00
|
|
|
IOobject::NO_WRITE
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
//- Create the drag model
|
|
|
|
autoPtr<PDRDragModel> drag = PDRDragModel::New
|
|
|
|
(
|
|
|
|
PDRProperties,
|
|
|
|
turbulence,
|
|
|
|
rho,
|
|
|
|
U,
|
|
|
|
phi
|
|
|
|
);
|
|
|
|
|
|
|
|
//- Create the flame-wrinkling model
|
|
|
|
autoPtr<XiModel> flameWrinkling = XiModel::New
|
|
|
|
(
|
|
|
|
PDRProperties,
|
|
|
|
thermo,
|
|
|
|
turbulence,
|
|
|
|
Su,
|
|
|
|
rho,
|
|
|
|
b,
|
|
|
|
phi
|
|
|
|
);
|
|
|
|
|
|
|
|
Info<< "Calculating turbulent flame speed field St\n" << endl;
|
|
|
|
volScalarField St
|
|
|
|
(
|
|
|
|
IOobject
|
|
|
|
(
|
|
|
|
"St",
|
|
|
|
runTime.timeName(),
|
|
|
|
mesh,
|
|
|
|
IOobject::NO_READ,
|
|
|
|
IOobject::AUTO_WRITE
|
|
|
|
),
|
|
|
|
flameWrinkling->Xi()*Su
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
|
|
|
|
|
|
|
|
if (composition.contains("ft"))
|
|
|
|
{
|
|
|
|
fields.add(composition.Y("ft"));
|
|
|
|
}
|
|
|
|
|
|
|
|
fields.add(b);
|
|
|
|
fields.add(h);
|
|
|
|
fields.add(hu);
|
|
|
|
flameWrinkling->addXi(fields);
|
2016-05-28 12:58:16 +00:00
|
|
|
|
|
|
|
mesh.schemesDict().setFluxRequired(p.name());
|