16 #ifndef dealii__petsc_solver_h 17 #define dealii__petsc_solver_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/solver_control.h> 26 # include <deal.II/base/std_cxx11/shared_ptr.h> 28 # include <petscksp.h> 30 #ifdef DEAL_II_WITH_SLEPC 31 #include <deal.II/lac/slepc_spectral_transformation.h> 34 DEAL_II_NAMESPACE_OPEN
36 #ifdef DEAL_II_WITH_SLEPC 49 class PreconditionerBase;
119 const MPI_Comm &mpi_communicator);
144 virtual void reset();
151 void set_prefix(
const std::string &prefix);
173 <<
"An error with error number " << arg1
174 <<
" occurred while calling a PETSc function") DEAL_II_DEPRECATED;
195 virtual void set_solver_type (KSP &ksp)
const = 0;
213 PetscErrorCode convergence_test (KSP ksp,
214 const PetscInt iteration,
215 const PetscReal residual_norm,
216 KSPConvergedReason *reason,
217 void *solver_control);
255 #ifdef DEAL_II_WITH_SLEPC 310 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
323 virtual void set_solver_type (KSP &ksp)
const;
361 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
374 virtual void set_solver_type (KSP &ksp)
const;
411 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
424 virtual void set_solver_type (KSP &ksp)
const;
461 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
474 virtual void set_solver_type (KSP &ksp)
const;
498 const bool right_preconditioning =
false);
528 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
541 virtual void set_solver_type (KSP &ksp)
const;
579 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
592 virtual void set_solver_type (KSP &ksp)
const;
628 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
641 virtual void set_solver_type (KSP &ksp)
const;
678 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
691 virtual void set_solver_type (KSP &ksp)
const;
734 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
747 virtual void set_solver_type (KSP &ksp)
const;
784 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
797 virtual void set_solver_type (KSP &ksp)
const;
835 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
848 virtual void set_solver_type (KSP &ksp)
const;
890 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
903 virtual void set_solver_type (KSP &ksp)
const;
942 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
957 void set_symmetric_mode (
const bool flag);
965 virtual void set_solver_type (KSP &ksp)
const;
975 PetscErrorCode convergence_test (KSP ksp,
976 const PetscInt iteration,
977 const PetscReal residual_norm,
978 KSPConvergedReason *reason,
979 void *solver_control);
997 std_cxx11::shared_ptr<SolverDataMUMPS> solver_data;
1007 DEAL_II_NAMESPACE_CLOSE
1009 #endif // DEAL_II_WITH_PETSC
const AdditionalData additional_data
const AdditionalData additional_data
const AdditionalData additional_data
const AdditionalData additional_data
const AdditionalData additional_data
std_cxx11::shared_ptr< SolverData > solver_data
const AdditionalData additional_data
#define DeclException1(Exception1, type1, outsequence)
const MPI_Comm mpi_communicator
bool right_preconditioning
const AdditionalData additional_data
SolverControl & solver_control
const AdditionalData additional_data
const AdditionalData additional_data
const AdditionalData additional_data
const AdditionalData additional_data
const AdditionalData additional_data
unsigned int restart_parameter
const AdditionalData additional_data