if(divDSigmaExpMethod == "standard") { divDSigmaExp = fvc::div ( mu*gradDU.T() + lambda*(I*tr(gradDU)) - (mu + lambda)*gradDU, "div(sigma)" ); } else if(divDSigmaExpMethod == "surface") { divDSigmaExp = fvc::div ( mesh.magSf()* ( muf*(n & fvc::interpolate(gradDU.T())) + lambdaf*tr(fvc::interpolate(gradDU))*n - (muf + lambdaf)*(n & fvc::interpolate(gradDU)) ) ); // divDSigmaExp = fvc::div // ( // muf*(mesh.Sf() & fvc::interpolate(gradDU.T())) // + lambdaf*(mesh.Sf() & I*fvc::interpolate(tr(gradDU))) // - (muf + lambdaf)*(mesh.Sf() & fvc::interpolate(gradDU)) // ); } else if(divDSigmaExpMethod == "decompose") { surfaceTensorField shearGradDU((I - n*n) & fvc::interpolate(gradDU)); divDSigmaExp = fvc::div ( mesh.magSf()* ( - (muf + lambdaf)*(fvc::snGrad(DU) & (I - n*n)) + lambdaf*tr(shearGradDU & (I - n*n))*n + muf*(shearGradDU & n) ) ); // divDSigmaExp = fvc::div // ( // mesh.magSf()* // ( // - (muf + lambdaf)*(fvc::snGrad(DU)&(I - n*n)) // + lambdaf*tr(shearGradDU&(I - n*n))*n // + muf*(shearGradDU&n) // ) // ); } else if(divDSigmaExpMethod == "laplacian") { divDSigmaExp = - fvc::laplacian(mu + lambda, DU, "laplacian(DDU,DU)") + fvc::div(mu*gradDU.T() + lambda*(I*tr(gradDU)), "div(sigma)"); } else { FatalErrorIn(args.executable()) << "divDSigmaExp method " << divDSigmaExpMethod << " not found!" << abort(FatalError); }