44 template<
class Type,
class GType>
46 gaussLaplacianScheme<Type, GType>::fvmLaplacianUncorrected
49 GeometricField<Type, fvPatchField, volMesh>& vf
52 tmp<surfaceScalarField> tdeltaCoeffs =
53 this->tsnGradScheme_().deltaCoeffs(vf);
56 tmp<fvMatrix<Type> > tfvm
61 deltaCoeffs.dimensions()*gammaMagSf.dimensions()*vf.dimensions()
64 fvMatrix<Type>& fvm = tfvm();
66 fvm.upper() = deltaCoeffs.internalField()*gammaMagSf.internalField();
69 forAll(fvm.psi().boundaryField(), patchI)
71 const fvPatchField<Type>& psf = fvm.psi().boundaryField()[patchI];
73 gammaMagSf.boundaryField()[patchI];
75 fvm.internalCoeffs()[patchI] = patchGamma*psf.gradientInternalCoeffs();
76 fvm.boundaryCoeffs()[patchI] = -patchGamma*psf.gradientBoundaryCoeffs();
83 template<
class Type,
class GType>
84 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
85 gaussLaplacianScheme<Type, GType>::gammaSnGradCorr
88 const GeometricField<Type, fvPatchField, volMesh>& vf
93 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > tgammaSnGradCorr
95 new GeometricField<Type, fvsPatchField, surfaceMesh>
99 "gammaSnGradCorr("+vf.name()+
')',
106 SfGammaCorr.dimensions()
107 *vf.dimensions()*mesh.deltaCoeffs().dimensions()
111 for (
direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++)
113 tgammaSnGradCorr().replace
120 return tgammaSnGradCorr;
126 template<
class Type,
class GType>
127 tmp<GeometricField<Type, fvPatchField, volMesh> >
140 tLaplacian().rename(
"laplacian(" + vf.
name() +
')');
146 template<
class Type,
class GType>
166 = gammaSnGradCorr(SfGammaCorr, vf);
168 if (this->tsnGradScheme_().corrected())
170 tfaceFluxCorrection() +=
171 SfGammaSn*this->tsnGradScheme_().correction(vf);
174 fvm.
source() -= mesh.
V()*
fvc::div(tfaceFluxCorrection())().internalField();
185 template<
class Type,
class GType>
205 SfGammaSn*this->tsnGradScheme_().
snGrad(vf)
206 + gammaSnGradCorr(SfGammaCorr, vf)
210 tLaplacian().rename(
"laplacian(" + gamma.
name() +
',' + vf.
name() +
')');