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_vector.h> 26 DEAL_II_NAMESPACE_OPEN
85 const unsigned int local_rows,
86 const unsigned int local_columns);
100 const unsigned int m,
101 const unsigned int n,
102 const std::vector<unsigned int> &local_rows_per_process,
103 const std::vector<unsigned int> &local_columns_per_process,
104 const unsigned int this_process);
112 const unsigned int n,
113 const unsigned int local_rows,
114 const unsigned int local_columns);
122 const unsigned int n,
123 const std::vector<unsigned int> &local_rows_per_process,
124 const std::vector<unsigned int> &local_columns_per_process,
125 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);
146 const unsigned int m,
147 const unsigned int n,
148 const std::vector<unsigned int> &local_rows_per_process,
149 const std::vector<unsigned int> &local_columns_per_process,
150 const unsigned int this_process);
158 const unsigned int n,
159 const unsigned int local_rows,
160 const unsigned int local_columns);
168 const unsigned int n,
169 const std::vector<unsigned int> &local_rows_per_process,
170 const std::vector<unsigned int> &local_columns_per_process,
171 const unsigned int this_process);
254 vmult(Vec &dst,
const Vec &src)
const;
284 const unsigned int n,
285 const unsigned int local_rows,
286 const unsigned int local_columns);
293 inline const MPI_Comm &
300 DEAL_II_NAMESPACE_CLOSE
302 # endif // DEAL_II_WITH_PETSC const MPI_Comm & get_mpi_communicator() const override
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)
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)