16#ifndef dealii_mg_transfer_block_h
17#define dealii_mg_transfer_block_h
41template <
int dim,
int spacedim>
88 template <
int dim,
int spacedim>
101 template <
int dim,
int spacedim>
134 mutable std::vector<std::vector<types::global_dof_index>>
sizes;
168 std::vector<std::vector<std::vector<std::pair<unsigned int, unsigned int>>>>
196template <
typename number>
225 template <
int dim,
int spacedim>
228 const std::vector<bool> &
selected);
238 template <
int dim,
int spacedim>
242 const std::vector<bool> &
selected);
265 template <
int dim,
typename number2,
int spacedim>
277 template <
int dim,
typename number2,
int spacedim>
288 template <
int dim,
typename number2,
int spacedim>
323template <
typename number>
354 template <
int dim,
int spacedim>
371 template <
int dim,
int spacedim>
381 select(
const unsigned int block);
399 template <
int dim,
typename number2,
int spacedim>
411 template <
int dim,
typename number2,
int spacedim>
422 template <
int dim,
typename number2,
int spacedim>
435 template <
int dim,
typename number2,
int spacedim>
447 template <
int dim,
typename number2,
int spacedim>
458 template <
int dim,
typename number2,
int spacedim>
474 template <
int dim,
class OutVector,
int spacedim>
479 const unsigned int offset)
const;
484 template <
int dim,
class OutVector,
int spacedim>
489 const unsigned int offset)
const;
494 template <
int dim,
class InVector,
int spacedim>
498 const InVector & src,
499 const unsigned int offset)
const;
509template <
typename number>
513 selected_block = block;
std::vector< unsigned int > mg_block
std::vector< std::vector< types::global_dof_index > > sizes
void build_matrices(const DoFHandler< dim, spacedim > &dof, const DoFHandler< dim, spacedim > &mg_dof)
void build(const DoFHandler< dim, spacedim > &dof_handler)
std::vector< bool > selected
std::vector< types::global_dof_index > block_start
std::vector< std::shared_ptr< BlockSparseMatrix< double > > > prolongation_matrices
std::vector< std::shared_ptr< BlockSparsityPattern > > prolongation_sparsities
SmartPointer< const MGConstrainedDoFs, MGTransferBlockBase > mg_constrained_dofs
std::vector< std::vector< types::global_dof_index > > mg_block_start
std::size_t memory_consumption() const
std::vector< std::vector< std::vector< std::pair< unsigned int, unsigned int > > > > copy_indices
void copy_to_mg(const DoFHandler< dim, spacedim > &dof_handler, MGLevelObject< Vector< number > > &dst, const Vector< number2 > &src) const
void do_copy_to_mg(const DoFHandler< dim, spacedim > &dof_handler, MGLevelObject< Vector< number > > &dst, const InVector &src, const unsigned int offset) const
void copy_from_mg(const DoFHandler< dim, spacedim > &dof_handler, BlockVector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const
virtual ~MGTransferBlockSelect() override=default
virtual void prolongate(const unsigned int to_level, Vector< number > &dst, const Vector< number > &src) const override
void build(const DoFHandler< dim, spacedim > &dof_handler, unsigned int selected)
virtual void restrict_and_add(const unsigned int from_level, Vector< number > &dst, const Vector< number > &src) const override
void copy_from_mg_add(const DoFHandler< dim, spacedim > &dof_handler, BlockVector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const
void copy_from_mg_add(const DoFHandler< dim, spacedim > &dof_handler, Vector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const
unsigned int selected_block
std::size_t memory_consumption() const
void build_matrices(const DoFHandler< dim, spacedim > &dof, const DoFHandler< dim, spacedim > &mg_dof, unsigned int selected)
void do_copy_from_mg(const DoFHandler< dim, spacedim > &dof_handler, OutVector &dst, const MGLevelObject< Vector< number > > &src, const unsigned int offset) const
void do_copy_from_mg_add(const DoFHandler< dim, spacedim > &dof_handler, OutVector &dst, const MGLevelObject< Vector< number > > &src, const unsigned int offset) const
void select(const unsigned int block)
void copy_from_mg(const DoFHandler< dim, spacedim > &dof_handler, Vector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const
std::vector< number > factors
void copy_from_mg(const DoFHandler< dim, spacedim > &dof_handler, BlockVector< number2 > &dst, const MGLevelObject< BlockVector< number > > &src) const
virtual void prolongate(const unsigned int to_level, BlockVector< number > &dst, const BlockVector< number > &src) const override
void build(const DoFHandler< dim, spacedim > &dof_handler, const std::vector< bool > &selected)
virtual void restrict_and_add(const unsigned int from_level, BlockVector< number > &dst, const BlockVector< number > &src) const override
void copy_from_mg_add(const DoFHandler< dim, spacedim > &dof_handler, BlockVector< number2 > &dst, const MGLevelObject< BlockVector< number > > &src) const
virtual ~MGTransferBlock() override
void build_matrices(const DoFHandler< dim, spacedim > &dof, const DoFHandler< dim, spacedim > &mg_dof, const std::vector< bool > &selected)
void copy_to_mg(const DoFHandler< dim, spacedim > &dof_handler, MGLevelObject< BlockVector< number > > &dst, const BlockVector< number2 > &src) const
void initialize(const std::vector< number > &factors, VectorMemory< Vector< number > > &memory)
SmartPointer< VectorMemory< Vector< number > >, MGTransferBlock< number > > memory
#define DEAL_II_DEPRECATED
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define DeclException0(Exception0)
static ::ExceptionBase & ExcMatricesNotBuilt()