ENH: cyclicAMI-topoChange: allow restart. Fixes #3265
This commit is contained in:
parent
7f1120f6ed
commit
f5310ca48c
@ -27,6 +27,7 @@ It is likely incomplete...
|
||||
- Bernhard Gschaider
|
||||
- Andrew Heather
|
||||
- David Hill
|
||||
- Cristóbal Ibáñez
|
||||
- Yoshiaki Inoue
|
||||
- Mattijs Janssens
|
||||
- Andrew Jackson
|
||||
|
@ -31,6 +31,7 @@ License
|
||||
#include "volFields.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "cyclicAMIPolyPatch.H"
|
||||
#include "cyclicACMIPolyPatch.H"
|
||||
#include "polyTopoChange.H"
|
||||
#include "MeshObject.H"
|
||||
#include "lduMesh.H"
|
||||
@ -83,6 +84,35 @@ bool Foam::dynamicMotionSolverFvMeshAMI::init(const bool doInit)
|
||||
}
|
||||
|
||||
motionPtr_ = motionSolver::New(*this);
|
||||
|
||||
// allow restarts during initialization to match patch field values if
|
||||
// required
|
||||
const auto& pbm = boundaryMesh();
|
||||
bool changeRequired = false;
|
||||
for (label patchi = 0; patchi < pbm.nNonProcessor(); ++patchi)
|
||||
{
|
||||
const auto* cycAmiPtr = isA<cyclicAMIPolyPatch>(pbm[patchi]);
|
||||
|
||||
if (cycAmiPtr)
|
||||
{
|
||||
changeRequired = cycAmiPtr->createAMIFaces() || changeRequired;
|
||||
}
|
||||
else
|
||||
{
|
||||
const auto* cycAcmiPtr = isA<cyclicACMIPolyPatch>(pbm[patchi]);
|
||||
if (cycAcmiPtr)
|
||||
{
|
||||
changeRequired =
|
||||
cycAcmiPtr->cyclicAMIPolyPatch::createAMIFaces()
|
||||
|| changeRequired;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (returnReduceOr(changeRequired))
|
||||
{
|
||||
update();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ writeInterval 0.1;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
writeFormat binary; //ascii;
|
||||
|
||||
writePrecision 6;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user