17 #ifndef __deal2__mg_transfer_component_h 18 #define __deal2__mg_transfer_component_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/std_cxx1x/shared_ptr.h> 23 #include <deal.II/lac/block_vector.h> 24 #include <deal.II/lac/constraint_matrix.h> 25 #include <deal.II/lac/sparsity_pattern.h> 26 #include <deal.II/lac/block_sparsity_pattern.h> 27 #include <deal.II/lac/vector_memory.h> 29 #include <deal.II/base/mg_level_object.h> 30 #include <deal.II/dofs/dof_handler.h> 31 #include <deal.II/fe/component_mask.h> 32 #include <deal.II/multigrid/mg_base.h> 39 template <
int dim,
int spacedim>
class DoFHandler;
83 template <
int dim,
int spacedim>
130 mutable std::vector<std::vector<types::global_dof_index> >
sizes;
150 std::vector<std_cxx1x::shared_ptr<BlockSparsityPattern> > prolongation_sparsities;
170 std::vector<std::vector<std::pair<types::global_dof_index, unsigned int> > >
198 template <
typename number>
264 template <
int dim,
int spacedim>
267 unsigned int selected,
268 unsigned int mg_selected,
270 = std::vector<unsigned int>(),
272 = std::vector<unsigned int>(),
274 = std::vector<std::set<types::global_dof_index> >()
281 void select (
const unsigned int component,
284 virtual void prolongate (
const unsigned int to_level,
288 virtual void restrict_and_add (
const unsigned int from_level,
296 template <
int dim,
typename number2,
int spacedim>
311 template <
int dim,
typename number2,
int spacedim>
325 template <
int dim,
typename number2,
int spacedim>
335 template <
int dim,
typename number2,
int spacedim>
351 template <
int dim,
typename number2,
int spacedim>
365 template <
int dim,
typename number2,
int spacedim>
381 template <
int dim,
class OutVector,
int spacedim>
391 template <
int dim,
class OutVector,
int spacedim>
401 template <
int dim,
class InVector,
int spacedim>
405 const InVector &src)
const;
438 template <
typename number>
441 const unsigned int mg_component)
443 selected_component = component;
449 DEAL_II_NAMESPACE_CLOSE
static const unsigned int invalid_unsigned_int
std::vector< std::set< types::global_dof_index > > boundary_indices
std::size_t memory_consumption() const
std::vector< unsigned int > target_component
DeclException0(ExcMatricesNotBuilt)
void select(const unsigned int component, const unsigned int mg_component=numbers::invalid_unsigned_int)
ComponentMask mg_component_mask
std::vector< types::global_dof_index > component_start
std::vector< std::vector< bool > > interface_dofs
std::vector< std::vector< std::pair< types::global_dof_index, unsigned int > > > copy_to_and_from_indices
unsigned int mg_selected_component
std::vector< unsigned int > mg_target_component
SmartPointer< const ConstraintMatrix > constraints
ComponentMask component_mask
std::vector< std::vector< types::global_dof_index > > mg_component_start
void build_matrices(const DoFHandler< dim, spacedim > &dof, const DoFHandler< dim, spacedim > &mg_dof)
std::vector< std_cxx1x::shared_ptr< BlockSparseMatrix< double > > > prolongation_matrices
std::vector< std::vector< types::global_dof_index > > sizes
unsigned int selected_component