16 #ifndef dealii__petsc_matrix_free_h 17 #define dealii__petsc_matrix_free_h 20 #include <deal.II/base/config.h> 22 #ifdef DEAL_II_WITH_PETSC 24 # include <deal.II/lac/exceptions.h> 25 # include <deal.II/lac/petsc_matrix_base.h> 26 # include <deal.II/lac/petsc_vector.h> 28 DEAL_II_NAMESPACE_OPEN
90 const unsigned int local_rows,
91 const unsigned int local_columns);
105 const unsigned int m,
106 const unsigned int n,
107 const std::vector<unsigned int> &local_rows_per_process,
108 const std::vector<unsigned int> &local_columns_per_process,
109 const unsigned int this_process);
117 const unsigned int n,
118 const unsigned int local_rows,
119 const unsigned int local_columns);
127 const unsigned int n,
128 const std::vector<unsigned int> &local_rows_per_process,
129 const std::vector<unsigned int> &local_columns_per_process,
130 const unsigned int this_process);
138 const unsigned int m,
139 const unsigned int n,
140 const unsigned int local_rows,
141 const unsigned int local_columns);
149 const unsigned int m,
150 const unsigned int n,
151 const std::vector<unsigned int> &local_rows_per_process,
152 const std::vector<unsigned int> &local_columns_per_process,
153 const unsigned int this_process);
159 void reinit (
const unsigned int m,
160 const unsigned int n,
161 const unsigned int local_rows,
162 const unsigned int local_columns);
168 void reinit (
const unsigned int m,
169 const unsigned int n,
170 const std::vector<unsigned int> &local_rows_per_process,
171 const std::vector<unsigned int> &local_columns_per_process,
172 const unsigned int this_process);
257 void vmult (Vec &dst,
const Vec &src)
const;
286 const unsigned int n,
287 const unsigned int local_rows,
288 const unsigned int local_columns);
303 DEAL_II_NAMESPACE_CLOSE
305 #endif // DEAL_II_WITH_PETSC
virtual void vmult_add(VectorBase &dst, const VectorBase &src) const =0
virtual void Tvmult_add(VectorBase &dst, const VectorBase &src) const =0
virtual void vmult(VectorBase &dst, const VectorBase &src) const =0
virtual void Tvmult(VectorBase &dst, const VectorBase &src) const =0
void reinit(const MPI_Comm &communicator, const unsigned int m, const unsigned int n, const unsigned int local_rows, const unsigned int local_columns)
const MPI_Comm & get_mpi_communicator() const
static int matrix_free_mult(Mat A, Vec src, Vec dst)
void do_reinit(const unsigned int m, const unsigned int n, const unsigned int local_rows, const unsigned int local_columns)