mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Enabled smooth restart for particle collector function object
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -404,20 +404,23 @@ void Foam::ParticleCollector<CloudType>::write()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Field<scalar> faceMassTotal(mass_.size());
|
Field<scalar> faceMassTotal(mass_.size(), 0.0);
|
||||||
Field<scalar> faceMassFlowRate(massFlowRate_.size());
|
this->getModelProperty("massTotal", faceMassTotal);
|
||||||
|
|
||||||
|
Field<scalar> faceMassFlowRate(massFlowRate_.size(), 0.0);
|
||||||
|
this->getModelProperty("massFlowRate", faceMassFlowRate);
|
||||||
|
|
||||||
forAll(faces_, faceI)
|
forAll(faces_, faceI)
|
||||||
{
|
{
|
||||||
scalarList allProcMass(Pstream::nProcs());
|
scalarList allProcMass(Pstream::nProcs());
|
||||||
allProcMass[procI] = massTotal_[faceI];
|
allProcMass[procI] = massTotal_[faceI];
|
||||||
Pstream::gatherList(allProcMass);
|
Pstream::gatherList(allProcMass);
|
||||||
faceMassTotal[faceI] = sum(allProcMass);
|
faceMassTotal[faceI] += sum(allProcMass);
|
||||||
|
|
||||||
scalarList allProcMassFlowRate(Pstream::nProcs());
|
scalarList allProcMassFlowRate(Pstream::nProcs());
|
||||||
allProcMassFlowRate[procI] = massFlowRate_[faceI];
|
allProcMassFlowRate[procI] = massFlowRate_[faceI];
|
||||||
Pstream::gatherList(allProcMassFlowRate);
|
Pstream::gatherList(allProcMassFlowRate);
|
||||||
faceMassFlowRate[faceI] = sum(allProcMassFlowRate);
|
faceMassFlowRate[faceI] += sum(allProcMassFlowRate);
|
||||||
|
|
||||||
Info<< " face " << faceI
|
Info<< " face " << faceI
|
||||||
<< ": total mass = " << faceMassTotal[faceI]
|
<< ": total mass = " << faceMassTotal[faceI]
|
||||||
@ -470,20 +473,25 @@ void Foam::ParticleCollector<CloudType>::write()
|
|||||||
|
|
||||||
if (resetOnWrite_)
|
if (resetOnWrite_)
|
||||||
{
|
{
|
||||||
forAll(faces_, faceI)
|
Field<scalar> dummy(faceMassTotal.size(), 0.0);
|
||||||
{
|
this->setModelProperty("massTotal", dummy);
|
||||||
massFlowRate_[faceI] = 0.0;
|
this->setModelProperty("massFlowRate", dummy);
|
||||||
}
|
|
||||||
timeOld_ = timeNew;
|
timeOld_ = timeNew;
|
||||||
totalTime_ = 0.0;
|
totalTime_ = 0.0;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->setModelProperty("massTotal", faceMassTotal);
|
||||||
|
this->setModelProperty("massFlowRate", faceMassFlowRate);
|
||||||
|
}
|
||||||
|
|
||||||
forAll(faces_, faceI)
|
forAll(faces_, faceI)
|
||||||
{
|
{
|
||||||
mass_[faceI] = 0.0;
|
mass_[faceI] = 0.0;
|
||||||
|
massTotal_[faceI] = 0.0;
|
||||||
|
massFlowRate_[faceI] = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// writeProperties();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -552,8 +560,8 @@ Foam::ParticleCollector<CloudType>::ParticleCollector
|
|||||||
(
|
(
|
||||||
"Foam::ParticleCollector<CloudType>::ParticleCollector"
|
"Foam::ParticleCollector<CloudType>::ParticleCollector"
|
||||||
"("
|
"("
|
||||||
"const dictionary& dict,"
|
"const dictionary&,"
|
||||||
"CloudType& owner"
|
"CloudType&"
|
||||||
")"
|
")"
|
||||||
)
|
)
|
||||||
<< "Unknown mode " << mode << ". Available options are "
|
<< "Unknown mode " << mode << ". Available options are "
|
||||||
@ -565,8 +573,6 @@ Foam::ParticleCollector<CloudType>::ParticleCollector
|
|||||||
massFlowRate_.setSize(faces_.size(), 0.0);
|
massFlowRate_.setSize(faces_.size(), 0.0);
|
||||||
|
|
||||||
makeLogFile(faces_, points_, area_);
|
makeLogFile(faces_, points_, area_);
|
||||||
|
|
||||||
// readProperties(); AND initialise mass... fields
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user