27 #include "surfaceInterpolate.H" 44 template<
class Type,
class GType>
91 template<
class Type,
class GType>
105 "gammaSnGradCorr("+vf.
name()+
')',
112 for (
direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++)
114 tgammaSnGradCorr.
ref().replace
121 return tgammaSnGradCorr;
127 template<
class Type,
class GType>
141 tLaplacian.
ref().rename(
"laplacian(" + vf.
name() +
')');
147 template<
class Type,
class GType>
169 this->tsnGradScheme_().deltaCoeffs(vf),
175 = gammaSnGradCorr(SfGammaCorr, vf);
177 if (this->tsnGradScheme_().corrected())
179 tfaceFluxCorrection.
ref() +=
180 SfGammaSn*this->tsnGradScheme_().correction(vf);
183 fvm.
source() -= mesh.
V()*
fvc::div(tfaceFluxCorrection())().primitiveField();
194 template<
class Type,
class GType>
216 SfGammaSn*this->tsnGradScheme_().
snGrad(vf)
217 + gammaSnGradCorr(SfGammaCorr, vf)
221 tLaplacian.
ref().rename
223 "laplacian(" + gamma.
name() +
',' + vf.
name() +
')' tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
#define forAll(list, i)
Loop across all elements in list.
const surfaceVectorField & Sf() const
Return cell face area vectors.
const word & name() const
Return name.
const fvSchemes & schemes() const
Return the fvSchemes.
static scalar Sn(const scalar a, const scalar x)
FieldField< Field, Type > & internalCoeffs()
fvBoundary scalar field containing pseudo-matrix coeffs
const Boundary & boundaryField() const
Return const-reference to the boundary field.
static tmp< fvMatrix< Type > > fvmLaplacianUncorrected(const surfaceScalarField &gammaMagSf, const surfaceScalarField &deltaCoeffs, const GeometricField< Type, fvPatchField, volMesh > &)
T & ref() const
Return non-const reference or generate a fatal error.
tmp< GeometricField< Type, fvPatchField, volMesh > > div(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< cmptType, PatchField, GeoMesh > > component(const direction) const
Return a component of the field.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
const DimensionedField< scalar, volMesh > & V() const
Return cell volumes.
surfaceTypeFieldPtr & faceFluxCorrectionPtr()
Return pointer to face-flux non-orthogonal correction field.
const dimensionSet & dimensions() const
Return dimensions.
Calculate the gradient of the given field.
Basic second-order laplacian using face-gradients and Gauss' theorem.
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
FieldField< Field, Type > & boundaryCoeffs()
fvBoundary scalar field containing pseudo-matrix coeffs
virtual bool coupled() const
Return true if this patch field is coupled.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
Calculate the divergence of the given field.
const surfaceScalarField & magSf() const
Return cell face area magnitudes.
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcLaplacian(const GeometricField< Type, fvPatchField, volMesh > &)
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
bool fluxRequired(const word &name) const
Mesh data needed to do the Finite Volume discretisation.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
T * ptr() const
Return tmp pointer for reuse.
A class for managing temporary objects.
tmp< fvMatrix< Type > > fvmLaplacian(const GeometricField< GType, fvsPatchField, surfaceMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
const surfaceScalarField & deltaCoeffs() const
Return reference to cell-centre difference coefficients.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)