Removed unneeded lib dependency from mdInitialise
[foam-extend-3.2.git] / applications / solvers / solidMechanics / elasticOrthoNonLinULSolidFoam / rotateFields.H
blob2fb8aa8ccc13979c52f0aaa084409f271afecb16
1 //--------------------------------------------------//
2 //- rotate fields
3 //--------------------------------------------------//
5   Info << "Rotating fields" << endl;
7   volTensorField F = I + gradDU;
8   
9   U += DU;
10   
11   epsilon += DEpsilon;
13   sigma += DSigma;
15   volTensorField Finv = inv(F);
17   volScalarField J = det(F);
18   if(min(J.internalField()) < 0)
19     {
20       FatalErrorIn(args.executable())
21         << "Negative Jacobian - a cell volume has become negative!"
22         << exit(FatalError);
23     }
24   
25   rho = rho/J;
27   n = mesh.Sf()/mesh.magSf();
29   //- rotate strain
30   //epsilon = symm(Finv & epsilon & Finv.T());
31   epsilon = transform(Finv, epsilon);
33   //- rotate stress
34   //sigma  = 1/J * symm(F.T() & sigma & F);
35   sigma = (1/J) * transform(F.T(), sigma);
37   //- rotate elastic constitutive tensor
38   C = transform(F.T(), C);
40   // - update implicit stiffness tensor
41   forAll(K, celli)
42     {
43       K[celli].xx() = C[celli].xxxx();
44       K[celli].yy() = C[celli].yyyy();
45       K[celli].zz() = C[celli].zzzz();
46     }
47   K.correctBoundaryConditions();