||October 4, 2011 17:00
I have noted some strange behaviour of the laplaceTetDecompositionMotionSolver (autoPtr motionSolver_ in the following snippets). I don't know if this is a bug. Maybe someone can comment on this:
I had expected the following code snippet to store the displacements of all mesh nodes (including boundary mesh points) in "deformedPoints":
tmp<pointField> deformedPoints = -1.0 * motionSolver_().curPoints();
deformedPoints() += motionSolver_().newPoints();
Unfortunately, only the displacement of the internal mesh points seemed to be right. The displacements of the mesh points on the mesh boundary were zero.
I had to code the following to get the wanted displacements:
tmp<pointField> deformedPoints(new pointField(allPoints().size(), vector::zero));
const tetPointVectorField& motionU=
deformedPoints()[ipi]=motionU.internalField()[ipi] * time().deltaT().value();
const labelList& meshPoints=boundaryMesh()[patchI].meshPoints();
const fixedValueTetPolyPatchVectorField& ppatch =
ppatch[mpi] * time().deltaT().value();
This is a quite ugly code. Does someone perhaps knows a more elegant way? I would really appreciate that.
Thanks in advance,