{ # include "readSolidMechanicsControls.H" int iCorr = 0; lduSolverPerformance solverPerf; scalar initialResidual = 0; lduMatrix::debug = 0; # include "backwardCoeffs.H" do { DU.storePrevIter(); fvVectorMatrix DUEqn ( Cn*rho*fvm::ddt(DU) - Co*rho*DV.oldTime() + Coo*rho*DV.oldTime().oldTime() == fvm::laplacian(2*mu + lambda, DU, "laplacian(DDU,DU)") - fvc::laplacian(mu + lambda, DU, "laplacian(DDU,DU)") + fvc::div ( mu*gradDU.T() + lambda*(I*tr(gradDU)) + mu*(gradDU&gradDU.T()) + 0.5*lambda*(I*tr(gradDU & gradDU.T())) + (sigma & DF.T()) + (DSigma & DF.T()), "div(sigma)" ) ); solverPerf = DUEqn.solve(); DU.relax(); if(iCorr == 0) { initialResidual = solverPerf.initialResidual(); } gradDU = fvc::grad(DU); DF = gradDU.T(); # include "calculateDSigma.H" } while ( solverPerf.initialResidual() > convergenceTolerance && ++iCorr < nCorr ); Info << "Solving for " << DU.name() << ", Initial residual = " << initialResidual << ", Final residual = " << solverPerf.initialResidual() << ", No outer iterations " << iCorr << endl; DV = fvc::ddt(DU); lduMatrix::debug = 1; }