![]() |
ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
|
#include <include/ryujin/typed/solution_transfer.h>


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 ¶bolic_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_ |
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:
Definition at line 41 of file solution_transfer.h.
| using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem |
Definition at line 49 of file solution_transfer.h.
| using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number> |
Definition at line 51 of file solution_transfer.h.
| using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::Limiter = typename HyperbolicDescription::template Limiter<Number> |
Definition at line 53 of file solution_transfer.h.
| using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::LimiterView = auto Number>()) |
Definition at line 55 of file solution_transfer.h.
| using ryujin::SolutionTransfer< HyperbolicDescription, dim, Number >::state_type = typename View::state_type |
Definition at line 62 of file solution_transfer.h.
| 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.
| 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.
|
overridedefault |
Destructor
|
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.
|
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().
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.
|
staticconstexpr |
Definition at line 58 of file solution_transfer.h.
|
staticconstexpr |
Definition at line 60 of file solution_transfer.h.
|
staticconstexpr |
The number of stored entries in the bounds array.
Definition at line 67 of file solution_transfer.h.