45 const GeometricField<Type, fvPatchField, volMesh>& vsf,
50 typedef GeometricField<GradType, fvPatchField, volMesh> GradFieldType;
51 typedef GeometricField<GradType, fvsPatchField, surfaceMesh>
53 typedef GeometricField<Type, fvsPatchField, surfaceMesh> SurfFieldType;
56 const SurfFieldType& ssf = tssf.cref();
58 tmp<GradFieldType> tgGrad = fv::gaussGrad<Type>::gradf(ssf,
name);
59 GradFieldType& gGrad = tgGrad.ref();
63 for (label i = 0; i < nIter_; ++i)
67 tmp<SurfFieldType> tcorr = skv() & tsgGrad;
69 tcorr.ref().dimensions().reset(vsf.dimensions());
71 if (vsf.mesh().relaxField(
"grad(" + vsf.name() +
")"))
74 vsf.mesh().fieldRelaxationFactor(
"grad(" + vsf.name() +
")");
77 gGrad *= (1.0 -
relax);
78 gGrad +=
relax*fv::gaussGrad<Type>::gradf(tcorr + ssf,
name);
82 gGrad = fv::gaussGrad<Type>::gradf(tcorr + ssf,
name);