mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: DESModelRegions function object - store result on mesh database
This commit is contained in:
@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user