ryujin 2.1.1 revision 9dcb748690310d6a540ebb8b066d1a0834fc7604
Public Types | Public Member Functions | Static Public Attributes | List of all members
ryujin::InitialValues< Description, dim, Number > Class Template Reference

#include <source/initial_values.h>

Inheritance diagram for ryujin::InitialValues< Description, dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::InitialValues< Description, dim, Number >:
Collaboration graph
[legend]

Public Types

using HyperbolicSystem = typename Description::HyperbolicSystem
 
using HyperbolicSystemView = typename HyperbolicSystem::template View< dim, Number >
 
using state_type = typename HyperbolicSystemView::state_type
 
using vector_type = MultiComponentVector< Number, problem_dimension >
 
using precomputed_state_type = typename HyperbolicSystemView::precomputed_state_type
 

Public Member Functions

 InitialValues (const HyperbolicSystem &hyperbolic_system, const OfflineData< dim, Number > &offline_data, const std::string &subsection="/InitialValues")
 
void parse_parameters_callback ()
 
DEAL_II_ALWAYS_INLINE state_type initial_state (const dealii::Point< dim > &point, Number t) const
 
vector_type interpolate (Number t=0) const
 
DEAL_II_ALWAYS_INLINE precomputed_state_type flux_contributions (const dealii::Point< dim > &point) const
 
MultiComponentVector< Number, n_precomputed_valuesinterpolate_precomputed_initial_values () const
 

Static Public Attributes

static constexpr unsigned int problem_dimension
 
static constexpr unsigned int n_precomputed_values
 

Detailed Description

template<typename Description, int dim, typename Number = double>
class ryujin::InitialValues< Description, dim, Number >

A class implementing a number of different initial value configurations.

Given a position point the member function InitialValues::initial_state() returns the corresponding (conserved) initial state. The function is used to interpolate initial values and enforce Dirichlet boundary conditions. For the latter, the the function signature has an additional parameter t denoting the current time to allow for time-dependent (in-flow) Dirichlet data.

For validation purposes a number of analytic solutions are implemented as well.

Definition at line 37 of file initial_values.h.

Member Typedef Documentation

◆ HyperbolicSystem

template<typename Description , int dim, typename Number = double>
using ryujin::InitialValues< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem

Definition at line 43 of file initial_values.h.

◆ HyperbolicSystemView

template<typename Description , int dim, typename Number = double>
using ryujin::InitialValues< Description, dim, Number >::HyperbolicSystemView = typename HyperbolicSystem::template View<dim, Number>

Definition at line 48 of file initial_values.h.

◆ state_type

template<typename Description , int dim, typename Number = double>
using ryujin::InitialValues< Description, dim, Number >::state_type = typename HyperbolicSystemView::state_type

Definition at line 60 of file initial_values.h.

◆ vector_type

template<typename Description , int dim, typename Number = double>
using ryujin::InitialValues< Description, dim, Number >::vector_type = MultiComponentVector<Number, problem_dimension>

Typedef for a MultiComponentVector storing the state U.

Definition at line 65 of file initial_values.h.

◆ precomputed_state_type

template<typename Description , int dim, typename Number = double>
using ryujin::InitialValues< Description, dim, Number >::precomputed_state_type = typename HyperbolicSystemView::precomputed_state_type

Array type used for precomputed values.

Definition at line 76 of file initial_values.h.

Constructor & Destructor Documentation

◆ InitialValues()

template<typename Description , int dim, typename Number >
ryujin::InitialValues< Description, dim, Number >::InitialValues ( const HyperbolicSystem hyperbolic_system,
const OfflineData< dim, Number > &  offline_data,
const std::string &  subsection = "/InitialValues< Description, dim, Number >" 
)

Member Function Documentation

◆ parse_parameters_callback()

template<typename Description , int dim, typename Number >
void ryujin::InitialValues< Description, dim, Number >::parse_parameters_callback

Callback for ParameterAcceptor::initialize(). After we read in configuration parameters from the parameter file we have to do some (minor) preparatory work in this class to precompute some initial state values. Do this with a callback.

Definition at line 154 of file initial_values.template.h.

◆ initial_state()

template<typename Description , int dim, typename Number = double>
DEAL_II_ALWAYS_INLINE state_type ryujin::InitialValues< Description, dim, Number >::initial_state ( const dealii::Point< dim > &  point,
Number  t 
) const
inline

Given a position point returns the corresponding (conserved) initial state. The function is used to interpolate initial values and enforce Dirichlet boundary conditions. For the latter, the the function signature has an additional parameter t denoting the current time to allow for time-dependent (in-flow) Dirichlet data.

Definition at line 104 of file initial_values.h.

◆ interpolate()

template<typename Description , int dim, typename Number >
auto ryujin::InitialValues< Description, dim, Number >::interpolate ( Number  t = 0) const

◆ flux_contributions()

template<typename Description , int dim, typename Number = double>
DEAL_II_ALWAYS_INLINE precomputed_state_type ryujin::InitialValues< Description, dim, Number >::flux_contributions ( const dealii::Point< dim > &  point) const
inline

Given a position point returns the corresponding (conserved) initial state. The function is used to interpolate initial values and enforce Dirichlet boundary conditions. For the latter, the the function signature has an additional parameter t denoting the current time to allow for time-dependent (in-flow) Dirichlet data.

Definition at line 125 of file initial_values.h.

◆ interpolate_precomputed_initial_values()

template<typename Description , int dim, typename Number >
auto ryujin::InitialValues< Description, dim, Number >::interpolate_precomputed_initial_values

This routine computes and returns a state vector populated with initial values for a specified time t.

Definition at line 281 of file initial_values.template.h.

References ryujin::MultiComponentVector< Number, n_comp, simd_length >::insert_component(), and ryujin::MultiComponentVector< Number, n_comp, simd_length >::reinit_with_scalar_partitioner().

Member Data Documentation

◆ problem_dimension

template<typename Description , int dim, typename Number = double>
constexpr unsigned int ryujin::InitialValues< Description, dim, Number >::problem_dimension
staticconstexpr
Initial value:
=
HyperbolicSystemView::problem_dimension

Definition at line 54 of file initial_values.h.

◆ n_precomputed_values

template<typename Description , int dim, typename Number = double>
constexpr unsigned int ryujin::InitialValues< Description, dim, Number >::n_precomputed_values
staticconstexpr
Initial value:
=
HyperbolicSystemView::n_precomputed_initial_values

Definition at line 70 of file initial_values.h.


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