Loading...
Searching...
No Matches
CoBlended< Type > Class Template Reference

Two-scheme Courant number based blending differencing scheme. More...

#include <CoBlended.H>

Inheritance diagram for CoBlended< Type >:
Collaboration diagram for CoBlended< Type >:

Public Member Functions

 TypeName ("CoBlended")
 Runtime type information.
 CoBlended (const fvMesh &mesh, Istream &is)
 Construct from mesh and Istream.
 CoBlended (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &is)
 Construct from mesh, faceFlux and Istream.
virtual tmp< surfaceScalarFieldblendingFactor (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 Return the face-based blending factor.
tmp< surfaceScalarFieldweights (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 Return the interpolation weighting factors.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 Return the face-interpolate of the given cell field.
virtual bool corrected () const
 Return true if this scheme uses an explicit correction.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 Return the explicit correction to the face-interpolate.
Public Member Functions inherited from surfaceInterpolationScheme< Type >
 TypeName ("surfaceInterpolationScheme")
 Runtime type information.
 declareRunTimeSelectionTable (tmp, surfaceInterpolationScheme, Mesh,(const fvMesh &mesh, Istream &schemeData),(mesh, schemeData))
 declareRunTimeSelectionTable (tmp, surfaceInterpolationScheme, MeshFlux,(const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData),(mesh, faceFlux, schemeData))
 surfaceInterpolationScheme (const fvMesh &mesh)
 Construct from mesh.
virtual ~surfaceInterpolationScheme ()=default
 Destructor.
const fvMeshmesh () const
 Return mesh reference.
virtual tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf) const
 Return the face-interpolate of the given cell field.
tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const tmp< GeometricField< Type, fvPatchField, volMesh > > &) const
 Return the face-interpolate of the given tmp cell field.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const tmp< GeometricField< Type, fvPatchField, volMesh > > &) const
 Return the face-interpolate of the given tmp cell field.
template<class SFType>
Foam::tmp< Foam::GeometricField< typename Foam::innerProduct< typename SFType::value_type, Type >::type, Foam::fvsPatchField, Foam::surfaceMesh > > dotInterpolate (const SFType &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf, const tmp< surfaceScalarField > &tlambdas)
tmp< GeometricField< typename innerProduct< vector, scalar >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const GeometricField< scalar, fvPatchField, volMesh > &) const
Foam::tmp< Foam::GeometricField< typename Foam::innerProduct< Foam::vector, Foam::scalar >::type, Foam::fvsPatchField, Foam::surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const GeometricField< scalar, fvPatchField, volMesh > &) const
Public Member Functions inherited from refCount
constexpr refCount () noexcept
 Default construct, initializing count to 0.
int use_count () const noexcept
 Return the current reference count.
bool unique () const noexcept
 Return true if the reference count is zero.
void operator++ () noexcept
 Increment the reference count.
void operator++ (int) noexcept
 Increment the reference count.
void operator-- () noexcept
 Decrement the reference count.
void operator-- (int) noexcept
 Decrement the reference count.
Public Member Functions inherited from blendedSchemeBase< Type >
 blendedSchemeBase ()=default
 Constructor.
virtual ~blendedSchemeBase ()=default
 Destructor.

Additional Inherited Members

Static Public Member Functions inherited from surfaceInterpolationScheme< Type >
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, Istream &schemeData)
 Return new tmp interpolation scheme.
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData)
 Return new tmp interpolation scheme.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &, const tmp< surfaceScalarField > &)
 Return the face-interpolate of the given cell field.
template<class SFType>
static tmp< GeometricField< typename innerProduct< typename SFType::value_type, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const SFType &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf, const tmp< surfaceScalarField > &tlambdas)
 Return the face-interpolate of the given cell field.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &)
 Return the face-interpolate of the given cell field.

Detailed Description

template<class Type>
class Foam::CoBlended< Type >

Two-scheme Courant number based blending differencing scheme.

Similar to localBlended but uses a blending factor computed from the face-based Courant number and the lower and upper Courant number limits supplied:

\‍[    weight = 1 - clamp((Co - Co1)/(Co2 - Co1), zero_one{})
\‍]

where

$        Co1 $=Courant number below which scheme1 is used
$        Co2 $=Courant number above which scheme2 is used

The weight applies to the first scheme and 1-weight to the second scheme.

Usage
Example of the CoBlended scheme specification using LUST for Courant numbers less than 1 and linearUpwind for Courant numbers greater than 10:
divSchemes
{
    .
    .
    div(phi,U)      Gauss CoBlended 1 LUST grad(U) 10 linearUpwind grad(U);
    .
    .
}
Source files

Definition at line 88 of file CoBlended.H.

Constructor & Destructor Documentation

◆ CoBlended() [1/2]

template<class Type>
CoBlended ( const fvMesh & mesh,
Istream & is )
inline

Construct from mesh and Istream.

The name of the flux field is read from the Istream and looked-up from the mesh objectRegistry

Definition at line 150 of file CoBlended.H.

References Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, surfaceInterpolationScheme< Type >::mesh(), and surfaceInterpolationScheme< Type >::New().

Here is the call graph for this function:

◆ CoBlended() [2/2]

template<class Type>
CoBlended ( const fvMesh & mesh,
const surfaceScalarField & faceFlux,
Istream & is )
inline

Construct from mesh, faceFlux and Istream.

Definition at line 185 of file CoBlended.H.

References Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, surfaceInterpolationScheme< Type >::mesh(), and surfaceInterpolationScheme< Type >::New().

Here is the call graph for this function:

Member Function Documentation

◆ TypeName()

template<class Type>
TypeName ( "CoBlended< Type >" )

Runtime type information.

◆ blendingFactor()

template<class Type>
virtual tmp< surfaceScalarField > blendingFactor ( const GeometricField< Type, fvPatchField, volMesh > & vf) const
inlinevirtual

Return the face-based blending factor.

Implements blendedSchemeBase< Type >.

Definition at line 220 of file CoBlended.H.

References Foam::clamp(), Foam::dimMass, Foam::dimTime, Foam::dimVolume, Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::fvc::interpolate(), Foam::mag(), surfaceInterpolationScheme< Type >::mesh(), IOobject::name(), and rho.

Referenced by correction(), interpolate(), and weights().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ weights()

template<class Type>
tmp< surfaceScalarField > weights ( const GeometricField< Type, fvPatchField, volMesh > & vf) const
inlinevirtual

Return the interpolation weighting factors.

Implements surfaceInterpolationScheme< Type >.

Definition at line 269 of file CoBlended.H.

References blendingFactor().

Here is the call graph for this function:

◆ interpolate()

template<class Type>
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate ( const GeometricField< Type, fvPatchField, volMesh > & vf) const
inlinevirtual

Return the face-interpolate of the given cell field.

with explicit correction

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 288 of file CoBlended.H.

References blendingFactor().

Here is the call graph for this function:

◆ corrected()

template<class Type>
virtual bool corrected ( ) const
inlinevirtual

Return true if this scheme uses an explicit correction.

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 304 of file CoBlended.H.

Referenced by correction().

Here is the caller graph for this function:

◆ correction()

template<class Type>
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction ( const GeometricField< Type, fvPatchField, volMesh > & vf) const
inlinevirtual

Return the explicit correction to the face-interpolate.

for the given field

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 316 of file CoBlended.H.

References blendingFactor(), corrected(), and correction().

Referenced by correction().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file:
  • src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H