16 #ifndef dealii_solution_transfer_h 17 #define dealii_solution_transfer_h 23 #include <deal.II/base/config.h> 24 #include <deal.II/base/smartpointer.h> 25 #include <deal.II/lac/vector.h> 26 #include <deal.II/base/exceptions.h> 27 #include <deal.II/dofs/dof_handler.h> 31 DEAL_II_NAMESPACE_OPEN
297 static_assert (dim == DoFHandlerType::dimension,
298 "The dimension explicitly provided as a template " 299 "argument, and the dimension of the DoFHandlerType " 300 "template argument must match.");
354 VectorType &out)
const;
375 void interpolate (
const std::vector<VectorType> &all_in,
376 std::vector<VectorType> &all_out)
const;
388 VectorType &out)
const;
400 "You are attempting an operation for which this object is " 401 "not prepared. This may be because you either did not call " 402 "one of the prepare_*() functions at all, or because you " 403 "called the wrong one for the operation you are currently " 410 "You are attempting to call one of the prepare_*() functions " 411 "of this object to prepare it for an operation for which it " 412 "is already prepared. Specifically, the object was " 413 "previously prepared for pure refinement.");
419 "You are attempting to call one of the prepare_*() functions " 420 "of this object to prepare it for an operation for which it " 421 "is already prepared. Specifically, the object was " 422 "previously prepared for both coarsening and refinement.");
483 Pointerstruct() : indices_ptr(
nullptr), dof_values_ptr(
nullptr), active_fe_index(0) {}
484 Pointerstruct(std::vector<types::global_dof_index> *indices_ptr_in,
485 const unsigned int active_fe_index_in = 0)
487 indices_ptr(indices_ptr_in),
488 dof_values_ptr (
nullptr),
489 active_fe_index(active_fe_index_in) {}
491 const unsigned int active_fe_index_in = 0) :
492 indices_ptr (
nullptr),
493 dof_values_ptr(dof_values_ptr_in),
494 active_fe_index(active_fe_index_in) {}
495 std::size_t memory_consumption ()
const;
497 std::vector<types::global_dof_index> *indices_ptr;
498 std::vector<Vector<typename VectorType::value_type> > *dof_values_ptr;
499 unsigned int active_fe_index;
518 DEAL_II_NAMESPACE_CLOSE
types::global_dof_index n_dofs_old
static ::ExceptionBase & ExcAlreadyPrepForRef()
static ::ExceptionBase & ExcNotPrepared()
std::map< std::pair< unsigned int, unsigned int >, Pointerstruct > cell_map
std::vector< std::vector< types::global_dof_index > > indices_on_cell
unsigned int global_dof_index
void prepare_for_pure_refinement()
#define DeclExceptionMsg(Exception, defaulttext)
static ::ExceptionBase & ExcAlreadyPrepForCoarseAndRef()
SolutionTransfer(const DoFHandlerType &dof)
SmartPointer< const DoFHandlerType, SolutionTransfer< dim, VectorType, DoFHandlerType > > dof_handler
void prepare_for_coarsening_and_refinement(const std::vector< VectorType > &all_in)
void refine_interpolate(const VectorType &in, VectorType &out) const
std::vector< std::vector< Vector< typename VectorType::value_type > > > dof_values_on_cell
std::size_t memory_consumption() const
PreparationState prepared_for
void interpolate(const std::vector< VectorType > &all_in, std::vector< VectorType > &all_out) const