ExaDG
Loading...
Searching...
No Matches
ExaDG::Poisson::MultigridPreconditioner< dim, Number, n_components > Class Template Reference
Inheritance diagram for ExaDG::Poisson::MultigridPreconditioner< dim, Number, n_components >:
ExaDG::MultigridPreconditionerBase< dim, Number, MultigridNumber_ > ExaDG::PreconditionerBase< Number >

Public Types

typedef Base::MultigridNumber MultigridNumber
Public Types inherited from ExaDG::MultigridPreconditionerBase< dim, Number, MultigridNumber_ >
typedef MultigridNumber_ MultigridNumber
Public Types inherited from ExaDG::PreconditionerBase< Number >
typedef dealii::LinearAlgebra::distributed::Vector< Number > VectorType

Public Member Functions

 MultigridPreconditioner (MPI_Comm const &mpi_comm)
void initialize (MultigridData const &mg_data, std::shared_ptr< Grid< dim > const > grid, std::shared_ptr< MultigridMappings< dim, Number > > const multigrid_mappings, dealii::FiniteElement< dim > const &fe, LaplaceOperatorData< rank, dim > const &data, bool const mesh_is_moving, Map_DBC const &dirichlet_bc, Map_DBC_ComponentMask const &dirichlet_bc_component_mask)
void update () final
Public Member Functions inherited from ExaDG::MultigridPreconditionerBase< dim, Number, MultigridNumber_ >
 MultigridPreconditionerBase (MPI_Comm const &comm)
void initialize (MultigridData const &data, std::shared_ptr< Grid< dim > const > grid, std::shared_ptr< MultigridMappings< dim, Number > > const multigrid_mappings, dealii::FiniteElement< dim > const &fe, bool const operator_is_singular, Map_DBC const &dirichlet_bc, Map_DBC_ComponentMask const &dirichlet_bc_component_mask, bool const initialize_preconditioners)
void update () override
void vmult (VectorType &dst, VectorType const &src) const override
unsigned int solve (VectorType &dst, VectorType const &src) const
virtual void apply_smoother_on_fine_level (VectorTypeMG &dst, VectorTypeMG const &src) const
std::shared_ptr< TimerTreeget_timings () const override
Public Member Functions inherited from ExaDG::PreconditionerBase< Number >
bool needs_update () const

Additional Inherited Members

Protected Types inherited from ExaDG::MultigridPreconditionerBase< dim, Number, MultigridNumber_ >
typedef std::map< dealii::types::boundary_id, std::shared_ptr< dealii::Function< dim > > > Map_DBC
typedef std::map< dealii::types::boundary_id, dealii::ComponentMask > Map_DBC_ComponentMask
typedef std::vector< dealii::GridTools::PeriodicFacePair< typename dealii::Triangulation< dim >::cell_iterator > > PeriodicFacePairs
typedef dealii::LinearAlgebra::distributed::Vector< Number > VectorType
typedef dealii::LinearAlgebra::distributed::Vector< MultigridNumber > VectorTypeMG
Protected Member Functions inherited from ExaDG::MultigridPreconditionerBase< dim, Number, MultigridNumber_ >
void initialize_mapping ()
virtual void initialize_matrix_free_objects ()
void update_matrix_free_objects ()
void update_smoothers ()
void update_coarse_solver ()
virtual void initialize_dof_handler_and_constraints (bool is_singular, unsigned int const n_components, Map_DBC const &dirichlet_bc, Map_DBC_ComponentMask const &dirichlet_bc_component_mask)
void do_initialize_dof_handler_and_constraints (bool is_singular, unsigned int const n_components, Map_DBC const &dirichlet_bc, Map_DBC_ComponentMask const &dirichlet_bc_component_mask, dealii::MGLevelObject< std::shared_ptr< dealii::DoFHandler< dim > const > > &dofhandlers, dealii::MGLevelObject< std::shared_ptr< dealii::AffineConstraints< MultigridNumber > > > &constraints)
virtual void initialize_transfer_operators ()
void do_initialize_transfer_operators (std::shared_ptr< MultigridTransfer< dim, MultigridNumber, VectorTypeMG > > &transfers, unsigned int const dof_index)
unsigned int get_number_of_levels () const
dealii::Mapping< dim > const & get_mapping (unsigned int const h_level) const
void for_all_levels (std::function< void(unsigned int const)> const &function_on_level)
void for_all_smoothing_levels (std::function< void(unsigned int const)> const &function_on_level)
void transfer_from_fine_to_coarse_levels (std::function< void(unsigned int const, unsigned int const)> const &levelwise_transfer)
Protected Attributes inherited from ExaDG::MultigridPreconditionerBase< dim, Number, MultigridNumber_ >
std::shared_ptr< Grid< dim > const > grid
std::shared_ptr< MultigridMappings< dim, Number > > multigrid_mappings
dealii::MGLevelObject< std::shared_ptr< dealii::DoFHandler< dim > const > > dof_handlers
dealii::MGLevelObject< std::shared_ptr< dealii::AffineConstraints< MultigridNumber > > > constraints
dealii::MGLevelObject< std::shared_ptr< MatrixFreeData< dim, MultigridNumber > > > matrix_free_data_objects
dealii::MGLevelObject< std::shared_ptr< dealii::MatrixFree< dim, MultigridNumber > > > matrix_free_objects
dealii::MGLevelObject< std::shared_ptr< Operator > > operators
std::shared_ptr< MultigridTransfer< dim, MultigridNumber, VectorTypeMG > > transfers
std::vector< MGLevelInfolevel_info
Protected Attributes inherited from ExaDG::PreconditionerBase< Number >
bool update_needed

Member Function Documentation

◆ update()

template<int dim, typename Number, int n_components>
void ExaDG::Poisson::MultigridPreconditioner< dim, Number, n_components >::update ( )
finalvirtual

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