diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C index 9ba1319e222cdd567de073ad3a8c84e4eacbb9d1..3303b90b567470560e9c2f2eddcd2f414c8d1ff6 100644 --- a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C +++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C @@ -81,6 +81,30 @@ Foam::DESModelRegions::DESModelRegions << endl; } + if (active_) + { + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + volScalarField* DESModelRegionsPtr + ( + new volScalarField + ( + IOobject + ( + type(), + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar("0", dimless, 0.0) + ) + ); + + mesh.objectRegistry::store(DESModelRegionsPtr); + } + read(dict); } @@ -139,7 +163,12 @@ void Foam::DESModelRegions::write() Info<< type() << " " << name_ << " output:" << nl; } - tmp<volScalarField> tresult; + volScalarField& DESModelRegions = + const_cast<volScalarField&> + ( + mesh.lookupObject<volScalarField>(type()) + ); + label DESpresent = false; if (mesh.foundObject<icoModel>("turbulenceModel")) @@ -151,7 +180,7 @@ void Foam::DESModelRegions::write() { const icoDESModel& des = dynamic_cast<const icoDESModel&>(model); - tresult = des.LESRegion(); + DESModelRegions == des.LESRegion(); DESpresent = true; } } @@ -164,17 +193,16 @@ void Foam::DESModelRegions::write() { const cmpDESModel& des = dynamic_cast<const cmpDESModel&>(model); - tresult = des.LESRegion(); + DESModelRegions == des.LESRegion(); DESpresent = true; } } if (DESpresent) { - const volScalarField& result = tresult(); - scalar prc = - gSum(result.internalField()*mesh.V())/gSum(mesh.V())*100.0; + gSum(DESModelRegions.internalField()*mesh.V()) + /gSum(mesh.V())*100.0; if (Pstream::master()) { @@ -186,11 +214,11 @@ void Foam::DESModelRegions::write() { Info<< " LES = " << prc << " % (volume)" << nl << " RAS = " << 100.0 - prc << " % (volume)" << nl - << " writing field " << result.name() << nl + << " writing field " << DESModelRegions.name() << nl << endl; } - result.write(); + DESModelRegions.write(); } else {