![]() |
ryujin 2.1.1 revision 46bf70e400e423a8ffffe8300887eeb35b8dfb2c
|
#include <source/solution_transfer.h>


Public Member Functions | |
Constructor and setup | |
| SolutionTransfer (const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem ¶bolic_system, const std::string &subsection="/SolutionTransfer") | |
| ~SolutionTransfer () override=default | |
Methods for solution transfer after mesh adaptation and | |
serialization/deserialization. | |
| void | prepare_projection (const StateVector &old_state_vector) |
| unsigned int | get_handle () const |
| void | set_handle (unsigned int handle) |
| void | reset_handle () |
| void | project (StateVector &new_state_vector) |
Typedefs and constexpr constants | |
| using | HyperbolicSystem = typename Description::HyperbolicSystem |
| using | ParabolicSystem = typename Description::ParabolicSystem |
| using | View = typename Description::template HyperbolicSystemView< dim, Number > |
| using | state_type = typename View::state_type |
| using | StateVector = typename View::StateVector |
| using | HyperbolicVector = typename View::HyperbolicVector |
| using | ScalarVector = Vectors::ScalarVector< Number > |
| using | Bounds = typename Description::template Limiter< dim, Number >::Bounds |
| static constexpr auto | problem_dimension = View::problem_dimension |
| static constexpr unsigned int | n_bounds |
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 taylored to our needs:
Definition at line 30 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem |
Definition at line 38 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem |
Definition at line 39 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::View = typename Description::template HyperbolicSystemView<dim, Number> |
Definition at line 41 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::state_type = typename View::state_type |
Definition at line 46 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::StateVector = typename View::StateVector |
Definition at line 48 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::HyperbolicVector = typename View::HyperbolicVector |
Definition at line 49 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::ScalarVector = Vectors::ScalarVector<Number> |
Definition at line 51 of file solution_transfer.h.
| using ryujin::SolutionTransfer< Description, dim, Number >::Bounds = typename Description::template Limiter<dim, Number>::Bounds |
Array type used to store accumulated bounds.
Definition at line 62 of file solution_transfer.h.
| ryujin::SolutionTransfer< Description, dim, Number >::SolutionTransfer | ( | const MPIEnsemble & | mpi_ensemble, |
| const OfflineData< dim, Number > & | offline_data, | ||
| const HyperbolicSystem & | hyperbolic_system, | ||
| const ParabolicSystem & | parabolic_system, | ||
| const std::string & | subsection = "/SolutionTransfer< Description, dim, Number >" |
||
| ) |
Constructor
Definition at line 37 of file solution_transfer.template.h.
|
overridedefault |
Destructor
| void ryujin::SolutionTransfer< Description, dim, Number >::prepare_projection | ( | const StateVector & | old_state_vector | ) |
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.
Definition at line 125 of file solution_transfer.template.h.
|
inline |
Return the handle associated with the call back that was set by prepare_projection() and the associated data attached to the triangulation.
Definition at line 104 of file solution_transfer.h.
|
inline |
Set the handle associated data attached to the triangulation. This function has to be called after a Triangulation::load() operation and prior to the SolutionTransfer::project().
Definition at line 119 of file solution_transfer.h.
|
inline |
Return the handle associated with the call back that was set by prepare_projection() and the associated data attached to the triangulation.
Definition at line 134 of file solution_transfer.h.
| void ryujin::SolutionTransfer< Description, dim, Number >::project | ( | StateVector & | new_state_vector | ) |
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. Definition at line 444 of file solution_transfer.template.h.
References ryujin::add(), ryujin::ScalarConservation::Limiter< dim, Number >::combine_bounds(), ryujin::ScalarConservation::Limiter< dim, Number >::fully_relax_bounds(), ryujin::ScalarConservation::Limiter< dim, Number >::limit(), ryujin::ScalarConservation::Limiter< dim, Number >::projection_bounds_from_state(), RYUJIN_PARALLEL_REGION_BEGIN, and RYUJIN_PARALLEL_REGION_END.
|
staticconstexpr |
Definition at line 44 of file solution_transfer.h.
|
staticconstexpr |
The number of stored entries in the bounds array.
Definition at line 56 of file solution_transfer.h.