67 #include "surfaceInterpolate.H" 81 public surfaceInterpolationScheme<Type>,
82 public blendedSchemeBase<Type>
135 if (Co1_ < 0 || Co2_ < 0 || Co1_ >= Co2_)
138 <<
"coefficients = " << Co1_ <<
" and " << Co2_
139 <<
" should be > 0 and Co2 > Co1" 166 if (Co1_ < 0 || Co2_ < 0 || Co1_ >= Co2_)
169 <<
"coefficients = " << Co1_ <<
" and " << Co2_
170 <<
" should be > 0 and Co2 > Co1" 195 mesh.objectRegistry::template lookupObject<volScalarField>
203 <<
"dimensions of faceFlux are not correct" 209 vf.
name() +
"BlendingFactor",
238 bf*tScheme1_().weights(vf)
239 + (scalar(1) - bf)*tScheme2_().weights(vf);
254 bf*tScheme1_().interpolate(vf)
255 + (scalar(1) - bf)*tScheme2_().interpolate(vf);
262 return tScheme1_().corrected() || tScheme2_().corrected();
void operator=(const CoBlended &)=delete
Disallow default bitwise assignment.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
const word & name() const
Return name.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the explicit correction to the face-interpolate.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
static tmp< GeometricField< scalar, fvsPatchField, surfaceMesh > > New(const word &name, const Internal &, const PtrList< fvsPatchField< scalar >> &)
Return a temporary field constructed from name,.
const fvMesh & mesh() const
Return mesh reference.
const Time & time() const
Return the top-level database.
const dimensionSet & dimensions() const
Return dimensions.
A class for handling words, derived from string.
static tmp< surfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
const dimensionSet dimFlux
Two-scheme Courant number based blending interpolation scheme.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
bool readScalar(const char *buf, doubleScalar &s)
Read whole of buf as a scalar. Return true if successful.
TypeName("CoBlended")
Runtime type information.
const surfaceScalarField & magSf() const
Return cell face area magnitudes.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
const dimensionSet dimMassFlux
virtual tmp< surfaceScalarField > blendingFactor(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the face-based blending factor.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Mesh data needed to do the Finite Volume discretisation.
virtual bool corrected() const
Return true if this scheme uses an explicit correction.
dimensioned< scalar > mag(const dimensioned< Type > &)
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the face-interpolate of the given cell field.
A class for managing temporary objects.
CoBlended(const fvMesh &mesh, Istream &is)
Construct from mesh and Istream.
Abstract base class for surface interpolation schemes.
const surfaceScalarField & deltaCoeffs() const
Return reference to cell-centre difference coefficients.
dimensionedScalar deltaT() const
Return time step.
tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the interpolation weighting factors.