34class MultigridOperatorBase :
public dealii::Subscriptor
37 typedef Number value_type;
38 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
40 static unsigned int const dimension = dim;
42 MultigridOperatorBase() : dealii::Subscriptor()
46 virtual ~MultigridOperatorBase()
50 virtual dealii::AffineConstraints<Number>
const &
51 get_affine_constraints()
const = 0;
53 virtual dealii::MatrixFree<dim, Number>
const &
54 get_matrix_free()
const = 0;
57 get_dof_index()
const = 0;
59 virtual dealii::types::global_dof_index
62 virtual dealii::types::global_dof_index
66 el(
unsigned int const,
unsigned int const)
const = 0;
69 initialize_dof_vector(VectorType & vector)
const = 0;
72 vmult(VectorType & dst, VectorType
const & src)
const = 0;
75 vmult_add(VectorType & dst, VectorType
const & src)
const = 0;
78 vmult_interface_down(VectorType & dst, VectorType
const & src)
const = 0;
81 vmult_add_interface_up(VectorType & dst, VectorType
const & src)
const = 0;
84 calculate_inverse_diagonal(VectorType & inverse_diagonal_entries)
const = 0;
87 initialize_block_diagonal_preconditioner(
bool const initialize)
const = 0;
90 update_block_diagonal_preconditioner()
const = 0;
93 apply_inverse_block_diagonal(VectorType & dst, VectorType
const & src)
const = 0;
96 apply_inverse_additive_schwarz_matrices(VectorType & dst, VectorType
const & src)
const = 0;
99 compute_factorized_additive_schwarz_matrices()
const = 0;
101#ifdef DEAL_II_WITH_TRILINOS
103 init_system_matrix(dealii::TrilinosWrappers::SparseMatrix & system_matrix,
104 MPI_Comm
const & mpi_comm)
const = 0;
107 calculate_system_matrix(dealii::TrilinosWrappers::SparseMatrix & system_matrix)
const = 0;
110#ifdef DEAL_II_WITH_PETSC
112 init_system_matrix(dealii::PETScWrappers::MPI::SparseMatrix & system_matrix,
113 MPI_Comm
const & mpi_comm)
const = 0;
116 calculate_system_matrix(dealii::PETScWrappers::MPI::SparseMatrix & system_matrix)
const = 0;
120 get_constant_modes(std::vector<std::vector<bool>> & constant_modes,
121 std::vector<std::vector<double>> & constant_modes_values)
const = 0;