1 Info<< "Reading field U\n" << endl;
26 dimensionedTensor("zero", dimless, tensor::zero)
29 surfaceVectorField snGradU
40 dimensionedVector("zero", dimless, vector::zero)
50 IOobject::READ_IF_PRESENT,
56 volTensorField gradV = fvc::ddt(gradU);
57 surfaceVectorField snGradV = (snGradU - snGradU.oldTime())/runTime.deltaT();
59 volSymmTensorField epsilon
66 IOobject::READ_IF_PRESENT,
70 dimensionedSymmTensor("zero", dimless, symmTensor::zero)
73 volSymmTensorField sigma
80 IOobject::READ_IF_PRESENT,
84 dimensionedSymmTensor("zero", dimForce/dimArea, symmTensor::zero)
87 volVectorField divSigmaExp
98 dimensionedVector("zero", dimForce/dimVolume, vector::zero)
101 constitutiveModel rheology(sigma, U);
103 volScalarField rho = rheology.rho();
104 volScalarField mu = rheology.mu();
105 volScalarField lambda = rheology.lambda();
106 surfaceScalarField muf = rheology.muf();
107 surfaceScalarField lambdaf = rheology.lambdaf();
109 surfaceVectorField n = mesh.Sf()/mesh.magSf();
111 // check if there are contact boundaries to know
112 // if contact fields should be written for visualisation
113 // note: this is just for visualisation
114 // bool contactBoundaries = false;
115 // forAll(U.boundaryField(), patchi)
117 // if(U.boundaryField()[patchi].type()
119 // solidContactFvPatchVectorField::typeName)
121 // contactBoundaries = true;
127 // for aitken relaxation
128 volVectorField aitkenDelta
139 dimensionedVector("zero", dimLength, vector::zero)
143 // aitken relaxation factor
144 scalar aitkenInitialRes = 1.0;
145 scalar aitkenTheta = 0.1;