8#include <compile_time_options.h>
14#include <deal.II/base/parameter_acceptor.h>
15#include <deal.II/base/smartpointer.h>
29 template <
typename Description,
int dim,
typename Number =
double>
77 const std::string &subsection =
"/SolutionTransfer");
107 handle_ != dealii::numbers::invalid_unsigned_int,
108 dealii::ExcMessage(
"Invalid handle: Cannot retrieve a valid "
109 "handle. get_handle() can only be called after a "
110 "call to prepare_projection(), or set_handle()."));
122 handle_ == dealii::numbers::invalid_unsigned_int,
123 dealii::ExcMessage(
"Invalid state: Cannot set handle because we "
124 "already have a valid handle due to a prior call "
125 "to prepare_projection(), or set_handle()."));
136 handle_ = dealii::numbers::invalid_unsigned_int;
171 dealii::SmartPointer<const OfflineData<dim, Number>> offline_data_;
172 dealii::SmartPointer<const HyperbolicSystem> hyperbolic_system_;
173 dealii::SmartPointer<const ParabolicSystem> parabolic_system_;
175 unsigned int handle_;
188 const dealii::types::global_dof_index global_i);
197 const dealii::types::global_dof_index global_i);
std::array< Number, n_bounds > Bounds
typename View::HyperbolicVector HyperbolicVector
SolutionTransfer(const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem ¶bolic_system, const std::string &subsection="/SolutionTransfer")
unsigned int get_handle() const
Vectors::ScalarVector< Number > ScalarVector
Description::template Limiter< dim, Number >::Bounds Bounds
typename View::state_type state_type
typename Description::ParabolicSystem ParabolicSystem
~SolutionTransfer() override=default
typename Description::template HyperbolicSystemView< dim, Number > View
static constexpr unsigned int n_bounds
void prepare_projection(const StateVector &old_state_vector)
static constexpr auto problem_dimension
void set_handle(unsigned int handle)
typename Description::HyperbolicSystem HyperbolicSystem
void project(StateVector &new_state_vector)
typename View::StateVector StateVector
dealii::LinearAlgebra::distributed::Vector< Number > ScalarVector
std::tuple< MultiComponentVector< Number, problem_dim >, MultiComponentVector< Number, prec_dim >, BlockVector< Number > > StateVector
Euler::HyperbolicSystem HyperbolicSystem
ryujin::StubParabolicSystem ParabolicSystem