deal.II version GIT relicensing-2287-g6548a49e0a 2024-12-20 18:30:00+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\}}\)
Loading...
Searching...
No Matches
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
[legend]

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.

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

Definition at line 62 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 147 of file multigrid.cc.

◆ build()

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

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 256 of file mg_transfer_component.cc.

Member Data Documentation

◆ component_mask

ComponentMask MGTransferComponentBase::component_mask
protected

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 94 of file mg_transfer_component.h.

◆ mg_component_mask

ComponentMask MGTransferComponentBase::mg_component_mask
protected

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 103 of file mg_transfer_component.h.

◆ target_component

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

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

Definition at line 108 of file mg_transfer_component.h.

◆ mg_target_component

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

Target component if renumbering of level vectors is required.

Definition at line 113 of file mg_transfer_component.h.

◆ sizes

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

Sizes of the multi-level vectors.

Definition at line 118 of file mg_transfer_component.h.

◆ component_start

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

Start index of each component.

Definition at line 123 of file mg_transfer_component.h.

◆ mg_component_start

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

Start index of each component on all levels.

Definition at line 128 of file mg_transfer_component.h.

◆ prolongation_sparsities

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

Definition at line 136 of file mg_transfer_component.h.

◆ prolongation_matrices

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

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

Definition at line 144 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
protected

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 151 of file mg_transfer_component.h.

◆ boundary_indices

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

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

Definition at line 157 of file mg_transfer_component.h.


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