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

Multi-faceZone based blending differencing scheme. More...

#include <zoneBlended.H>

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

Public Member Functions

 TypeName ("zoneBlended")
 Runtime type information.
 zoneBlended (const fvMesh &mesh, Istream &is)
 Construct from mesh and Istream.
 zoneBlended (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &is)
 Construct from mesh, faceFlux and Istream.
virtual tmp< surfaceScalarFieldblendingFactor (const VolumeField &vf) const
 Return the face-based blending factor.
tmp< surfaceScalarFieldweights (const VolumeField &vf) const
 Return the interpolation weighting factors.
tmp< SurfaceField > interpolate (const VolumeField &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< SurfaceField > correction (const VolumeField &vf) const
 Return the explicit correction to the face-interpolate for the given field.
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< surfaceScalarFieldweights (const GeometricField< Type, fvPatchField, volMesh > &) const =0
 Return the interpolation weighting factors for the given field.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction (const GeometricField< Type, fvPatchField, volMesh > &) const
 Return the explicit correction to the face-interpolate.
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.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &) const
 Return the face-interpolate of the given 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.
virtual tmp< surfaceScalarFieldblendingFactor (const GeometricField< Type, fvPatchField, volMesh > &vf) const =0
 Return the face-based blending factor.

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::zoneBlended< Type >

Multi-faceZone based blending differencing scheme.

Schemes are set in dictonary format according to:

divSchemes
{
    .
    .
    div(phi,U)      Gauss zoneBlended
    {
        default         defaultScheme;
        faceZone1       scheme1;
        faceZone2       scheme2;
        ...
        faceZoneN       schemeN;
    }
    .
    .
}

The default entry specifies the background scheme; additional schemes can be set per faceZone, e.g. scheme1 is applied to facZone1, scheme2 is applied to facZone2 etc.

Usage
Example of the zoneBlended scheme to use linearUpwind as the background scheme and upwind in faceZone1:
divSchemes
{
    .
    .
    div(phi,U)      Gauss zoneBlended 
    {
        default         linearUpwind grad(U); 
        faceZone1       upwind;
    };
    .
    .
}
Source files

Definition at line 97 of file zoneBlended.H.

Constructor & Destructor Documentation

◆ zoneBlended() [1/2]

template<class Type>
zoneBlended ( 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 197 of file zoneBlended.H.

References dict, and surfaceInterpolationScheme< Type >::mesh().

Here is the call graph for this function:

◆ zoneBlended() [2/2]

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

Construct from mesh, faceFlux and Istream.

Definition at line 213 of file zoneBlended.H.

References dict, and surfaceInterpolationScheme< Type >::mesh().

Here is the call graph for this function:

Member Function Documentation

◆ TypeName()

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

Runtime type information.

◆ blendingFactor()

template<class Type>
virtual tmp< surfaceScalarField > blendingFactor ( const VolumeField & vf) const
inlinevirtual

◆ weights()

template<class Type>
tmp< surfaceScalarField > weights ( const VolumeField & vf) const
inline

Return the interpolation weighting factors.

Definition at line 281 of file zoneBlended.H.

References Foam::dimless, DimensionedField< Type, GeoMesh >::mesh(), surfaceInterpolationScheme< Type >::mesh(), GeometricField< scalar, fvsPatchField, surfaceMesh >::New(), and weights().

Referenced by interpolate(), and weights().

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

◆ interpolate()

template<class Type>
tmp< SurfaceField > interpolate ( const VolumeField & vf) const
inline

Return the face-interpolate of the given cell field.

with explicit correction

Definition at line 314 of file zoneBlended.H.

References surfaceInterpolationScheme< Type >::interpolate(), and weights().

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 328 of file zoneBlended.H.

◆ correction()

template<class Type>
virtual tmp< SurfaceField > correction ( const VolumeField & vf) const
inlinevirtual

Return the explicit correction to the face-interpolate for the given field.

Definition at line 338 of file zoneBlended.H.

References DimensionedField< Type, GeoMesh >::dimensions(), DimensionedField< Type, GeoMesh >::mesh(), surfaceInterpolationScheme< Type >::mesh(), GeometricField< Type, fvsPatchField, surfaceMesh >::New(), and Foam::Zero.

Here is the call graph for this function:

The documentation for this class was generated from the following files:
  • src/finiteVolume/interpolation/surfaceInterpolation/schemes/zoneBlended/zoneBlended.H
  • src/finiteVolume/interpolation/surfaceInterpolation/schemes/zoneBlended/zoneBlendedTemplates.C