27 #include "surfaceInterpolate.H" 44 template<
class Type,
class GType>
91 template<
class Type,
class GType>
107 "gammaSnGradCorr("+vf.
name()+
')',
119 for (
direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++)
121 tgammaSnGradCorr.
ref().replace
128 return tgammaSnGradCorr;
134 template<
class Type,
class GType>
148 tLaplacian.
ref().rename(
"laplacian(" + vf.
name() +
')');
154 template<
class Type,
class GType>
176 this->tsnGradScheme_().deltaCoeffs(vf),
182 = gammaSnGradCorr(SfGammaCorr, vf);
184 if (this->tsnGradScheme_().corrected())
186 tfaceFluxCorrection.
ref() +=
187 SfGammaSn*this->tsnGradScheme_().correction(vf);
190 fvm.
source() -= mesh.
V()*
fvc::div(tfaceFluxCorrection())().primitiveField();
201 template<
class Type,
class GType>
223 SfGammaSn*this->tsnGradScheme_().
snGrad(vf)
224 + gammaSnGradCorr(SfGammaCorr, vf)
228 tLaplacian.
ref().rename
230 "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.
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 > &)
const fileName & instance() const
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 > &)
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
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)