dynamicMotionSolverListFvMesh: Ensure independence of zone-based motion
This commit is contained in:
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user