diff --git a/src/finiteArea/finiteArea/fac/facGrad.C b/src/finiteArea/finiteArea/fac/facGrad.C index 1045a24726..262b20e129 100644 --- a/src/finiteArea/finiteArea/fac/facGrad.C +++ b/src/finiteArea/finiteArea/fac/facGrad.C @@ -103,13 +103,17 @@ grad typedef typename outerProduct::type GradType; typedef GeometricField GradFieldType; - tmp tgGrad = fa::gradScheme::New + tmp tgGrad ( - vf.mesh(), - vf.mesh().gradScheme(name) - ).ref().grad(vf); - - GradFieldType& gGrad = tgGrad.ref(); + fa::gradScheme::New + ( + vf.mesh(), + vf.mesh().gradScheme(name) + ) + .cref() // const ref to tmp contents + .grad(vf).ptr() // steal ptr or deep copy of cached gradient + ); + auto& gGrad = tgGrad.ref(); const areaVectorField& n = vf.mesh().faceAreaNormals(); gGrad -= n*(n & gGrad);