3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Member Functions | Static Public Member Functions | List of all members
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. More...
 
std::string tvdApproachToString (TvdApproach tvd)
 return the name of the TVD approach More...
 
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. More...
 
std::string differencingSchemeToString (DifferencingScheme differencingScheme)
 return the name of the Discretization Method More...
 
Scalar upwind (const Scalar downstreamMomentum, const Scalar upstreamMomentum) const
 Upwind Method. More...
 
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. More...
 
Scalar tvdUniform (const std::array< Scalar, 3 > &momenta, const std::array< Scalar, 3 > &distances, const bool selfIsUpstream) const
 Tvd Scheme: Total Variation Diminishing. More...
 
Scalar tvdLi (const std::array< Scalar, 3 > &momenta, const std::array< Scalar, 3 > &distances, const bool selfIsUpstream) const
 Tvd Scheme: Total Variation Diminishing. More...
 
Scalar tvdHou (const std::array< Scalar, 3 > &momenta, const std::array< Scalar, 3 > &distances, const bool selfIsUpstream) const
 Tvd Scheme: Total Variation Diminishing. More...
 
const TvdApproachtvdApproach () const
 Returns the Tvd approach. More...
 
const DifferencingSchemedifferencingScheme () const
 Returns the differencing scheme. More...
 

Static Public Member Functions

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

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>
static Scalar Dumux::StaggeredUpwindMethods< Scalar, upwindSchemeOrder >::mclimiter ( const Scalar  r,
const Scalar  R 
)
inlinestatic

◆ minmod()

template<class Scalar , int upwindSchemeOrder>
static 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>
static 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>
static 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>
static 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>
static 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>
static 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: