Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Types | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
fub::HllMethod< Equation, Signals > Struct Template Reference

#include <HllMethod.hpp>

Public Types

using Equation = meta::Equation< const Hll< Equation, Signals > & >
 
using Complete = ::fub::Complete< Equation >
 
using Conservative = ::fub::Conservative< Equation >
 
using CompleteArray = ::fub::CompleteArray< Equation >
 
using ConservativeArray = ::fub::ConservativeArray< Equation >
 

Public Member Functions

const Hll< Equation, Signals > & Base () const noexcept
 Returns the Implementation class which will be used to compute single fluxes. More...
 
Hll< Equation, Signals > & Base () noexcept
 Returns the Implementation class which will be used to compute single fluxes. More...
 
void ComputeNumericFluxes (const View< Conservative > &fluxes, const View< const Complete > &states, Duration dt, double dx, Direction dir)
 This function computes numerical fluxes. More...
 
void ComputeNumericFluxes (execution::SequentialTag, const View< Conservative > &fluxes, const View< const Complete > &states, Duration dt, double dx, Direction dir)
 This function computes numerical fluxes. More...
 
void ComputeNumericFluxes (execution::SimdTag, const View< Conservative > &fluxes, const View< const Complete > &states, Duration dt, double dx, Direction dir)
 This function computes numerical fluxes. More...
 
void ComputeNumericFluxes (execution::OpenMpTag, const View< Conservative > &fluxes, const View< const Complete > &states, Duration dt, double dx, Direction dir)
 This function computes numerical fluxes. More...
 
void ComputeNumericFluxes (execution::OpenMpSimdTag, const View< Conservative > &fluxes, const View< const Complete > &states, Duration dt, double dx, Direction dir)
 This function computes numerical fluxes. More...
 
double ComputeStableDt (const View< const Complete > &states, double dx, Direction dir)
 This function computes a time step size such that no signal will leave any cell covered by this view. More...
 
double ComputeStableDt (execution::SequentialTag, const View< const Complete > &states, double dx, Direction dir)
 This function computes a time step size such that no signal will leave any cell covered by this view. More...
 
double ComputeStableDt (execution::SimdTag, const View< const Complete > &states, double dx, Direction dir)
 This function computes a time step size such that no signal will leave any cell covered by this view. More...
 
double ComputeStableDt (execution::OpenMpTag, const View< const Complete > &states, double dx, Direction dir)
 This function computes a time step size such that no signal will leave any cell covered by this view. More...
 
double ComputeStableDt (execution::OpenMpSimdTag, const View< const Complete > &states, double dx, Direction dir)
 This function computes a time step size such that no signal will leave any cell covered by this view. More...
 

Static Public Member Functions

static constexpr int GetStencilWidth () noexcept
 Returns the stencil width of this flux method. More...
 
static constexpr int GetStencilSize () noexcept
 Returns the number of elements in a stencil of this flux method. More...
 

Public Attributes

std::array< Complete, StencilSizestencil_
 
Conservative numeric_flux_
 
std::array< CompleteArray, StencilSizestencil_array_
 
ConservativeArray numeric_flux_array_
 

Static Public Attributes

static constexpr int Rank
 
static constexpr std::size_t StencilSize
 Returns the number of elements in a stencil of this flux method (std::size_t version). More...
 

Member Typedef Documentation

◆ Complete

using fub::FluxMethod< Hll< Equation, Signals > >::Complete = ::fub::Complete<Equation>
inherited

◆ CompleteArray

using fub::FluxMethod< Hll< Equation, Signals > >::CompleteArray = ::fub::CompleteArray<Equation>
inherited

◆ Conservative

using fub::FluxMethod< Hll< Equation, Signals > >::Conservative = ::fub::Conservative<Equation>
inherited

◆ ConservativeArray

◆ Equation

using fub::FluxMethod< Hll< Equation, Signals > >::Equation = meta::Equation<const Hll< Equation, Signals > &>
inherited

Member Function Documentation

◆ Base() [1/2]

const Hll< Equation, Signals > & fub::FluxMethod< Hll< Equation, Signals > >::Base ( ) const
noexceptinherited

Returns the Implementation class which will be used to compute single fluxes.

◆ Base() [2/2]

Hll< Equation, Signals > & fub::FluxMethod< Hll< Equation, Signals > >::Base ( )
noexceptinherited

Returns the Implementation class which will be used to compute single fluxes.

◆ ComputeNumericFluxes() [1/5]

void fub::FluxMethod< Hll< Equation, Signals > >::ComputeNumericFluxes ( const View< Conservative > &  fluxes,
const View< const Complete > &  states,
Duration  dt,
double  dx,
Direction  dir 
)
inherited

This function computes numerical fluxes.

Parameters
[out]fluxesThe destination view where numeric fluxes will be stored at.
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dtThe time step size which will be used to compute the numerical flux.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeNumericFluxes() [2/5]

void fub::FluxMethod< Hll< Equation, Signals > >::ComputeNumericFluxes ( execution::OpenMpSimdTag  ,
const View< Conservative > &  fluxes,
const View< const Complete > &  states,
Duration  dt,
double  dx,
Direction  dir 
)
inherited

This function computes numerical fluxes.

Parameters
[out]fluxesThe destination view where numeric fluxes will be stored at.
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dtThe time step size which will be used to compute the numerical flux.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeNumericFluxes() [3/5]

void fub::FluxMethod< Hll< Equation, Signals > >::ComputeNumericFluxes ( execution::OpenMpTag  ,
const View< Conservative > &  fluxes,
const View< const Complete > &  states,
Duration  dt,
double  dx,
Direction  dir 
)
inherited

This function computes numerical fluxes.

Parameters
[out]fluxesThe destination view where numeric fluxes will be stored at.
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dtThe time step size which will be used to compute the numerical flux.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeNumericFluxes() [4/5]

void fub::FluxMethod< Hll< Equation, Signals > >::ComputeNumericFluxes ( execution::SequentialTag  ,
const View< Conservative > &  fluxes,
const View< const Complete > &  states,
Duration  dt,
double  dx,
Direction  dir 
)
inherited

This function computes numerical fluxes.

Parameters
[out]fluxesThe destination view where numeric fluxes will be stored at.
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dtThe time step size which will be used to compute the numerical flux.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeNumericFluxes() [5/5]

void fub::FluxMethod< Hll< Equation, Signals > >::ComputeNumericFluxes ( execution::SimdTag  ,
const View< Conservative > &  fluxes,
const View< const Complete > &  states,
Duration  dt,
double  dx,
Direction  dir 
)
inherited

This function computes numerical fluxes.

Parameters
[out]fluxesThe destination view where numeric fluxes will be stored at.
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dtThe time step size which will be used to compute the numerical flux.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeStableDt() [1/5]

double fub::FluxMethod< Hll< Equation, Signals > >::ComputeStableDt ( const View< const Complete > &  states,
double  dx,
Direction  dir 
)
inherited

This function computes a time step size such that no signal will leave any cell covered by this view.

Parameters
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeStableDt() [2/5]

double fub::FluxMethod< Hll< Equation, Signals > >::ComputeStableDt ( execution::OpenMpSimdTag  ,
const View< const Complete > &  states,
double  dx,
Direction  dir 
)
inherited

This function computes a time step size such that no signal will leave any cell covered by this view.

Parameters
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeStableDt() [3/5]

double fub::FluxMethod< Hll< Equation, Signals > >::ComputeStableDt ( execution::OpenMpTag  ,
const View< const Complete > &  states,
double  dx,
Direction  dir 
)
inherited

This function computes a time step size such that no signal will leave any cell covered by this view.

Parameters
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeStableDt() [4/5]

double fub::FluxMethod< Hll< Equation, Signals > >::ComputeStableDt ( execution::SequentialTag  ,
const View< const Complete > &  states,
double  dx,
Direction  dir 
)
inherited

This function computes a time step size such that no signal will leave any cell covered by this view.

Parameters
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ ComputeStableDt() [5/5]

double fub::FluxMethod< Hll< Equation, Signals > >::ComputeStableDt ( execution::SimdTag  ,
const View< const Complete > &  states,
double  dx,
Direction  dir 
)
inherited

This function computes a time step size such that no signal will leave any cell covered by this view.

Parameters
[in]statesA view over cell states which will be used to fill the stencil for this method.
[in]dirThe direction parameter specifies which directional flux method to use.
[in]dxThe cell width size which will be used to compute the numerical flux.

◆ GetStencilSize()

constexpr int fub::FluxMethod< Hll< Equation, Signals > >::GetStencilSize
staticconstexprnoexceptinherited

Returns the number of elements in a stencil of this flux method.

◆ GetStencilWidth()

constexpr int fub::FluxMethod< Hll< Equation, Signals > >::GetStencilWidth
staticconstexprnoexceptinherited

Returns the stencil width of this flux method.

Member Data Documentation

◆ numeric_flux_

Conservative fub::FluxMethod< Hll< Equation, Signals > >::numeric_flux_
inherited

◆ numeric_flux_array_

ConservativeArray fub::FluxMethod< Hll< Equation, Signals > >::numeric_flux_array_
inherited

◆ Rank

constexpr int fub::FluxMethod< Hll< Equation, Signals > >::Rank
staticconstexprinherited

◆ stencil_

std::array<Complete, StencilSize> fub::FluxMethod< Hll< Equation, Signals > >::stencil_
inherited

◆ stencil_array_

std::array<CompleteArray, StencilSize> fub::FluxMethod< Hll< Equation, Signals > >::stencil_array_
inherited

◆ StencilSize

constexpr std::size_t fub::FluxMethod< Hll< Equation, Signals > >::StencilSize
staticconstexprinherited

Returns the number of elements in a stencil of this flux method (std::size_t version).


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