void lcsMassSourcePluginFunction::doEvaluation() { typedef DimensionedField<scalar,volMesh> dimScalarField; autoPtr<dimScalarField> pSrho; // pick up the first fitting class castAndCall(pSrho,dimScalarField,basicReactingCloud,reactingCloud,Srho()); castAndCall(pSrho,dimScalarField,basicReactingMultiphaseCloud,reactingMultiphaseCloud,Srho()); noCloudFound(pSrho); const dimScalarField &Srho=pSrho(); autoPtr<volScalarField> pSource( new volScalarField( IOobject( cloudName()+"MassSource", mesh().time().timeName(), mesh(), IOobject::NO_READ, IOobject::NO_WRITE ), mesh(), Srho.dimensions(), "zeroGradient" ) ); pSource->internalField()=Srho.field(); result().setObjectResult(pSource); }
autoPtr<lcsSpeciesSourcePluginFunction::dimScalarField> lcsSpeciesSourcePluginFunction::internalEvaluate(const label speciesIndex) { // pick up the first fitting class #ifdef FOAM_REACTINGCLOUD_TEMPLATED tryCall(dimScalarField,constThermoReactingCloud,reactingCloud,Srho(speciesIndex)); tryCall(dimScalarField,thermoReactingCloud,reactingCloud,Srho(speciesIndex)); tryCall(dimScalarField,icoPoly8ThermoReactingCloud,reactingCloud,Srho(speciesIndex)); tryCall(dimScalarField,constThermoReactingMultiphaseCloud,reactingMultiphaseCloud,Srho(speciesIndex)); tryCall(dimScalarField,thermoReactingMultiphaseCloud,reactingMultiphaseCloud,Srho(speciesIndex)); tryCall(dimScalarField,icoPoly8ThermoReactingMultiphaseCloud,reactingMultiphaseCloud,Srho(speciesIndex)); #else tryCall(dimScalarField,basicReactingCloud,reactingCloud,Srho(speciesIndex)); tryCall(dimScalarField,basicReactingMultiphaseCloud,reactingMultiphaseCloud,Srho(speciesIndex)); #endif return autoPtr<dimScalarField>(); }
int main(int argc, char *argv[]) { #include "postProcess.H" #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" #include "createControl.H" #include "createTimeControls.H" #include "createFields.H" #include "createSurfaceFilmModel.H" volScalarField& p = mixture.p(); volScalarField& T = mixture.T(); const volScalarField& psi1 = mixture.thermo1().psi(); const volScalarField& psi2 = mixture.thermo2().psi(); regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm(); if (!LTS) { #include "readTimeControls.H" #include "CourantNo.H" #include "setInitialDeltaT.H" } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) { #include "readTimeControls.H" if (LTS) { #include "setRDeltaT.H" } else { #include "CourantNo.H" #include "alphaCourantNo.H" #include "setDeltaT.H" } runTime++; Info<< "Time = " << runTime.timeName() << nl << endl; surfaceFilm.evolve(); // --- Pressure-velocity PIMPLE corrector loop while (pimple.loop()) { #include "alphaControls.H" #include "compressibleAlphaEqnSubCycle.H" turbulence.correctPhasePhi(); volScalarField::Internal Srho(surfaceFilm.Srho()); contErr -= posPart(Srho); #include "UEqn.H" #include "TEqn.H" // --- Pressure corrector loop while (pimple.correct()) { #include "pEqn.H" } if (pimple.turbCorr()) { turbulence.correct(); } } runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s\n\n" << endl; } Info<< "End\n" << endl; return 0; }