29#include "surfaceInterpolate.H"
46template<
class Type,
class GType>
77 fvm.internalCoeffs()[patchi] =
79 fvm.boundaryCoeffs()[patchi] =
93template<
class Type,
class GType>
95gaussLaplacianScheme<Type, GType>::gammaSnGradCorr
109 "gammaSnGradCorr("+vf.
name()+
')',
120 tgammaSnGradCorr.
ref().oriented() = SfGammaCorr.
oriented();
122 for (
direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++)
124 tgammaSnGradCorr.
ref().replace
131 return tgammaSnGradCorr;
137template<
class Type,
class GType>
148 fvc::div(this->tsnGradScheme_().snGrad(vf)*
mesh.magSf())
151 tLaplacian.
ref().rename(
"laplacian(" + vf.
name() +
')');
157template<
class Type,
class GType>
179 this->tsnGradScheme_().deltaCoeffs(vf),
185 = gammaSnGradCorr(SfGammaCorr, vf);
187 if (this->tsnGradScheme_().corrected())
189 tfaceFluxCorrection.
ref() +=
190 SfGammaSn*this->tsnGradScheme_().correction(vf);
193 fvm.source() -=
mesh.V()*
fvc::div(tfaceFluxCorrection())().primitiveField();
197 fvm.faceFluxCorrectionPtr(tfaceFluxCorrection.
ptr());
204template<
class Type,
class GType>
226 SfGammaSn*this->tsnGradScheme_().snGrad(vf)
227 + gammaSnGradCorr(SfGammaCorr, vf)
231 tLaplacian.
ref().rename
233 "laplacian(" +
gamma.name() +
',' + vf.
name() +
')'
const dimensionSet & dimensions() const noexcept
Return dimensions.
orientedType oriented() const noexcept
Return oriented type.
Generic GeometricField class.
const Internal::FieldType & primitiveField() const noexcept
Return a const-reference to the internal field values.
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
tmp< GeometricField< cmptType, PatchField, GeoMesh > > component(const direction) const
Return a component of the field.
@ NO_READ
Nothing to be read.
@ NO_WRITE
Ignore writing from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
const fileName & instance() const noexcept
Read access to instance path component.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Mesh data needed to do the Finite Volume discretisation.
virtual bool coupled() const
True if the patch field is coupled.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the evaluation of the gradient of this patch...
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the evaluation of the gradient of this patchFi...
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcLaplacian(const GeometricField< Type, fvPatchField, volMesh > &)
tmp< fvMatrix< Type > > fvmLaplacian(const GeometricField< GType, fvsPatchField, surfaceMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
static tmp< fvMatrix< Type > > fvmLaplacianUncorrected(const surfaceScalarField &gammaMagSf, const surfaceScalarField &deltaCoeffs, const GeometricField< Type, fvPatchField, volMesh > &)
tmp< snGradScheme< Type > > tsnGradScheme_
const fvMesh & mesh() const
Return mesh reference.
A class for managing temporary objects.
T * ptr() const
Return managed pointer for reuse, or clone() the object reference.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
Calculate the divergence of the given field.
Calculate the gradient of the given field.
Namespace for finite-volume.
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
static tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate(const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &tvf)
Interpolate field onto faces.
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
Namespace of functions to calculate implicit derivatives returning a matrix.
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
static scalar Sn(const scalar a, const scalar x)
fvsPatchField< scalar > fvsPatchScalarField
#define forAll(list, i)
Loop across all elements in list.