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 { FatalError << "divDSigmaExp method " << divDSigmaExpMethod << " not found!" << endl; }