Reference documentation for deal.II version GIT 35969cdc9b 2023-12-09 01:10:02+00:00
\(\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:
Inheritance graph

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 int > target_component
std::vector< unsigned int > mg_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 63 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 148 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 95 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 104 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 109 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 114 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 119 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 124 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 129 of file mg_transfer_component.h.

◆ prolongation_sparsities

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

Definition at line 137 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 145 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 152 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 158 of file mg_transfer_component.h.

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