ryujin 2.1.1 revision 71cbe157f0746717db03d7e1e977da66a7d7bfb5
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
ryujin::ShallowWater::HyperbolicSystem Class Referencefinal

#include <source/shallow_water/hyperbolic_system.h>

Inheritance diagram for ryujin::ShallowWater::HyperbolicSystem:
Inheritance graph
[legend]
Collaboration diagram for ryujin::ShallowWater::HyperbolicSystem:
Collaboration graph
[legend]

Classes

struct  Parameters
 

Public Types

template<int dim, typename Number = double, typename MemorySpace = dealii::MemorySpace::Host>
using View = HyperbolicSystemView< dim, Number, MemorySpace >
 

Public Member Functions

 HyperbolicSystem (const std::string &subsection="/HyperbolicSystem")
 
template<int dim, typename Number , typename MemorySpace = dealii::MemorySpace::Host>
auto view () const
 
template<typename MemorySpace = dealii::MemorySpace::Host, int dim, typename ScalarNumber >
void fill_precomputed_values (const OfflineData< dim, ScalarNumber > &offline_data, StateVector< ScalarNumber > &state_vector, const bool skip_constrained_dofs=true) const
 

Static Public Attributes

static const std::string problem_name = "Shallow water equations"
 

Internal fields, methods, and friends

template<int , typename , typename >
class HyperbolicSystemView
 

Detailed Description

Description of a dim dimensional hyperbolic conservation law modeling the shallow water equations.

We have a (1 + dim) dimensional state space \([h, \textbf m]\), where \(h\) denotes the water depth, abd \(\textbf m\) is the momentum.

Definition at line 45 of file hyperbolic_system.h.

Member Typedef Documentation

◆ View

template<int dim, typename Number = double, typename MemorySpace = dealii::MemorySpace::Host>
using ryujin::ShallowWater::HyperbolicSystem::View = HyperbolicSystemView<dim, Number, MemorySpace>

Alias for the view on the hyperbolic system for a given dimension dim, choice of number type Number, and memory space MemorySpace.

Definition at line 79 of file hyperbolic_system.h.

Constructor & Destructor Documentation

◆ HyperbolicSystem()

ryujin::ShallowWater::HyperbolicSystem::HyperbolicSystem ( const std::string &  subsection = "/HyperbolicSystem")
inline

Constructor.

Definition at line 672 of file hyperbolic_system.h.

Member Function Documentation

◆ view()

template<int dim, typename Number , typename MemorySpace = dealii::MemorySpace::Host>
auto ryujin::ShallowWater::HyperbolicSystem::view ( ) const
inline

Return a view on the Hyperbolic System 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. The optional MemorySpace template parameter selects whether the view is intended for the host or device memory space.

Definition at line 91 of file hyperbolic_system.h.

Referenced by fill_precomputed_values().

◆ fill_precomputed_values()

template<typename MemorySpace , int dim, typename ScalarNumber >
void ryujin::ShallowWater::HyperbolicSystem::fill_precomputed_values ( const OfflineData< dim, ScalarNumber > &  offline_data,
StateVector< ScalarNumber > &  state_vector,
const bool  skip_constrained_dofs = true 
) const
inline

Part of step 1 of the hyperbolic update step: Compute "precomputed values" and fill into the state vector.

Note
The method does not update the ghost range of the state vector. The precomputed part has to be synchronized by explicitly calling the update ghost values function.

Definition at line 711 of file hyperbolic_system.h.

References ryujin::OfflineData< dim, Number >::n_locally_internal(), ryujin::OfflineData< dim, Number >::n_locally_owned(), ryujin::pow(), ryujin::StateVector< Number >::precomputed, ryujin::OfflineData< dim, Number >::sparsity_pattern_simd(), and view().

Friends And Related Symbol Documentation

◆ HyperbolicSystemView

template<int , typename , typename >
friend class HyperbolicSystemView
friend

Definition at line 121 of file hyperbolic_system.h.

Member Data Documentation

◆ problem_name

const std::string ryujin::ShallowWater::HyperbolicSystem::problem_name = "Shallow water equations"
inlinestatic

The name of the hyperbolic system as a string.

Definition at line 51 of file hyperbolic_system.h.


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