From ec66f480c73bfa08b5468d431fae2975d7261173 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Thu, 19 Sep 2013 15:15:34 +0100 Subject: [PATCH] ENH: DESModelRegions function object - store result on mesh database --- .../DESModelRegions/DESModelRegions.C | 44 +++++++++++++++---- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C index 9ba1319e222..3303b90b567 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 { -- GitLab