ryujin 2.1.1 revision b04fb4aba7bd97ddfa5994a6b4b6e8586eb15db2
Loading...
Searching...
No Matches
List of all members
ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace > Class Template Reference

#include <source/scalar_conservation/wave_speed_estimator.h>

Public Types

Typedefs and constexpr constants
using View = HyperbolicSystemView< dim, Number, MemorySpace >
 
using ScalarNumber = typename View::ScalarNumber
 
using state_type = typename View::state_type
 
using precomputed_type = typename View::precomputed_type
 
using PrecomputedVectorView = typename View::PrecomputedVectorView
 

Public Member Functions

Compute wavespeed estimates
 WaveSpeedEstimatorView (const View &view, const WaveSpeedEstimator< ScalarNumber > &wave_speed_estimator)
 
DEAL_II_HOST_DEVICE_ALWAYS_INLINE bool use_greedy_wavespeed () const
 
DEAL_II_HOST_DEVICE_ALWAYS_INLINE bool use_averaged_entropy () const
 
DEAL_II_HOST_DEVICE_ALWAYS_INLINE unsigned int random_entropies () const
 
DEAL_II_HOST_DEVICE Number compute (const Number &u_i, const Number &u_j, const precomputed_type &prec_i, const precomputed_type &prec_j, const dealii::Tensor< 1, dim, Number > &n_ij) const
 
DEAL_II_HOST_DEVICE Number compute (const PrecomputedVectorView &pv, const state_type &U_i, const state_type &U_j, const unsigned int i, const unsigned int *js, const dealii::Tensor< 1, dim, Number > &n_ij) const
 

Detailed Description

template<int dim, typename Number, typename MemorySpace>
class ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >

A view of the WaveSpeedEstimator that makes the interface available for a given dimension dim and choice of number type Number (which can be a scalar float, or double, as well as a VectorizedArray holding packed scalars).

Definition at line 172 of file wave_speed_estimator.h.

Member Typedef Documentation

◆ View

template<int dim, typename Number , typename MemorySpace >
using ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::View = HyperbolicSystemView<dim, Number, MemorySpace>

Definition at line 185 of file wave_speed_estimator.h.

◆ ScalarNumber

template<int dim, typename Number , typename MemorySpace >
using ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::ScalarNumber = typename View::ScalarNumber

Definition at line 187 of file wave_speed_estimator.h.

◆ state_type

template<int dim, typename Number , typename MemorySpace >
using ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::state_type = typename View::state_type

Definition at line 189 of file wave_speed_estimator.h.

◆ precomputed_type

template<int dim, typename Number , typename MemorySpace >
using ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::precomputed_type = typename View::precomputed_type

Definition at line 191 of file wave_speed_estimator.h.

◆ PrecomputedVectorView

template<int dim, typename Number , typename MemorySpace >
using ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::PrecomputedVectorView = typename View::PrecomputedVectorView

Definition at line 193 of file wave_speed_estimator.h.

Constructor & Destructor Documentation

◆ WaveSpeedEstimatorView()

template<int dim, typename Number , typename MemorySpace >
ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::WaveSpeedEstimatorView ( const View &  view,
const WaveSpeedEstimator< ScalarNumber > &  wave_speed_estimator 
)
inline

Constructor taking a HyperbolicSystemView and a WaveSpeedEstimator object as arguments

Definition at line 205 of file wave_speed_estimator.h.

Member Function Documentation

◆ use_greedy_wavespeed()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE bool ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::use_greedy_wavespeed ( ) const
inline

Return whether a greedy wavespeed estimate is used instead of a guaranteed upper bound on the maximal wavespeed.

Definition at line 218 of file wave_speed_estimator.h.

◆ use_averaged_entropy()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE bool ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::use_averaged_entropy ( ) const
inline

Return whether an entropy inequality on the averaged Krŭzkov entropy is enforced.

Definition at line 227 of file wave_speed_estimator.h.

◆ random_entropies()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE unsigned int ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::random_entropies ( ) const
inline

Return the number of random Krŭzkov entropies for which an entropy inequality is enforced.

Definition at line 236 of file wave_speed_estimator.h.

◆ compute() [1/2]

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::compute ( const Number &  u_i,
const Number &  u_j,
const precomputed_type &  prec_i,
const precomputed_type &  prec_j,
const dealii::Tensor< 1, dim, Number > &  n_ij 
) const

For two states u_i, u_j, precomputed values prec_i, prec_j, and a (normalized) "direction" n_ij compute an upper bound estimate for the wavespeed.

Note
Entropy inequalities for additional Krŭzkov entropies are only enforced on the host memory space.

Definition at line 291 of file wave_speed_estimator.h.

◆ compute() [2/2]

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ScalarConservation::WaveSpeedEstimatorView< dim, Number, MemorySpace >::compute ( const PrecomputedVectorView &  pv,
const state_type &  U_i,
const state_type &  U_j,
const unsigned int  i,
const unsigned int *  js,
const dealii::Tensor< 1, dim, Number > &  n_ij 
) const

For two given states U_i a U_j and a (normalized) "direction" n_ij compute an estimate for an upper bound of lambda.

Definition at line 471 of file wave_speed_estimator.h.


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