Info<< "Reading thermophysical properties\n" << endl; autoPtr pThermo ( psiuReactionThermo::New(mesh) ); psiuReactionThermo& thermo = pThermo(); basicMultiComponentMixture& composition = thermo.composition(); volScalarField rho ( IOobject ( "rho", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), thermo.rho() ); volScalarField& p = thermo.p(); const volScalarField& psi = thermo.psi(); volScalarField& ha = thermo.he(); volScalarField& hau = thermo.heu(); 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 turbulence ( compressible::RASModel::New ( rho, U, phi, thermo ) ); Info<< "Creating field dpdt\n" << endl; volScalarField dpdt("dpdt", fvc::ddt(p)); Info<< "Creating field kinetic energy K\n" << endl; volScalarField K("K", 0.5*magSqr(U)); Info<< "Creating the unstrained laminar flame speed\n" << endl; autoPtr 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", 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 ); IOdictionary PDRProperties ( IOobject ( "PDRProperties", runTime.constant(), mesh, IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE ) ); //- Create the drag model autoPtr drag = PDRDragModel::New ( PDRProperties, turbulence, rho, U, phi ); //- Create the flame-wrinkling model autoPtr 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::fieldTable fields; if (composition.contains("ft")) { fields.add(composition.Y("ft")); } fields.add(b); fields.add(ha); fields.add(hau); flameWrinkling->addXi(fields);