if(min(J.internalField()) > 0)
{
Info << "\nMove solid mesh" << endl;
volPointInterpolation pointInterpolation(stressMesh);
// Calculate mesh points displacement
pointInterpolation.interpolate(DU, pointDU);
const vectorField& pointDUI = pointDU.internalField();
// Move mesh
vectorField newPoints = stressMesh.allPoints();
forAll(pointDUI, pointI)
newPoints[pointI] += pointDUI[pointI];
}
twoDPointCorrector twoDCorrector(stressMesh);
twoDCorrector.correctPoints(newPoints);
stressMesh.movePoints(newPoints);
stressMesh.V00();
stressMesh.moving(false);
// Rotate stress field (old Cauchy becomes new 2nd Piola)
//sigma = 1/J * symm(F & sigma & F.T());
//rho = rho/J;
else
FatalErrorIn(args.executable())
<< "Negative Jacobian"
<< exit(FatalError);