| 
    Finite Volume Solver
    prototype
    
   A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin. 
   | 
 
#include <GodunovMethod.hpp>
Public Types | |
| using | Equation = meta::Equation< const Godunov< Equation, ExactRiemannSolver< Equation > > & > | 
| using | Complete = ::fub::Complete< Equation > | 
| using | Conservative = ::fub::Conservative< Equation > | 
| using | CompleteArray = ::fub::CompleteArray< Equation > | 
| using | ConservativeArray = ::fub::ConservativeArray< Equation > | 
| using | RiemannSolver = RiemannSolverT | 
Public Member Functions | |
| double | ComputeStableDt (span< const Complete, 2 > states, double dx, Direction dir) | 
| Array1d | ComputeStableDt (span< const CompleteArray, 2 > states, double dx, Direction dir) | 
| Array1d | ComputeStableDt (span< const CompleteArray, 2 > states, Array1d face_fraction, span< const Array1d, 2 > volume_fraction, double dx, Direction dir) | 
| const Equation & | GetEquation () const noexcept | 
| Equation & | GetEquation () noexcept | 
| const RiemannSolver & | GetRiemannSolver () const noexcept | 
| RiemannSolver & | GetRiemannSolver () noexcept | 
| void | ComputeNumericFlux (Conservative &numeric_flux, span< const Complete, 2 > states, Duration, double, Direction dir) | 
| void | ComputeNumericFlux (ConservativeArray &numeric_flux, span< const CompleteArray, 2 > states, Duration, double, Direction dir) | 
| void | ComputeNumericFlux (ConservativeArray &numeric_flux, Array1d face_fraction, span< const CompleteArray, 2 > states, span< const Array1d, 2 > volume_fraction, Duration, double, Direction dir) | 
| const Godunov< Equation, ExactRiemannSolver< Equation > > & | Base () const noexcept | 
| Returns the Implementation class which will be used to compute single fluxes.  More... | |
| Godunov< Equation, ExactRiemannSolver< Equation > > & | 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, StencilSize > | stencil_ | 
| Conservative | numeric_flux_ | 
| std::array< CompleteArray, StencilSize > | stencil_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... | |
Private Attributes | |
| Equation | equation_ | 
| RiemannSolver | riemann_solver_ | 
| Complete | riemann_solution_ | 
| CompleteArray | riemann_solution_arr_ | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  noexceptinherited | 
Returns the Implementation class which will be used to compute single fluxes.
      
  | 
  noexceptinherited | 
Returns the Implementation class which will be used to compute single fluxes.
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
This function computes numerical fluxes.
| [out] | fluxes | The destination view where numeric fluxes will be stored at. | 
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dt | The time step size which will be used to compute the numerical flux. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes numerical fluxes.
| [out] | fluxes | The destination view where numeric fluxes will be stored at. | 
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dt | The time step size which will be used to compute the numerical flux. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes numerical fluxes.
| [out] | fluxes | The destination view where numeric fluxes will be stored at. | 
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dt | The time step size which will be used to compute the numerical flux. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes numerical fluxes.
| [out] | fluxes | The destination view where numeric fluxes will be stored at. | 
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dt | The time step size which will be used to compute the numerical flux. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes numerical fluxes.
| [out] | fluxes | The destination view where numeric fluxes will be stored at. | 
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dt | The time step size which will be used to compute the numerical flux. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes a time step size such that no signal will leave any cell covered by this view.
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes a time step size such that no signal will leave any cell covered by this view.
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes a time step size such that no signal will leave any cell covered by this view.
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes a time step size such that no signal will leave any cell covered by this view.
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
This function computes a time step size such that no signal will leave any cell covered by this view.
| [in] | states | A view over cell states which will be used to fill the stencil for this method. | 
| [in] | dir | The direction parameter specifies which directional flux method to use. | 
| [in] | dx | The cell width size which will be used to compute the numerical flux. | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  noexceptinherited | 
      
  | 
  noexceptinherited | 
      
  | 
  noexceptinherited | 
      
  | 
  noexceptinherited | 
      
  | 
  staticconstexprnoexceptinherited | 
Returns the number of elements in a stencil of this flux method.
      
  | 
  staticconstexprnoexceptinherited | 
Returns the stencil width of this flux method.
      
  | 
  privateinherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  staticconstexprinherited | 
      
  | 
  privateinherited | 
      
  | 
  privateinherited | 
      
  | 
  privateinherited | 
      
  | 
  inherited | 
      
  | 
  inherited | 
      
  | 
  staticconstexprinherited | 
Returns the number of elements in a stencil of this flux method (std::size_t version).