ryujin 2.1.1 revision d0a94ad2ccc0c4c2e8c2485c52b06b90e2fc9853
Public Types | Public Member Functions | Static Public Attributes | List of all members
ryujin::SolutionTransfer< Description, dim, Number > Class Template Referencefinal

#include <source/solution_transfer.h>

Public Types

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

Public Member Functions

 SolutionTransfer (const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system)
 
void prepare_for_interpolation (const vector_type &U)
 
void interpolate (vector_type &U)
 

Static Public Attributes

static constexpr unsigned int problem_dimension = View::problem_dimension
 

Detailed Description

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

A solution transfer class that interpolates a given state U (in conserved variables) to a refined/coarsened mesh. The class first transforms the conserved state into primitive variables and then interpolates/restricts the primitive state field via deal.II's SolutionTransfer mechanism.

Definition at line 27 of file solution_transfer.h.

Member Typedef Documentation

◆ HyperbolicSystem

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

Definition at line 33 of file solution_transfer.h.

◆ View

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

Definition at line 38 of file solution_transfer.h.

◆ state_type

template<typename Description , int dim, typename Number = double>
using ryujin::SolutionTransfer< Description, dim, Number >::state_type = typename View::state_type

Definition at line 49 of file solution_transfer.h.

◆ scalar_type

template<typename Description , int dim, typename Number = double>
using ryujin::SolutionTransfer< Description, dim, Number >::scalar_type = typename OfflineData<dim, Number>::scalar_type

Shorthand typedef for dealii::LinearAlgebra::distributed::Vector<Number>.

Definition at line 54 of file solution_transfer.h.

◆ vector_type

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

Typedef for a MultiComponentVector storing the state U.

Definition at line 59 of file solution_transfer.h.

Constructor & Destructor Documentation

◆ SolutionTransfer()

template<typename Description , int dim, typename Number = double>
ryujin::SolutionTransfer< Description, dim, Number >::SolutionTransfer ( const OfflineData< dim, Number > &  offline_data,
const HyperbolicSystem hyperbolic_system 
)
inline

Constructor.

Definition at line 64 of file solution_transfer.h.

Member Function Documentation

◆ prepare_for_interpolation()

template<typename Description , int dim, typename Number = double>
void ryujin::SolutionTransfer< Description, dim, Number >::prepare_for_interpolation ( const vector_type U)
inline

Read in a state vector (in conserved quantities). The function populates an auxiliary distributed vectors that store the given state in primitive variables and then calls the underlying deal.II SolutionTransfer::prepare_for_coarsening_and_refinement();

This function has to be called before the actual grid refinement.

Definition at line 80 of file solution_transfer.h.

References ryujin::MultiComponentVector< Number, n_comp, simd_length >::extract_component(), and ryujin::SolutionTransfer< Description, dim, Number >::problem_dimension.

◆ interpolate()

template<typename Description , int dim, typename Number = double>
void ryujin::SolutionTransfer< Description, dim, Number >::interpolate ( vector_type U)
inline

Finalize the state vector transfer by calling SolutionTransfer::interpolate() and repopulating the state vector (in conserved quantities).

This function has to be called after the actual grid refinement.

Definition at line 115 of file solution_transfer.h.

References ryujin::MultiComponentVector< Number, n_comp, simd_length >::insert_component(), and ryujin::SolutionTransfer< Description, dim, Number >::problem_dimension.

Member Data Documentation

◆ problem_dimension

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

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