38class MultigridPreconditioner :
public MultigridPreconditionerBase<dim, Number>
41 typedef MultigridPreconditionerBase<dim, Number> Base;
44 typedef typename Base::MultigridNumber MultigridNumber;
53 typedef typename Base::Map_DBC Map_DBC;
54 typedef typename Base::Map_DBC_ComponentMask Map_DBC_ComponentMask;
55 typedef typename Base::PeriodicFacePairs PeriodicFacePairs;
56 typedef typename Base::VectorType VectorType;
57 typedef typename Base::VectorTypeMG VectorTypeMG;
60 MultigridPreconditioner(MPI_Comm
const & mpi_comm);
62 virtual ~MultigridPreconditioner(){};
71 dealii::FiniteElement<dim>
const & fe,
72 PDEOperator
const & pde_operator,
73 MultigridOperatorType
const & mg_operator_type,
74 bool const mesh_is_moving,
75 Map_DBC
const & dirichlet_bc,
76 Map_DBC_ComponentMask
const & dirichlet_bc_component_mask);
87 unsigned int const level,
88 unsigned int const dealii_tria_level)
final;
90 std::shared_ptr<MGOperatorBase>
91 initialize_operator(
unsigned int const level,
92 bool const use_matrix_based_operator_level,
93 bool const assemble_matrix)
final;
96 initialize_dof_handler_and_constraints(
97 bool const operator_is_singular,
98 unsigned int const n_components,
99 Map_DBC
const & dirichlet_bc,
100 Map_DBC_ComponentMask
const & dirichlet_bc_component_mask)
final;
103 initialize_transfer_operators()
final;
105 std::shared_ptr<PDEOperatorMG>
106 get_operator(
unsigned int level)
const;
108 std::shared_ptr<MultigridTransfer<dim, MultigridNumber, VectorTypeMG>> transfers_velocity;
110 unsigned int degree_velocity;
112 dealii::MGLevelObject<std::shared_ptr<dealii::DoFHandler<dim>
const>> dof_handlers_velocity;
113 dealii::MGLevelObject<std::shared_ptr<dealii::AffineConstraints<MultigridNumber>>>
114 constraints_velocity;
118 PDEOperator
const * pde_operator;
120 MultigridOperatorType mg_operator_type;
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, PDEOperator const &pde_operator, MultigridOperatorType const &mg_operator_type, bool const mesh_is_moving, Map_DBC const &dirichlet_bc, Map_DBC_ComponentMask const &dirichlet_bc_component_mask)
Definition multigrid_preconditioner.cpp:48