mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: lagrangian/intermediate - improved localInteraction restart behaviour
This commit is contained in:
@ -36,21 +36,11 @@ Foam::LocalInteraction<CloudType>::LocalInteraction
|
|||||||
:
|
:
|
||||||
PatchInteractionModel<CloudType>(dict, cloud, typeName),
|
PatchInteractionModel<CloudType>(dict, cloud, typeName),
|
||||||
patchData_(cloud.mesh(), this->coeffDict()),
|
patchData_(cloud.mesh(), this->coeffDict()),
|
||||||
nEscape0_(patchData_.size(), 0),
|
|
||||||
massEscape0_(patchData_.size(), 0.0),
|
|
||||||
nStick0_(patchData_.size(), 0),
|
|
||||||
massStick0_(patchData_.size(), 0.0),
|
|
||||||
nEscape_(patchData_.size(), 0),
|
nEscape_(patchData_.size(), 0),
|
||||||
massEscape_(patchData_.size(), 0.0),
|
massEscape_(patchData_.size(), 0.0),
|
||||||
nStick_(patchData_.size(), 0),
|
nStick_(patchData_.size(), 0),
|
||||||
massStick_(patchData_.size(), 0.0)
|
massStick_(patchData_.size(), 0.0)
|
||||||
{
|
{
|
||||||
// intialise starting counters
|
|
||||||
this->getModelProperty("nEscape", nEscape0_);
|
|
||||||
this->getModelProperty("massEscape", massEscape0_);
|
|
||||||
this->getModelProperty("nStick", nStick0_);
|
|
||||||
this->getModelProperty("massStick", massStick0_);
|
|
||||||
|
|
||||||
// check that interactions are valid/specified
|
// check that interactions are valid/specified
|
||||||
forAll(patchData_, patchI)
|
forAll(patchData_, patchI)
|
||||||
{
|
{
|
||||||
@ -81,10 +71,6 @@ Foam::LocalInteraction<CloudType>::LocalInteraction
|
|||||||
:
|
:
|
||||||
PatchInteractionModel<CloudType>(pim),
|
PatchInteractionModel<CloudType>(pim),
|
||||||
patchData_(pim.patchData_),
|
patchData_(pim.patchData_),
|
||||||
nEscape0_(pim.nEscape0_),
|
|
||||||
massEscape0_(pim.massEscape0_),
|
|
||||||
nStick0_(pim.nStick0_),
|
|
||||||
massStick0_(pim.massStick0_),
|
|
||||||
nEscape_(pim.nEscape_),
|
nEscape_(pim.nEscape_),
|
||||||
massEscape_(pim.massEscape_),
|
massEscape_(pim.massEscape_),
|
||||||
nStick_(pim.nStick_),
|
nStick_(pim.nStick_),
|
||||||
@ -204,21 +190,35 @@ bool Foam::LocalInteraction<CloudType>::correct
|
|||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::LocalInteraction<CloudType>::info(Ostream& os)
|
void Foam::LocalInteraction<CloudType>::info(Ostream& os)
|
||||||
{
|
{
|
||||||
labelList npe(nEscape_);
|
// retrieve any stored data
|
||||||
|
labelList npe0(patchData_.size(), 0);
|
||||||
|
this->getModelProperty("nEscape", npe0);
|
||||||
|
|
||||||
|
scalarList mpe0(patchData_.size(), 0.0);
|
||||||
|
this->getModelProperty("massEscape", mpe0);
|
||||||
|
|
||||||
|
labelList nps0(patchData_.size(), 0);
|
||||||
|
this->getModelProperty("nStick", nps0);
|
||||||
|
|
||||||
|
scalarList mps0(patchData_.size(), 0.0);
|
||||||
|
this->getModelProperty("massStick", mps0);
|
||||||
|
|
||||||
|
// accumulate current data
|
||||||
|
labelList npe(nEscape_, 0);
|
||||||
Pstream::listCombineGather(npe, plusEqOp<label>());
|
Pstream::listCombineGather(npe, plusEqOp<label>());
|
||||||
npe = npe + nEscape0_;
|
npe = npe + npe0;
|
||||||
|
|
||||||
scalarList mpe(massEscape_);
|
scalarList mpe(massEscape_);
|
||||||
Pstream::listCombineGather(mpe, plusEqOp<scalar>());
|
Pstream::listCombineGather(mpe, plusEqOp<scalar>());
|
||||||
mpe = mpe + massEscape0_;
|
mpe = mpe + mpe0;
|
||||||
|
|
||||||
labelList nps(nStick_);
|
labelList nps(nStick_);
|
||||||
Pstream::listCombineGather(nps, plusEqOp<label>());
|
Pstream::listCombineGather(nps, plusEqOp<label>());
|
||||||
nps = nps + nStick0_;
|
nps = nps + nps0;
|
||||||
|
|
||||||
scalarList mps(massStick_);
|
scalarList mps(massStick_);
|
||||||
Pstream::listCombineGather(mps, plusEqOp<scalar>());
|
Pstream::listCombineGather(mps, plusEqOp<scalar>());
|
||||||
mps = mps + massStick0_;
|
mps = mps + mps0;
|
||||||
|
|
||||||
|
|
||||||
forAll(patchData_, i)
|
forAll(patchData_, i)
|
||||||
@ -234,9 +234,16 @@ void Foam::LocalInteraction<CloudType>::info(Ostream& os)
|
|||||||
if (this->outputTime())
|
if (this->outputTime())
|
||||||
{
|
{
|
||||||
this->setModelProperty("nEscape", npe);
|
this->setModelProperty("nEscape", npe);
|
||||||
|
nEscape_ = 0;
|
||||||
|
|
||||||
this->setModelProperty("massEscape", mpe);
|
this->setModelProperty("massEscape", mpe);
|
||||||
|
massEscape_ = 0.0;
|
||||||
|
|
||||||
this->setModelProperty("nStick", nps);
|
this->setModelProperty("nStick", nps);
|
||||||
|
nStick_ = 0;
|
||||||
|
|
||||||
this->setModelProperty("massStick", mps);
|
this->setModelProperty("massStick", mps);
|
||||||
|
massStick_ = 0.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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) 2011 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -54,21 +54,6 @@ class LocalInteraction
|
|||||||
const patchInteractionDataList patchData_;
|
const patchInteractionDataList patchData_;
|
||||||
|
|
||||||
|
|
||||||
// Counters for initial particle fates
|
|
||||||
|
|
||||||
//- Number of parcels escaped
|
|
||||||
List<label> nEscape0_;
|
|
||||||
|
|
||||||
//- Mass of parcels escaped
|
|
||||||
List<scalar> massEscape0_;
|
|
||||||
|
|
||||||
//- Number of parcels stuck to patches
|
|
||||||
List<label> nStick0_;
|
|
||||||
|
|
||||||
//- Mass of parcels stuck to patches
|
|
||||||
List<scalar> massStick0_;
|
|
||||||
|
|
||||||
|
|
||||||
// Counters for particle fates
|
// Counters for particle fates
|
||||||
|
|
||||||
//- Number of parcels escaped
|
//- Number of parcels escaped
|
||||||
|
|||||||
Reference in New Issue
Block a user