44 if (surfaceInterpolation::debug)
47 <<
"Constructing limitedSurfaceInterpolationScheme<Type>" <<
endl;
53 <<
"Discretisation scheme not specified"
55 <<
"Valid schemes are :" <<
endl
56 << MeshConstructorTablePtr_->sortedToc()
60 const word schemeName(schemeData);
62 auto* ctorPtr = MeshConstructorTable(schemeName);
71 *MeshConstructorTablePtr_
75 return ctorPtr(
mesh, schemeData);
88 if (surfaceInterpolation::debug)
91 <<
"Constructing limitedSurfaceInterpolationScheme<Type>"
98 <<
"Discretisation scheme not specified"
100 <<
"Valid schemes are :" << endl
101 << MeshConstructorTablePtr_->sortedToc()
102 << exit(FatalIOError);
105 const word schemeName(schemeData);
107 auto* ctorPtr = MeshFluxConstructorTable(schemeName);
116 *MeshFluxConstructorTablePtr_
117 ) <<
exit(FatalIOError);
120 return ctorPtr(
mesh, faceFlux, schemeData);
156 surfaceScalarField::Boundary& bWeights =
161 scalarField& pWeights = bWeights[patchi];
163 const scalarField& pCDweights = CDweights.
boundaryField()[patchi];
164 const scalarField& pFaceFlux = faceFlux_.boundaryField()[patchi];
169 pWeights[face]*pCDweights[face]
170 + (1.0 - pWeights[face])*pos0(pFaceFlux[face]);
181 const GeometricField<Type, fvPatchField, volMesh>&
phi
Generic GeometricField class.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field values.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
GeometricBoundaryField< scalar, fvsPatchField, surfaceMesh > Boundary
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
bool eof() const noexcept
True if end of input seen.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
A face is a list of labels corresponding to mesh vertices.
Mesh data needed to do the Finite Volume discretisation.
const surfaceScalarField & faceFlux_
static tmp< limitedSurfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
virtual tmp< surfaceScalarField > limiter(const GeometricField< Type, fvPatchField, volMesh > &) const =0
Return the interpolation weighting factors.
tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &, const surfaceScalarField &CDweights, tmp< surfaceScalarField > tLimiter) const
Return the interpolation weighting factors for the given field,.
virtual ~limitedSurfaceInterpolationScheme()
Destructor.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > flux(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the interpolation weighting factors.
const fvMesh & mesh() const
Return mesh reference.
virtual const surfaceScalarField & weights() const
Return reference to linear difference weighting factors.
A class for managing temporary objects.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
A class for handling words, derived from Foam::string.
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
#define InfoInFunction
Report an information message using Foam::Info.
dimensionedScalar pos0(const dimensionedScalar &ds)
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & endl(Ostream &os)
Add newline and flush stream.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define forAll(list, i)
Loop across all elements in list.