diff --git a/src/dynamicFvMesh/dynamicMotionSolverFvMesh/dynamicMotionSolverFvMesh.C b/src/dynamicFvMesh/dynamicMotionSolverFvMesh/dynamicMotionSolverFvMesh.C index bf5b0a9766..76b2b825eb 100644 --- a/src/dynamicFvMesh/dynamicMotionSolverFvMesh/dynamicMotionSolverFvMesh.C +++ b/src/dynamicFvMesh/dynamicMotionSolverFvMesh/dynamicMotionSolverFvMesh.C @@ -92,10 +92,11 @@ bool Foam::dynamicMotionSolverFvMesh::update() { fvMesh::movePoints(motionPtr_->newPoints()); - if (foundObject("U")) + volVectorField* Uptr = getObjectPtr("U"); + + if (Uptr) { - volVectorField& U = lookupObjectRef("U"); - U.correctBoundaryConditions(); + Uptr->correctBoundaryConditions(); } return true; diff --git a/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C b/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C index 591a8fef72..baf7e92594 100644 --- a/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C +++ b/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C @@ -26,7 +26,7 @@ License #include "dynamicMultiMotionSolverFvMesh.H" #include "addToRunTimeSelectionTable.H" #include "volFields.H" -#include "boolList.H" +#include "bitSet.H" #include "syncTools.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -69,7 +69,10 @@ Foam::dynamicMultiMotionSolverFvMesh::dynamicMultiMotionSolverFvMesh zoneIDs_.setSize(dynamicMeshCoeffs.size()); motionPtr_.setSize(dynamicMeshCoeffs.size()); pointIDs_.setSize(dynamicMeshCoeffs.size()); - label zoneI = 0; + + label zonei = 0; + + bitSet movePts; for (const entry& dEntry : dynamicMeshCoeffs) { @@ -79,9 +82,9 @@ Foam::dynamicMultiMotionSolverFvMesh::dynamicMultiMotionSolverFvMesh const word zoneName(subDict.get("cellZone")); - zoneIDs_[zoneI] = cellZones().findZoneID(zoneName); + zoneIDs_[zonei] = cellZones().findZoneID(zoneName); - if (zoneIDs_[zoneI] == -1) + if (zoneIDs_[zonei] == -1) { FatalIOErrorInFunction(dynamicMeshCoeffs) << "Cannot find cellZone named " << zoneName @@ -94,7 +97,7 @@ Foam::dynamicMultiMotionSolverFvMesh::dynamicMultiMotionSolverFvMesh motionPtr_.set ( - zoneI, + zonei, motionSolver::New ( *this, @@ -102,75 +105,55 @@ Foam::dynamicMultiMotionSolverFvMesh::dynamicMultiMotionSolverFvMesh ) ); + // Collect points of cell zone. - const cellZone& cz = cellZones()[zoneIDs_[zoneI]]; - boolList movePts(nPoints(), false); + movePts.reset(); + movePts.resize(nPoints()); - forAll(cz, i) + for (const label celli : cellZones()[zoneIDs_[zonei]]) { - label cellI = cz[i]; - const cell& c = cells()[cellI]; - forAll(c, j) + for (const label facei : cells()[celli]) { - const face& f = faces()[c[j]]; - forAll(f, k) - { - label pointI = f[k]; - movePts[pointI] = true; - } + movePts.set(faces()[facei]); // set multiple points } } - syncTools::syncPointList(*this, movePts, orEqOp(), false); + syncTools::syncPointList + ( + *this, movePts, orEqOp(), 0u + ); - DynamicList