Reference documentation for deal.II version Git 5a2787e538 2021-09-21 14:55:10 -0600
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Attributes | List of all members
MGTransferComponentBase Class Reference

#include <deal.II/multigrid/mg_transfer_component.h>

Inheritance diagram for MGTransferComponentBase:

Public Member Functions

std::size_t memory_consumption () const

Protected Member Functions

template<int dim, int spacedim>
void build (const DoFHandler< dim, spacedim > &dof_handler)

Static Protected Member Functions

static ::ExceptionBaseExcMatricesNotBuilt ()

Protected Attributes

ComponentMask component_mask
ComponentMask mg_component_mask
std::vector< unsigned inttarget_component
std::vector< unsigned intmg_target_component
std::vector< std::vector< types::global_dof_index > > sizes
std::vector< types::global_dof_indexcomponent_start
std::vector< std::vector< types::global_dof_index > > mg_component_start
std::vector< std::shared_ptr< BlockSparseMatrix< double > > > prolongation_matrices
std::vector< std::vector< std::pair< types::global_dof_index, unsigned int > > > copy_to_and_from_indices
std::vector< std::set< types::global_dof_index > > boundary_indices

Private Attributes

std::vector< std::shared_ptr< BlockSparsityPattern > > prolongation_sparsities

Detailed Description

Implementation of matrix generation for component wise multigrid transfer.

MGTransferBlockBase is probably the more logical class. Still eventually, a class should be developed allowing to select multiple components.

Definition at line 61 of file mg_transfer_component.h.

Member Function Documentation

◆ memory_consumption()

std::size_t MGTransferComponentBase::memory_consumption ( ) const

Memory used by this object.

Definition at line 149 of file

◆ build()

template<int dim, int spacedim>
void MGTransferComponentBase::build ( const DoFHandler< dim, spacedim > &  dof_handler)

Actually build the prolongation matrices for each level.

This function is only called by derived classes. These can also set the member variables selected_component and mg_selected_component member variables to restrict the transfer matrices to certain components. Furthermore, they use target_component and mg_target_component for re-ordering and grouping of components.

Definition at line 257 of file

Member Data Documentation

◆ component_mask

ComponentMask MGTransferComponentBase::component_mask

Flag of selected components.

The transfer operators only act on the components having a true entry here. If renumbering by target_component is used, this refers to the renumbered components.

Definition at line 93 of file mg_transfer_component.h.

◆ mg_component_mask

ComponentMask MGTransferComponentBase::mg_component_mask

Flag of selected components.

The transfer operators only act on the components having a true entry here. If renumbering by mg_target_component is used, this refers to the renumbered components.

Definition at line 102 of file mg_transfer_component.h.

◆ target_component

std::vector<unsigned int> MGTransferComponentBase::target_component

Target component of the fine-level vector if renumbering is required.

Definition at line 107 of file mg_transfer_component.h.

◆ mg_target_component

std::vector<unsigned int> MGTransferComponentBase::mg_target_component

Target component if renumbering of level vectors is required.

Definition at line 112 of file mg_transfer_component.h.

◆ sizes

std::vector<std::vector<types::global_dof_index> > MGTransferComponentBase::sizes

Sizes of the multi-level vectors.

Definition at line 117 of file mg_transfer_component.h.

◆ component_start

std::vector<types::global_dof_index> MGTransferComponentBase::component_start

Start index of each component.

Definition at line 122 of file mg_transfer_component.h.

◆ mg_component_start

std::vector<std::vector<types::global_dof_index> > MGTransferComponentBase::mg_component_start

Start index of each component on all levels.

Definition at line 127 of file mg_transfer_component.h.

◆ prolongation_sparsities

std::vector<std::shared_ptr<BlockSparsityPattern> > MGTransferComponentBase::prolongation_sparsities

Definition at line 135 of file mg_transfer_component.h.

◆ prolongation_matrices

std::vector<std::shared_ptr<BlockSparseMatrix<double> > > MGTransferComponentBase::prolongation_matrices

The actual prolongation matrix. column indices belong to the dof indices of the mother cell, i.e. the coarse level. while row indices belong to the child cell, i.e. the fine level.

Definition at line 143 of file mg_transfer_component.h.

◆ copy_to_and_from_indices

std::vector<std::vector<std::pair<types::global_dof_index, unsigned int> > > MGTransferComponentBase::copy_to_and_from_indices

This variable holds the mapping for the copy_to/from_mg-functions. The data is first the global index, then the level index.

Definition at line 150 of file mg_transfer_component.h.

◆ boundary_indices

std::vector<std::set<types::global_dof_index> > MGTransferComponentBase::boundary_indices

Store the boundary_indices. These are needed for the boundary values in the restriction matrix.

Definition at line 156 of file mg_transfer_component.h.

The documentation for this class was generated from the following files: