PolyDEAL
 
Loading...
Searching...
No Matches
dealii::MatrixFreeProjector< dim, OperatorType, Number > Class Template Reference

#include <multigrid_amg.h>

Public Member Functions

 MatrixFreeProjector (const OperatorType &mf_operator_, const std::vector< TrilinosWrappers::SparseMatrix * > transfers_)
 
void compute_level_matrices (MGLevelObject< LinearOperatorMG< VectorType, VectorType > > &mg_matrices)
 

Private Types

using VectorType = LinearAlgebra::distributed::Vector<Number>
 

Private Attributes

MPI_Comm communicator
 
const OperatorType * mf_operator
 
std::vector< TrilinosWrappers::SparseMatrix * > transfer_matrices
 
std::vector< LinearOperatorMG< VectorType, VectorType > > level_operators
 
LinearOperatorMG< VectorType, VectorTypemf_linear_operator
 

Detailed Description

template<int dim, typename OperatorType, typename Number = double>
class dealii::MatrixFreeProjector< dim, OperatorType, Number >

This class is responsible for the setup of level matrices for a given (matrix-free) operator evaluation. Such level matrices are the "level matrices" to be used in a multigrid method. The difference compared to standard multilevel methods is that we construct such matrices using a Galerkin projection.

Definition at line 42 of file multigrid_amg.h.

Member Typedef Documentation

◆ VectorType

template<int dim, typename OperatorType , typename Number = double>
using dealii::MatrixFreeProjector< dim, OperatorType, Number >::VectorType = LinearAlgebra::distributed::Vector<Number>
private

Definition at line 45 of file multigrid_amg.h.

Constructor & Destructor Documentation

◆ MatrixFreeProjector()

template<int dim, typename OperatorType , typename Number = double>
dealii::MatrixFreeProjector< dim, OperatorType, Number >::MatrixFreeProjector ( const OperatorType & mf_operator_,
const std::vector< TrilinosWrappers::SparseMatrix * > transfers_ )
inline

Member Function Documentation

◆ compute_level_matrices()

template<int dim, typename OperatorType , typename Number = double>
void dealii::MatrixFreeProjector< dim, OperatorType, Number >::compute_level_matrices ( MGLevelObject< LinearOperatorMG< VectorType, VectorType > > & mg_matrices)
inline

Initialize level matrices using the operator evaluation and the transfer matrices provided in the constructor.

In particular, matrix[0]= A0, while for the other levels it holds that: matrix[l] = P_l^T A0 P_l, being P_l the injection from the fine level (indexed by 0) and level l.

Definition at line 176 of file multigrid_amg.h.

References Assert, l(), dealii::MatrixFreeProjector< dim, OperatorType, Number >::level_operators, dealii::MatrixFreeProjector< dim, OperatorType, Number >::mf_linear_operator, and transpose_operator().

Member Data Documentation

◆ communicator

template<int dim, typename OperatorType , typename Number = double>
MPI_Comm dealii::MatrixFreeProjector< dim, OperatorType, Number >::communicator
private

MPI communicator used by Trilinos objects.

Definition at line 49 of file multigrid_amg.h.

Referenced by dealii::MatrixFreeProjector< dim, OperatorType, Number >::MatrixFreeProjector().

◆ level_operators

template<int dim, typename OperatorType , typename Number = double>
std::vector<LinearOperatorMG<VectorType, VectorType> > dealii::MatrixFreeProjector< dim, OperatorType, Number >::level_operators
private

◆ mf_linear_operator

template<int dim, typename OperatorType , typename Number = double>
LinearOperatorMG<VectorType, VectorType> dealii::MatrixFreeProjector< dim, OperatorType, Number >::mf_linear_operator
private

◆ mf_operator

template<int dim, typename OperatorType , typename Number = double>
const OperatorType* dealii::MatrixFreeProjector< dim, OperatorType, Number >::mf_operator
private

Matrix-free operator evaluation.

Definition at line 54 of file multigrid_amg.h.

Referenced by dealii::MatrixFreeProjector< dim, OperatorType, Number >::MatrixFreeProjector().

◆ transfer_matrices

template<int dim, typename OperatorType , typename Number = double>
std::vector<TrilinosWrappers::SparseMatrix *> dealii::MatrixFreeProjector< dim, OperatorType, Number >::transfer_matrices
private

Vector of (pointers of) Trilinos Matrices storing two-level projections.

Definition at line 59 of file multigrid_amg.h.

Referenced by dealii::MatrixFreeProjector< dim, OperatorType, Number >::MatrixFreeProjector().


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