2 surfaceVectorField n = mesh.Sf()/mesh.magSf();
4 // traction = (n&fvc::interpolate(sigma));
6 // surfaceTensorField sGradU =
7 // ((I - n*n)&fvc::interpolate(gradU));
10 // (2*mu + lambda)*snGradU
11 // - (mu + lambda)*(snGradU&(I - n*n))
13 // + lambda*tr(sGradU&(I - n*n))*n;
16 // (2*mu + lambda)*fvc::snGrad(U)
17 // - (mu + lambda)*(n&sGradU)
19 // + lambda*tr(sGradU)*n;
22 // I am having trouble with back-calculation of interface tractions from solid interface
23 // procedure (in multiMaterial.C), the tractions have quite large differences from each
24 // side. Interpolating sigma is OK for now
25 // traction = rheology.law().interfaceTraction(n, U, gradU, rheology.mu(), rheology.lambda());
26 # include "calculateEpsilonSigma.H"
27 traction = (n&fvc::interpolate(sigma));
29 // forAll(traction.boundaryField(), patchi)
31 // if (mesh.boundary()[patchi].type() == "cohesive")
33 // forAll(traction.boundaryField()[patchi], facei)
35 // Pout << "face " << facei << " with traction magnitude "
36 // << mag(traction.boundaryField()[patchi][facei])/1e6 << " MPa and traction "
37 // << traction.boundaryField()[patchi][facei]/1e6 << " MPa" << endl;