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 23 # include <deal.II/lac/exceptions.h> 24 # include <deal.II/lac/petsc_matrix_base.h> 25 # include <deal.II/lac/petsc_parallel_vector.h> 26 DEAL_II_NAMESPACE_OPEN
86 const unsigned int local_rows,
87 const unsigned int local_columns);
101 const unsigned int m,
102 const unsigned int n,
103 const std::vector<unsigned int> &local_rows_per_process,
104 const std::vector<unsigned int> &local_columns_per_process,
105 const unsigned int this_process);
113 const unsigned int n,
114 const unsigned int local_rows,
115 const unsigned int local_columns);
123 const unsigned int n,
124 const std::vector<unsigned int> &local_rows_per_process,
125 const std::vector<unsigned int> &local_columns_per_process,
126 const unsigned int this_process);
134 const unsigned int m,
135 const unsigned int n,
136 const unsigned int local_rows,
137 const unsigned int local_columns);
145 const unsigned int m,
146 const unsigned int n,
147 const std::vector<unsigned int> &local_rows_per_process,
148 const std::vector<unsigned int> &local_columns_per_process,
149 const unsigned int this_process);
155 void reinit (
const unsigned int m,
156 const unsigned int n,
157 const unsigned int local_rows,
158 const unsigned int local_columns);
164 void reinit (
const unsigned int m,
165 const unsigned int n,
166 const std::vector<unsigned int> &local_rows_per_process,
167 const std::vector<unsigned int> &local_columns_per_process,
168 const unsigned int this_process);
253 void vmult (Vec &dst,
const Vec &src)
const;
282 const unsigned int n,
283 const unsigned int local_rows,
284 const unsigned int local_columns);
299 DEAL_II_NAMESPACE_CLOSE
301 #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)