/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2506 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application simpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 50000; deltaT 1; writeControl timeStep; writeInterval 50000; purgeWrite 1; writeFormat ascii; writePrecision 16; writeCompression off; timeFormat general; timePrecision 8; runTimeModifiable false; functions { fieldMinMax1 { type fieldMinMax; libs (fieldFunctionObjects); writeToFile no; log yes; location yes; mode magnitude; fields ( p U ); } wallShearStress1 { type wallShearStress; libs (fieldFunctionObjects); writeFields yes; patches ( bottom ); executeControl writeTime; writeControl writeTime; } yPlus1 { type yPlus; libs (fieldFunctionObjects); writeFields yes; executeControl writeTime; writeControl writeTime; } writeCellCentres1 { type writeCellCentres; libs (fieldFunctionObjects); executeControl onEnd; writeControl onEnd; } turbulenceFields1 { type turbulenceFields; libs (fieldFunctionObjects); fields ( k epsilon R ); executeControl writeTime; writeControl writeTime; } productionRate1 { type coded; libs (utilityFunctionObjects); name productionRate; writeControl writeTime; codeExecute #{ auto* prodPtr = mesh().getObjectPtr("productionRate"); if (!prodPtr) { Info<< "Create production rate field" << nl; prodPtr = new volScalarField ( IOobject ( "productionRate", mesh().time().timeName(), mesh(), IOobject::NO_READ, IOobject::AUTO_WRITE, IOobject::REGISTER ), mesh(), sqr(dimLength)/pow3(dimTime) ); regIOobject::store(prodPtr); } auto& prod = *prodPtr; Info<< "Computing production rate field\n" << endl; const auto& nut = mesh().lookupObject("nut"); const auto& U = mesh().lookupObject("U"); prod = 2*nut*(symm(fvc::grad(U)) && symm(fvc::grad(U))); #}; } } // ************************************************************************* //