3 label patchID = mesh.boundaryMesh().findPatchID("loading");
7 FatalErrorIn(args.executable())
8 << "Can't find patch with name loading" << abort(FatalError);
13 DU.boundaryField()[patchID].type()
14 == directionMixedFvPatchVectorField::typeName
17 directionMixedFvPatchVectorField& loadingPatchU =
18 refCast<directionMixedFvPatchVectorField>
20 DU.boundaryField()[patchID]
23 vectorField n = mesh.boundary()[patchID].nf();
25 vectorField traction = n*(n&(n&DSigma));
27 scalarField lpMu = mu.boundaryField()[patchID];
28 scalarField lpLambda = lambda.boundaryField()[patchID];
30 tensorField lpGradDU = gradDU.boundaryField()[patchID];
32 loadingPatchU.refGrad() =
35 - (n & (lpMu*lpGradDU.T() - (lpMu + lpLambda)*lpGradDU))
36 - n*lpLambda*tr(lpGradDU)
38 /(2.0*lpMu + lpLambda);
44 label patchID = mesh.boundaryMesh().findPatchID("bottom");
48 FatalErrorIn(args.executable())
49 << "Can't find patch with name bottom" << abort(FatalError);
54 DU.boundaryField()[patchID].type()
55 == directionMixedFvPatchVectorField::typeName
58 directionMixedFvPatchVectorField& bottomPatchU =
59 refCast<directionMixedFvPatchVectorField>
61 DU.boundaryField()[patchID]
64 vectorField n = mesh.boundary()[patchID].nf();
66 vectorField traction = n*(n&(n&DSigma));
68 scalarField bpMu = mu.boundaryField()[patchID];
69 scalarField bpLambda = lambda.boundaryField()[patchID];
71 tensorField bpGradDU = gradDU.boundaryField()[patchID];
73 bottomPatchU.refGrad() =
76 - (n & (bpMu*bpGradDU.T() - (bpMu + bpLambda)*bpGradDU))
77 - n*bpLambda*tr(bpGradDU)
79 /(2.0*bpMu + bpLambda);