57 const GeometricField<Type, fvPatchField, volMesh>& vsf
62 const fvMesh&
mesh = vsf.mesh();
64 tmp<GeometricField<GradType, fvPatchField, volMesh> > tlsGrad
66 new GeometricField<GradType, fvPatchField, volMesh>
70 "grad("+vsf.name()+
')',
81 pTraits<GradType>::zero
83 zeroGradientFvPatchField<GradType>::typeName
86 GeometricField<GradType, fvPatchField, volMesh>& lsGrad = tlsGrad();
99 register label ownFaceI = own[facei];
100 register label neiFaceI = nei[facei];
102 Type deltaVsf = vsf[neiFaceI] - vsf[ownFaceI];
104 lsGrad[ownFaceI] += ownLs[facei]*deltaVsf;
105 lsGrad[neiFaceI] -= neiLs[facei]*deltaVsf;
114 lsGrad.boundaryField()[
patchi].patch().faceCells();
116 if (vsf.boundaryField()[
patchi].coupled())
119 vsf.boundaryField()[
patchi].patchNeighbourField();
121 forAll(neiVsf, patchFaceI)
123 lsGrad[faceCells[patchFaceI]] +=
124 patchOwnLs[patchFaceI]
125 *(neiVsf[patchFaceI] - vsf[faceCells[patchFaceI]]);
130 const fvPatchField<Type>& patchVsf = vsf.boundaryField()[
patchi];
132 forAll(patchVsf, patchFaceI)
134 lsGrad[faceCells[patchFaceI]] +=
135 patchOwnLs[patchFaceI]
136 *(patchVsf[patchFaceI] - vsf[faceCells[patchFaceI]]);
142 lsGrad.correctBoundaryConditions();