dynamicMotionSolverListFvMesh: Ensure independence of zone-based motion

This commit is contained in:
Henry Weller
2016-12-09 14:19:07 +00:00
parent 8dafde6048
commit 9edf3b5215
3 changed files with 24 additions and 23 deletions

View File

@ -139,22 +139,18 @@ Foam::multiSolidBodyMotionSolver::~multiSolidBodyMotionSolver()
Foam::tmp<Foam::pointField> Foam::multiSolidBodyMotionSolver::curPoints() const
{
tmp<pointField> ttransformedPts
(
new pointField(points0_)
);
tmp<pointField> ttransformedPts(new pointField(mesh().points()));
pointField& transformedPts = ttransformedPts.ref();
forAll(zoneIDs_, i)
{
const labelList& zonePoints = pointIDs_[i];
UIndirectList<point>(transformedPts, zonePoints) =
transformPoints
(
SBMFs_[i].transformation(),
pointField(transformedPts, zonePoints)
);
UIndirectList<point>(transformedPts, zonePoints) = transformPoints
(
SBMFs_[i].transformation(),
pointField(points0_, zonePoints)
);
}
return ttransformedPts;

View File

@ -162,16 +162,13 @@ Foam::tmp<Foam::pointField> Foam::solidBodyMotionSolver::curPoints() const
}
else
{
tmp<pointField> ttransformedPts
(
new pointField(points0_)
);
tmp<pointField> ttransformedPts(new pointField(mesh().points()));
pointField& transformedPts = ttransformedPts.ref();
UIndirectList<point>(transformedPts, pointIDs_) = transformPoints
(
SBMFPtr_().transformation(),
pointField(transformedPts, pointIDs_)
pointField(points0_, pointIDs_)
);
return ttransformedPts;