ryujin 2.1.1 revision d0a94ad2ccc0c4c2e8c2485c52b06b90e2fc9853
Public Types | Static Public Attributes | List of all members
ryujin::ShallowWater::Indicator< dim, Number > Class Template Reference

#include <source/shallow_water/indicator.h>

Public Types

using View = HyperbolicSystemView< dim, Number >
 
using precomputed_state_type = typename View::precomputed_state_type
 
using state_type = typename View::state_type
 
using flux_type = typename View::flux_type
 
using ScalarNumber = typename get_value_type< Number >::type
 
using Parameters = IndicatorParameters< ScalarNumber >
 

Public Member Functions

Stencil-based computation of indicators

Intended usage:

for (unsigned int i = n_internal; i < n_owned; ++i) {
// ...
indicator.reset(i, U_i);
for (unsigned int col_idx = 1; col_idx < row_length; ++col_idx) {
// ...
indicator.accumulate(js, U_j, c_ij);
}
indicator.alpha(hd_i);
}
void reset(const unsigned int, const state_type &U_i)
Definition: indicator.h:179
void accumulate(const unsigned int *js, const state_type &U_j, const dealii::Tensor< 1, dim, Number > &c_ij)
Definition: indicator.h:201
Number alpha(const Number h_i)
Definition: indicator.h:228
 Indicator (const HyperbolicSystem &hyperbolic_system, const Parameters &parameters, const MultiComponentVector< ScalarNumber, n_precomputed_values > &precomputed_values)
 
void reset (const unsigned int, const state_type &U_i)
 
void accumulate (const unsigned int *js, const state_type &U_j, const dealii::Tensor< 1, dim, Number > &c_ij)
 
Number alpha (const Number h_i)
 

Static Public Attributes

static constexpr unsigned int problem_dimension = View::problem_dimension
 
static constexpr unsigned int n_precomputed_values
 

Detailed Description

template<int dim, typename Number = double>
class ryujin::ShallowWater::Indicator< dim, Number >

An suitable indicator strategy that is used to form the preliminary high-order update.

Definition at line 49 of file indicator.h.

Member Typedef Documentation

◆ View

template<int dim, typename Number = double>
using ryujin::ShallowWater::Indicator< dim, Number >::View = HyperbolicSystemView<dim, Number>

A view of the HyperbolicSystem that makes methods 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.

Intended usage:

HyperbolicSystem hyperbolic_system;
const auto view = hyperbolic_system.template view<dim, Number>();
const auto flux_i = view.flux_contribution(...);
const auto flux_j = view.flux_contribution(...);
const auto flux_ij = view.flux_divergence(flux_i, flux_j, c_ij);
// etc.

Definition at line 55 of file indicator.h.

◆ precomputed_state_type

template<int dim, typename Number = double>
using ryujin::ShallowWater::Indicator< dim, Number >::precomputed_state_type = typename View::precomputed_state_type

Definition at line 65 of file indicator.h.

◆ state_type

template<int dim, typename Number = double>
using ryujin::ShallowWater::Indicator< dim, Number >::state_type = typename View::state_type

Definition at line 76 of file indicator.h.

◆ flux_type

template<int dim, typename Number = double>
using ryujin::ShallowWater::Indicator< dim, Number >::flux_type = typename View::flux_type

Definition at line 81 of file indicator.h.

◆ ScalarNumber

template<int dim, typename Number = double>
using ryujin::ShallowWater::Indicator< dim, Number >::ScalarNumber = typename get_value_type<Number>::type

Definition at line 86 of file indicator.h.

◆ Parameters

template<int dim, typename Number = double>
using ryujin::ShallowWater::Indicator< dim, Number >::Parameters = IndicatorParameters<ScalarNumber>

Definition at line 91 of file indicator.h.

Constructor & Destructor Documentation

◆ Indicator()

template<int dim, typename Number = double>
ryujin::ShallowWater::Indicator< dim, Number >::Indicator ( const HyperbolicSystem hyperbolic_system,
const Parameters parameters,
const MultiComponentVector< ScalarNumber, n_precomputed_values > &  precomputed_values 
)
inline

Constructor taking a HyperbolicSystem instance as argument

Definition at line 115 of file indicator.h.

Member Function Documentation

◆ reset()

template<int dim, typename Number >
DEAL_II_ALWAYS_INLINE void ryujin::ShallowWater::Indicator< dim, Number >::reset ( const unsigned int  i,
const state_type U_i 
)
inline

Reset temporary storage and initialize for a new row corresponding to state vector U_i.

Definition at line 179 of file indicator.h.

◆ accumulate()

template<int dim, typename Number >
DEAL_II_ALWAYS_INLINE void ryujin::ShallowWater::Indicator< dim, Number >::accumulate ( const unsigned int *  js,
const state_type U_j,
const dealii::Tensor< 1, dim, Number > &  c_ij 
)
inline

When looping over the sparsity row, add the contribution associated with the neighboring state U_j.

Definition at line 201 of file indicator.h.

◆ alpha()

template<int dim, typename Number >
DEAL_II_ALWAYS_INLINE Number ryujin::ShallowWater::Indicator< dim, Number >::alpha ( const Number  h_i)
inline

Return the computed alpha_i value.

Definition at line 228 of file indicator.h.

Member Data Documentation

◆ problem_dimension

template<int dim, typename Number = double>
constexpr unsigned int ryujin::ShallowWater::Indicator< dim, Number >::problem_dimension = View::problem_dimension
staticconstexpr

Definition at line 60 of file indicator.h.

◆ n_precomputed_values

template<int dim, typename Number = double>
constexpr unsigned int ryujin::ShallowWater::Indicator< dim, Number >::n_precomputed_values
staticconstexpr
Initial value:

Definition at line 70 of file indicator.h.


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