30class MultigridOperator :
public MultigridOperatorBase<dim, Number>
33 typedef MultigridOperatorBase<dim, Number> Base;
34 typedef typename Base::value_type value_type;
35 typedef typename Base::VectorType VectorType;
37 MultigridOperator(std::shared_ptr<Operator> op) : pde_operator(op)
41 virtual ~MultigridOperator()
45 std::shared_ptr<Operator>
46 get_pde_operator()
const
48 AssertThrow(pde_operator.get() != 0, dealii::ExcMessage(
"Invalid pointer"));
53 dealii::AffineConstraints<typename Operator::value_type>
const &
54 get_affine_constraints()
const final
56 return pde_operator->get_affine_constraints();
59 dealii::MatrixFree<dim, Number>
const &
60 get_matrix_free()
const final
62 return pde_operator->get_matrix_free();
66 get_dof_index()
const final
68 return pde_operator->get_dof_index();
71 dealii::types::global_dof_index
74 return pde_operator->m();
77 dealii::types::global_dof_index
80 return pde_operator->n();
84 el(
unsigned int const i,
unsigned int const j)
const final
86 return pde_operator->el(i, j);
90 initialize_dof_vector(VectorType & vector)
const final
92 pde_operator->initialize_dof_vector(vector);
96 vmult(VectorType & dst, VectorType
const & src)
const final
98 pde_operator->vmult(dst, src);
102 vmult_add(VectorType & dst, VectorType
const & src)
const final
104 pde_operator->vmult_add(dst, src);
108 vmult_interface_down(VectorType & dst, VectorType
const & src)
const final
110 pde_operator->vmult_interface_down(dst, src);
114 vmult_add_interface_up(VectorType & dst, VectorType
const & src)
const final
116 pde_operator->vmult_add_interface_up(dst, src);
120 calculate_inverse_diagonal(VectorType & inverse_diagonal_entries)
const final
122 pde_operator->calculate_inverse_diagonal(inverse_diagonal_entries);
126 initialize_block_diagonal_preconditioner(
bool const initialize)
const final
128 pde_operator->initialize_block_diagonal_preconditioner(initialize);
132 update_block_diagonal_preconditioner()
const final
134 pde_operator->update_block_diagonal_preconditioner();
138 apply_inverse_block_diagonal(VectorType & dst, VectorType
const & src)
const final
140 pde_operator->apply_inverse_block_diagonal(dst, src);
144 apply_inverse_additive_schwarz_matrices(VectorType & dst, VectorType
const & src)
const final
146 pde_operator->apply_inverse_additive_schwarz_matrices(dst, src);
150 compute_factorized_additive_schwarz_matrices()
const final
152 pde_operator->compute_factorized_additive_schwarz_matrices();
155#ifdef DEAL_II_WITH_TRILINOS
157 init_system_matrix(dealii::TrilinosWrappers::SparseMatrix & system_matrix,
158 MPI_Comm
const & mpi_comm)
const final
160 pde_operator->init_system_matrix(system_matrix, mpi_comm);
164 calculate_system_matrix(dealii::TrilinosWrappers::SparseMatrix & system_matrix)
const final
166 pde_operator->calculate_system_matrix(system_matrix);
170#ifdef DEAL_II_WITH_PETSC
172 init_system_matrix(dealii::PETScWrappers::MPI::SparseMatrix & system_matrix,
173 MPI_Comm
const & mpi_comm)
const final
175 pde_operator->init_system_matrix(system_matrix, mpi_comm);
179 calculate_system_matrix(dealii::PETScWrappers::MPI::SparseMatrix & system_matrix)
const final
181 pde_operator->calculate_system_matrix(system_matrix);
186 get_constant_modes(std::vector<std::vector<bool>> & constant_modes,
187 std::vector<std::vector<double>> & constant_modes_values)
const final
189 pde_operator->get_constant_modes(constant_modes, constant_modes_values);
193 std::shared_ptr<Operator> pde_operator;