ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
ryujin::ScalarConservation::HyperbolicSystem Class Referencefinal

#include <include/ryujin/scalar_conservation/hyperbolic_system.h>

Inheritance diagram for ryujin::ScalarConservation::HyperbolicSystem:
Inheritance graph
[legend]
Collaboration diagram for ryujin::ScalarConservation::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 Types inherited from ryujin::Interface::HyperbolicSystem
using Names = std::array< std::vector< std::string >, 3 >
 

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
 
- Public Member Functions inherited from ryujin::Interface::HyperbolicSystem
const std::vector< std::string > & state_names (const unsigned int dim) const
 
const std::vector< std::string > & precomputed_names (const unsigned int dim) const
 
const std::vector< std::string > & primitive_names (const unsigned int dim) const
 
const std::vector< std::string > & initial_precomputed_names (const unsigned int dim) const
 

Internal fields, methods, and friends

template<int , typename , typename >
class HyperbolicSystemView
 

Additional Inherited Members

- Protected Member Functions inherited from ryujin::Interface::HyperbolicSystem
 HyperbolicSystem (const std::string &problem_name, const Names &state_names, const Names &primitive_names, const Names &precomputed_names, const Names &initial_precomputed_names, const std::string &subsection)
 
- Protected Attributes inherited from ryujin::Interface::HyperbolicSystem
std::string problem_name_
 
Names state_names_
 
Names precomputed_names_
 
Names primitive_names_
 
Names initial_precomputed_names_
 

Detailed Description

A scalar conservation equation for a state \(u\) with a user specified flux \(f(u)\).

Definition at line 44 of file hyperbolic_system.h.

Member Typedef Documentation

◆ View

template<int dim, typename Number = double, typename MemorySpace = dealii::MemorySpace::Host>
using ryujin::ScalarConservation::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 68 of file hyperbolic_system.h.

Constructor & Destructor Documentation

◆ HyperbolicSystem()

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

Constructor.

Definition at line 530 of file hyperbolic_system.h.

Member Function Documentation

◆ view()

template<int dim, typename Number , typename MemorySpace = dealii::MemorySpace::Host>
auto ryujin::ScalarConservation::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 80 of file hyperbolic_system.h.

Referenced by fill_precomputed_values().

◆ fill_precomputed_values()

template<typename MemorySpace , int dim, typename ScalarNumber >
void ryujin::ScalarConservation::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.
The flux and its gradient are computed with the selected flux on the host memory space. If MemorySpace is the default (device) memory space the state vector is thus temporarily transferred to the host memory space.

Definition at line 583 of file hyperbolic_system.h.

References ryujin::have_separate_memory_spaces, ryujin::ScalarConservation::HyperbolicSystemView< dim, Number, MemorySpace >::n_precomputed_values, ryujin::StateVector< Number >::precomputed, ryujin::precomputed, ryujin::StateVector< Number >::state, and view().

Friends And Related Symbol Documentation

◆ HyperbolicSystemView

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

Definition at line 127 of file hyperbolic_system.h.


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