Public Member Functions | Protected Member Functions | List of all members
weightedFlux< Type > Class Template Reference

Weighted flux interpolation scheme class. More...

Inheritance diagram for weightedFlux< Type >:
Inheritance graph
[legend]
Collaboration diagram for weightedFlux< Type >:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("weightedFlux")
 
 weightedFlux (const fvMesh &mesh, Istream &is)
 
 weightedFlux (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &is)
 
virtual ~weightedFlux ()
 
tmp< surfaceScalarFieldweights (const GeometricField< Type, fvPatchField, volMesh > &) const
 
const surfaceScalarFieldoDelta () const
 
const surfaceScalarFieldnDelta () const
 
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 
- Public Member Functions inherited from surfaceInterpolationScheme< Type >
 TypeName ("surfaceInterpolationScheme")
 
 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)
 
virtual ~surfaceInterpolationScheme ()=default
 
const fvMeshmesh () const
 
virtual bool corrected () const
 
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction (const GeometricField< Type, fvPatchField, volMesh > &) const
 
virtual tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf) const
 
tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const tmp< GeometricField< Type, fvPatchField, volMesh >> &) const
 
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const tmp< GeometricField< Type, fvPatchField, volMesh >> &) const
 
- Public Member Functions inherited from refCount
constexpr refCount () noexcept
 
int count () const noexcept
 
bool unique () const noexcept
 
void operator++ () noexcept
 
void operator++ (int) noexcept
 
void operator-- () noexcept
 
void operator-- (int) noexcept
 

Protected Member Functions

void clearOut ()
 

Additional Inherited Members

- Static Public Member Functions inherited from surfaceInterpolationScheme< Type >
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, Istream &schemeData)
 
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData)
 
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &, const tmp< surfaceScalarField > &)
 
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)
 
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &)
 

Detailed Description

template<class Type>
class Foam::weightedFlux< Type >

Weighted flux interpolation scheme class.

This scheme is used to compute fluxes with variable diffusivity or conductivity, as e.g.

When using the Gauss theorem to compute a gradient, cell centred values need to be interpolated to the faces. Using this scheme, temperature (T) is weighted by thermal conductivity when being interpolated. Similarly, velocity is weighted by diffusivity (D) and the electric potential by the electric conductivity (sigma). Lambda, D or sigma are read from the object registry - the names need to be specified in fvSchemes as e.g.

    gradSchemes
    {
        grad(T)             Gauss weightedFlux lambda;
        grad(u)             Gauss weightedFlux D;
        grad(potential)     Gauss weightedFlux sigma;
    }

For more details, see equation 16 and 17 in

    Weber, N., Beckstein, P., Galindo, V., Starace, M. & Weier, T. (2018).
    Electro-vortex flow simulation using coupled meshes.
    Computers and Fluids 168, 101-109.
    doi:10.1016/j.compfluid.2018.03.047
    https://arxiv.org/pdf/1707.06546.pdf
Note
For support, contact Norbe.nosp@m.rt.W.nosp@m.eber@.nosp@m.hzdr.nosp@m..de
Source files

Definition at line 82 of file weightedFlux.H.

Constructor & Destructor Documentation

◆ weightedFlux() [1/2]

weightedFlux ( const fvMesh mesh,
Istream is 
)
inline

Definition at line 131 of file weightedFlux.H.

◆ weightedFlux() [2/2]

weightedFlux ( const fvMesh mesh,
const surfaceScalarField faceFlux,
Istream is 
)
inline

Definition at line 145 of file weightedFlux.H.

◆ ~weightedFlux()

~weightedFlux
virtual

Definition at line 37 of file weightedFlux.C.

Member Function Documentation

◆ clearOut()

void clearOut
protected

Definition at line 27 of file weightedFlux.C.

References Foam::deleteDemandDrivenData().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "weightedFlux< Type >"  )

◆ weights()

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

Implements surfaceInterpolationScheme< Type >.

Definition at line 167 of file weightedFlux.H.

References surfaceInterpolationScheme< Type >::mesh().

Here is the call graph for this function:

◆ oDelta()

const surfaceScalarField& oDelta ( ) const
inline

Definition at line 175 of file weightedFlux.H.

◆ nDelta()

const surfaceScalarField& nDelta ( ) const
inline

Definition at line 186 of file weightedFlux.H.

◆ interpolate()

Foam::tmp< Foam::GeometricField< Type, Foam::fvsPatchField, Foam::surfaceMesh > > interpolate ( const GeometricField< Type, fvPatchField, volMesh > &  vf) const
virtual

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 147 of file weightedFlux.C.

References GeometricField::boundaryField(), GeometricField::boundaryFieldRef(), fvsPatchField::coupled(), forAll, mesh, and Foam::New().

Here is the call graph for this function:

The documentation for this class was generated from the following files: