17 #ifndef __deal2__mg_transfer_block_h 18 #define __deal2__mg_transfer_block_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/lac/block_vector.h> 23 #include <deal.II/lac/sparsity_pattern.h> 24 #include <deal.II/lac/block_sparsity_pattern.h> 25 #include <deal.II/lac/vector_memory.h> 26 #include <deal.II/lac/block_matrix_array.h> 28 #include <deal.II/multigrid/mg_base.h> 29 #include <deal.II/multigrid/mg_constrained_dofs.h> 30 #include <deal.II/base/mg_level_object.h> 34 #include <deal.II/dofs/dof_handler.h> 36 #include <deal.II/base/std_cxx1x/shared_ptr.h> 42 template <
int dim,
int spacedim>
class DoFHandler;
94 template <
int dim,
int spacedim>
131 mutable std::vector<std::vector<types::global_dof_index> >
sizes;
151 std::vector<std_cxx1x::shared_ptr<BlockSparsityPattern> > prolongation_sparsities;
176 std::vector<std::vector<std::vector<std::pair<unsigned int, unsigned int> > > >
211 template <
typename number>
232 void initialize (
const std::vector<number> &factors,
243 template<
int dim,
int spacedim>
248 virtual void prolongate (
const unsigned int to_level,
252 virtual void restrict_and_add (
const unsigned int from_level,
271 template <
int dim,
typename number2,
int spacedim>
286 template <
int dim,
typename number2,
int spacedim>
300 template <
int dim,
typename number2,
int spacedim>
340 template <
typename number>
381 template<
int dim,
int spacedim>
390 void select (
const unsigned int block);
392 virtual void prolongate (
const unsigned int to_level,
396 virtual void restrict_and_add (
const unsigned int from_level,
405 template <
int dim,
typename number2,
int spacedim>
420 template <
int dim,
typename number2,
int spacedim>
434 template <
int dim,
typename number2,
int spacedim>
446 template <
int dim,
typename number2,
int spacedim>
462 template <
int dim,
typename number2,
int spacedim>
476 template <
int dim,
typename number2,
int spacedim>
492 template <
int dim,
class OutVector,
int spacedim>
497 const unsigned int offset)
const;
503 template <
int dim,
class OutVector,
int spacedim>
508 const unsigned int offset)
const;
514 template <
int dim,
class InVector,
int spacedim>
519 const unsigned int offset)
const;
529 template <
typename number>
533 selected_block = block;
536 DEAL_II_NAMESPACE_CLOSE
void build_matrices(const DoFHandler< dim, spacedim > &dof, const DoFHandler< dim, spacedim > &mg_dof)
std::vector< types::global_dof_index > block_start
SmartPointer< const MGConstrainedDoFs, MGTransferBlockBase > mg_constrained_dofs
std::vector< std_cxx1x::shared_ptr< BlockSparseMatrix< double > > > prolongation_matrices
std::vector< std::vector< types::global_dof_index > > sizes
std::size_t memory_consumption() const
void select(const unsigned int block)
std::vector< std::vector< std::vector< std::pair< unsigned int, unsigned int > > > > copy_indices
std::vector< unsigned int > mg_block
std::vector< std::vector< types::global_dof_index > > mg_block_start
SmartPointer< VectorMemory< Vector< number > >, MGTransferBlock< number > > memory
std::vector< number > factors
SmartPointer< const ConstraintMatrix, MGTransferBlockBase > constraints
DeclException0(ExcMatricesNotBuilt)
std::vector< bool > selected
unsigned int selected_block