ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
List of all members
ryujin::SolutionTransfer< HyperbolicDescription, dim, Number > Class Template Referencefinal

#include <include/ryujin/typed/solution_transfer.h>

Inheritance diagram for ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >:
Collaboration graph
[legend]

Public Member Functions

Constructor and setup
 SolutionTransfer (const MPIEnsemble &mpi_ensemble, Discretization< dim > &discretization, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const Interface::ParabolicSystem &parabolic_system, const std::string &subsection="/SolutionTransfer")
 
 ~SolutionTransfer () override=default
 
Functions for solution transfer after mesh adaptation and for

serialization/deserialization

void prepare_projection (const StateVector< Number > &old_state_vector) override
 
void project (StateVector< Number > &new_state_vector) override
 
- Public Member Functions inherited from ryujin::Interface::SolutionTransfer< dim, Number >
unsigned int get_handle () const
 
void set_handle (unsigned int handle)
 
void reset_handle ()
 
bool has_handle () const
 

Typedefs and constexpr constants

using HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 
using Limiter = typename HyperbolicDescription::template Limiter< Number >
 
using LimiterView = auto Number >())
 
using state_type = typename View::state_type
 
using Bounds = typename LimiterView::Bounds
 
static constexpr auto problem_dimension = View::problem_dimension
 
static constexpr auto n_precomputed_values = View::n_precomputed_values
 
static constexpr unsigned int n_bounds = LimiterView::n_bounds
 

Additional Inherited Members

- Protected Member Functions inherited from ryujin::Interface::SolutionTransfer< dim, Number >
 SolutionTransfer (const std::string &subsection)
 
- Protected Attributes inherited from ryujin::Interface::SolutionTransfer< dim, Number >
unsigned int handle_
 

Detailed Description

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

The SolutionTransfer class is an adaptation of the parallel::distributed::SolutionTransfer class and method implemented in deal.II. This class is, in contrast to the deal.II version, specifically tailored to our needs:

Todo:
generalize the transfer of the dynamic state to support OfflineData::dof_handler_cg() and OfflineData::dof_handler_dg()

Definition at line 41 of file solution_transfer.h.

Member Typedef Documentation

◆ HyperbolicSystem

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

Definition at line 49 of file solution_transfer.h.

◆ View

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

Definition at line 51 of file solution_transfer.h.

◆ Limiter

template<typename HyperbolicDescription , int dim, typename Number = double>
using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::Limiter = typename HyperbolicDescription::template Limiter<Number>

Definition at line 53 of file solution_transfer.h.

◆ LimiterView

template<typename HyperbolicDescription , int dim, typename Number = double>
using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::LimiterView = auto Number>())

Definition at line 55 of file solution_transfer.h.

◆ state_type

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

Definition at line 62 of file solution_transfer.h.

◆ Bounds

template<typename HyperbolicDescription , int dim, typename Number = double>
using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::Bounds = typename LimiterView::Bounds

Array type used to store accumulated bounds.

Definition at line 72 of file solution_transfer.h.

Constructor & Destructor Documentation

◆ SolutionTransfer()

template<typename HyperbolicDescription , int dim, typename Number >
ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::SolutionTransfer ( const MPIEnsemble &  mpi_ensemble,
Discretization< dim > &  discretization,
const OfflineData< dim, Number > &  offline_data,
const HyperbolicSystem &  hyperbolic_system,
const Interface::ParabolicSystem &  parabolic_system,
const std::string &  subsection = "/SolutionTransfer< HyperbolicDescription, dim, Number >" 
)

Constructor.

Definition at line 28 of file solution_transfer.template.h.

◆ ~SolutionTransfer()

template<typename HyperbolicDescription , int dim, typename Number = double>
ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::~SolutionTransfer ( )
overridedefault

Destructor

Member Function Documentation

◆ prepare_projection()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::prepare_projection ( const StateVector< Number > &  old_state_vector)
overridevirtual

Prepare projection (and serialization) by registering a call back to all cells of the distributed triangulation. The call back attaches all necessary data to the triangulation to perform a projection after mesh adaptation, or a Triangulation::store()/load() operation.

Implements ryujin::Interface::SolutionTransfer< dim, Number >.

Definition at line 105 of file solution_transfer.template.h.

References ryujin::dynamic_state, ryujin::internal::integrate_tensor_product_value(), ryujin::precomputed, and ryujin::state.

◆ project()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::project ( StateVector< Number > &  new_state_vector)
overridevirtual

Project the data stored in the triangulation into a new state vector new_state_vector. The attached data either comes from a previous call to prepare_projection() prior to mesh adaptation or has been read back in from a checkpoint after a call to Triangulation::load().

Note
After mesh refinement all internal data structures stored in the OfflineData object must be reinitialized with a call to prepare() and the new_state_vector must be appropriately initialized with the new Partitioner.

Implements ryujin::Interface::SolutionTransfer< dim, Number >.

Definition at line 447 of file solution_transfer.template.h.

References ryujin::dynamic_state, ryujin::precomputed, ryujin::MultiComponentVector< Number >::reinit_with_vector_partitioner(), and ryujin::state.

Member Data Documentation

◆ problem_dimension

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

Definition at line 58 of file solution_transfer.h.

◆ n_precomputed_values

template<typename HyperbolicDescription , int dim, typename Number = double>
constexpr auto ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::n_precomputed_values = View::n_precomputed_values
staticconstexpr

Definition at line 60 of file solution_transfer.h.

◆ n_bounds

template<typename HyperbolicDescription , int dim, typename Number = double>
constexpr unsigned int ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::n_bounds = LimiterView::n_bounds
staticconstexpr

The number of stored entries in the bounds array.

Definition at line 67 of file solution_transfer.h.


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