This repository has been archived on 2023-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
foam-extend4.1-coherent-io/applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/rotateFields.H

32 lines
829 B
C++
Raw Normal View History

2012-09-11 15:42:55 +00:00
//--------------------------------------------------//
//- rotate fields
//--------------------------------------------------//
{
Info << "Rotating fields" << endl;
2012-09-11 15:42:55 +00:00
volTensorField F = I + gradDU;
2012-09-11 15:42:55 +00:00
volTensorField Finv = inv(F);
volScalarField J = det(F);
if(min(J.internalField()) < 0)
{
FatalErrorIn(args.executable())
<< "Negative Jacobian -> cell negative volumes!!!"
<< exit(FatalError);
}
2012-09-11 15:42:55 +00:00
rho = rho/J;
n = mesh.Sf()/mesh.magSf();
// rotate strain and stress fields
//epsilon = symm(Finv & epsilon & Finv.T());
epsilon = transform(Finv, epsilon);
//sigma = 1/J * symm(F.T() & sigma & F);
sigma = (1/J)*transform(F.T(), sigma);
// Note: for strict large strain approach, the constitutive stiffness
// would be rotated here - see elasticOrthoNonLinULSolidFoam.
2012-09-11 15:42:55 +00:00
}