1 Info<< "Reading field U\n" << endl;
15 // volTensorField gradU = fvc::grad(U);
27 dimensionedTensor("zero", dimless, tensor::zero)
29 //surfaceVectorField snGradU = fvc::snGrad(U);
30 surfaceVectorField snGradU
41 dimensionedVector("zero", dimless, vector::zero)
51 IOobject::READ_IF_PRESENT,
57 volTensorField gradV = fvc::ddt(gradU);
58 surfaceVectorField snGradV = (snGradU - snGradU.oldTime())/runTime.deltaT();
60 volSymmTensorField epsilon
67 IOobject::READ_IF_PRESENT,
71 dimensionedSymmTensor("zero", dimless, symmTensor::zero)
74 volSymmTensorField sigma
81 IOobject::READ_IF_PRESENT,
85 dimensionedSymmTensor("zero", dimForce/dimArea, symmTensor::zero)
88 volVectorField divSigmaExp
99 dimensionedVector("zero", dimForce/dimVolume, vector::zero)
102 constitutiveModel rheology(sigma, U);
104 volScalarField rho = rheology.rho();
105 volScalarField mu = rheology.mu();
106 volScalarField lambda = rheology.lambda();
107 surfaceScalarField muf = rheology.muf();
108 surfaceScalarField lambdaf = rheology.lambdaf();
110 surfaceVectorField n = mesh.Sf()/mesh.magSf();
112 // check if there are contact boundaries to know
113 // if contact fields should be written for visualisation
114 // note: this is just for visualisation
115 // bool contactBoundaries = false;
116 // forAll(U.boundaryField(), patchi)
118 // if(U.boundaryField()[patchi].type()
120 // solidContactFvPatchVectorField::typeName)
122 // contactBoundaries = true;
128 // for aitken relaxation
129 volVectorField aitkenDelta
140 dimensionedVector("zero", dimLength, vector::zero)
142 // aitken relaxation factor
143 scalar aitkenInitialRes = 1.0;
144 scalar aitkenTheta = 0.1;