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

#include <source/shallow_water/wave_speed_estimator.h>

Public Member Functions

Compute wavespeed estimates
 WaveSpeedEstimatorView (const View &view, const WaveSpeedEstimator< ScalarNumber > &)
 
DEAL_II_HOST_DEVICE Number compute (const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) 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
 

Typedefs and constexpr constants

using View = HyperbolicSystemView< dim, Number, MemorySpace >
 
using ScalarNumber = typename View::ScalarNumber
 
using state_type = typename View::state_type
 
using primitive_type = typename std::array< Number, riemann_data_size >
 
using PrecomputedVectorView = typename View::PrecomputedVectorView
 
static constexpr unsigned int riemann_data_size = 3
 

Internal methods

DEAL_II_HOST_DEVICE Number compute_h_star (const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
 
DEAL_II_HOST_DEVICE Number f (const primitive_type &primitive_state, const Number &h_star) const
 
DEAL_II_HOST_DEVICE Number phi (const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number &h) const
 
DEAL_II_HOST_DEVICE Number lambda1_minus (const primitive_type &riemann_data, const Number h_star) const
 
DEAL_II_HOST_DEVICE Number lambda3_plus (const primitive_type &riemann_data, const Number h_star) const
 
DEAL_II_HOST_DEVICE Number compute_lambda (const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number h_star) const
 
DEAL_II_HOST_DEVICE primitive_type riemann_data_from_state (const state_type &U, const dealii::Tensor< 1, dim, Number > &n_ij) const
 

Detailed Description

template<int dim, typename Number, typename MemorySpace>
class ryujin::ShallowWater::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 101 of file wave_speed_estimator.h.

Member Typedef Documentation

◆ View

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

Definition at line 114 of file wave_speed_estimator.h.

◆ ScalarNumber

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

Definition at line 116 of file wave_speed_estimator.h.

◆ state_type

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

Definition at line 118 of file wave_speed_estimator.h.

◆ primitive_type

template<int dim, typename Number , typename MemorySpace >
using ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::primitive_type = typename std::array<Number, riemann_data_size>

The array type to store the expanded primitive state for the Riemann solver \([\rho, v, p, a]\)

Definition at line 130 of file wave_speed_estimator.h.

◆ PrecomputedVectorView

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

Definition at line 132 of file wave_speed_estimator.h.

Constructor & Destructor Documentation

◆ WaveSpeedEstimatorView()

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

Constructor taking a HyperbolicSystemView and a WaveSpeedEstimator object as arguments

Definition at line 144 of file wave_speed_estimator.h.

Member Function Documentation

◆ compute() [1/2]

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::compute ( const primitive_type &  riemann_data_i,
const primitive_type &  riemann_data_j 
) const

For two given 1D primitive states riemann_data_i and riemann_data_j, compute an estimation of an upper bound for the maximum wavespeed lambda.

Definition at line 228 of file wave_speed_estimator.h.

◆ compute() [2/2]

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::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 estimation of an upper bound for lambda.

Definition at line 243 of file wave_speed_estimator.h.

◆ f()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::f ( const primitive_type &  primitive_state,
const Number &  h_star 
) const
protected

Definition at line 259 of file wave_speed_estimator.h.

References ryujin::compare_and_apply_mask().

◆ phi()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::phi ( const primitive_type &  riemann_data_i,
const primitive_type &  riemann_data_j,
const Number &  h 
) const
protected

Definition at line 280 of file wave_speed_estimator.h.

◆ lambda1_minus()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::lambda1_minus ( const primitive_type &  riemann_data,
const Number  h_star 
) const
protected

Definition at line 298 of file wave_speed_estimator.h.

References ryujin::positive_part().

◆ lambda3_plus()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::lambda3_plus ( const primitive_type &  riemann_data,
const Number  h_star 
) const
protected

Definition at line 313 of file wave_speed_estimator.h.

References ryujin::positive_part().

◆ compute_lambda()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::compute_lambda ( const primitive_type &  riemann_data_i,
const primitive_type &  riemann_data_j,
const Number  h_star 
) const
protected

Definition at line 328 of file wave_speed_estimator.h.

References ryujin::negative_part(), and ryujin::positive_part().

◆ compute_h_star()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::compute_h_star ( const primitive_type &  riemann_data_i,
const primitive_type &  riemann_data_j 
) const

◆ riemann_data_from_state()

template<int dim, typename Number , typename MemorySpace >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE auto ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::riemann_data_from_state ( const state_type &  U,
const dealii::Tensor< 1, dim, Number > &  n_ij 
) const
protected

Definition at line 440 of file wave_speed_estimator.h.

Member Data Documentation

◆ riemann_data_size

template<int dim, typename Number , typename MemorySpace >
constexpr unsigned int ryujin::ShallowWater::WaveSpeedEstimatorView< dim, Number, MemorySpace >::riemann_data_size = 3
staticconstexpr

Number of components in a primitive state, we store \([\rho, v, p, a]\), thus, 4.

Definition at line 124 of file wave_speed_estimator.h.


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