3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder > Class Template Reference

This file contains different higher order methods for approximating the velocity. More...

#include <dumux/freeflow/staggeredupwindmethods.hh>

Description

template<class Scalar, int upwindSchemeOrder>
class Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >

This file contains different higher order methods for approximating the velocity.

Public Member Functions

 StaggeredUpwindMethods (const std::string &paramGroup="")
TvdApproach tvdApproachFromString (const std::string &tvd)
 Convenience function to convert user input given as std::string to the corresponding enum class used for choosing the TVD Approach.
std::string tvdApproachToString (TvdApproach tvd)
 return the name of the TVD approach
DifferencingScheme differencingSchemeFromString (const std::string &differencingScheme)
 Convenience function to convert user input given as std::string to the corresponding enum class used for choosing the Discretization Method.
std::string differencingSchemeToString (DifferencingScheme differencingScheme)
 return the name of the Discretization Method
Scalar upwind (const Scalar downstreamMomentum, const Scalar upstreamMomentum) const
 Upwind Method.
Scalar tvd (const std::array< Scalar, 3 > &momenta, const std::array< Scalar, 3 > &distances, const bool selfIsUpstream, const TvdApproach tvdApproach) const
 Tvd Scheme: Total Variation Diminishing.
Scalar tvdUniform (const std::array< Scalar, 3 > &momenta, const std::array< Scalar, 3 > &distances, const bool selfIsUpstream) const
 Tvd Scheme: Total Variation Diminishing.
Scalar tvdLi (const std::array< Scalar, 3 > &momenta, const std::array< Scalar, 3 > &distances, const bool selfIsUpstream) const
 Tvd Scheme: Total Variation Diminishing.
Scalar tvdHou (const std::array< Scalar, 3 > &momenta, const std::array< Scalar, 3 > &distances, const bool selfIsUpstream) const
 Tvd Scheme: Total Variation Diminishing.
const TvdApproach & tvdApproach () const
 Returns the Tvd approach.
const DifferencingScheme & differencingScheme () const
 Returns the differencing scheme.

Static Public Member Functions

static Scalar vanleer (const Scalar r, const Scalar R)
 Van Leer flux limiter function [Van Leer 1974].
static Scalar vanalbada (const Scalar r, const Scalar R)
 Van Albada flux limiter function [Van Albada et al. 1982].
static Scalar minmod (const Scalar r, const Scalar R)
 MinMod flux limiter function [Roe 1985].
static Scalar superbee (const Scalar r, const Scalar R)
 SUPERBEE flux limiter function [Roe 1985].
static Scalar umist (const Scalar r, const Scalar R)
 UMIST flux limiter function [Lien and Leschziner 1993].
static Scalar mclimiter (const Scalar r, const Scalar R)
static Scalar wahyd (const Scalar r, const Scalar R)
 WAHYD Scheme [Hou, Simons, Hinkelmann 2007];.

Constructor & Destructor Documentation

◆ StaggeredUpwindMethods()

template<class Scalar, int upwindSchemeOrder>
Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::StaggeredUpwindMethods ( const std::string & paramGroup = "")
inline

Member Function Documentation

◆ differencingScheme()

template<class Scalar, int upwindSchemeOrder>
const DifferencingScheme & Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::differencingScheme ( ) const
inline

Returns the differencing scheme.

◆ differencingSchemeFromString()

template<class Scalar, int upwindSchemeOrder>
DifferencingScheme Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::differencingSchemeFromString ( const std::string & differencingScheme)
inline

Convenience function to convert user input given as std::string to the corresponding enum class used for choosing the Discretization Method.

◆ differencingSchemeToString()

template<class Scalar, int upwindSchemeOrder>
std::string Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::differencingSchemeToString ( DifferencingScheme differencingScheme)
inline

return the name of the Discretization Method

◆ mclimiter()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::mclimiter ( const Scalar r,
const Scalar R )
inlinestatic

◆ minmod()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::minmod ( const Scalar r,
const Scalar R )
inlinestatic

MinMod flux limiter function [Roe 1985].

◆ superbee()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::superbee ( const Scalar r,
const Scalar R )
inlinestatic

SUPERBEE flux limiter function [Roe 1985].

With R != 2 is the modified SUPERBEE flux limiter function [Hou, Simons, Hinkelmann 2007]

◆ tvd()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::tvd ( const std::array< Scalar, 3 > & momenta,
const std::array< Scalar, 3 > & distances,
const bool selfIsUpstream,
const TvdApproach tvdApproach ) const
inline

Tvd Scheme: Total Variation Diminishing.

◆ tvdApproach()

template<class Scalar, int upwindSchemeOrder>
const TvdApproach & Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::tvdApproach ( ) const
inline

Returns the Tvd approach.

◆ tvdApproachFromString()

template<class Scalar, int upwindSchemeOrder>
TvdApproach Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::tvdApproachFromString ( const std::string & tvd)
inline

Convenience function to convert user input given as std::string to the corresponding enum class used for choosing the TVD Approach.

◆ tvdApproachToString()

template<class Scalar, int upwindSchemeOrder>
std::string Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::tvdApproachToString ( TvdApproach tvd)
inline

return the name of the TVD approach

◆ tvdHou()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::tvdHou ( const std::array< Scalar, 3 > & momenta,
const std::array< Scalar, 3 > & distances,
const bool selfIsUpstream ) const
inline

Tvd Scheme: Total Variation Diminishing.

This function manages the non uniformities of the grid according to [Hou, Simons, Hinkelmann 2007]. It should behave better then the Li's version in very stretched grids.

◆ tvdLi()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::tvdLi ( const std::array< Scalar, 3 > & momenta,
const std::array< Scalar, 3 > & distances,
const bool selfIsUpstream ) const
inline

Tvd Scheme: Total Variation Diminishing.

This function manages the non uniformities of the grid according to [Li, Liao 2007]. It tries to reconstruct the value for the velocity at the upstream-upstream point if the grid was uniform.

◆ tvdUniform()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::tvdUniform ( const std::array< Scalar, 3 > & momenta,
const std::array< Scalar, 3 > & distances,
const bool selfIsUpstream ) const
inline

Tvd Scheme: Total Variation Diminishing.

This function assumes the cell size distribution to be uniform.

◆ umist()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::umist ( const Scalar r,
const Scalar R )
inlinestatic

UMIST flux limiter function [Lien and Leschziner 1993].

◆ upwind()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::upwind ( const Scalar downstreamMomentum,
const Scalar upstreamMomentum ) const
inline

Upwind Method.

◆ vanalbada()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::vanalbada ( const Scalar r,
const Scalar R )
inlinestatic

Van Albada flux limiter function [Van Albada et al. 1982].

◆ vanleer()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::vanleer ( const Scalar r,
const Scalar R )
inlinestatic

Van Leer flux limiter function [Van Leer 1974].

With R != 2 is the modified Van Leer flux limiter function [Hou, Simons, Hinkelmann 2007]

◆ wahyd()

template<class Scalar, int upwindSchemeOrder>
Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::wahyd ( const Scalar r,
const Scalar R )
inlinestatic

WAHYD Scheme [Hou, Simons, Hinkelmann 2007];.


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