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);
170 <<
"An error with error number " << arg1
171 <<
" occurred while calling a PETSc function");
192 virtual void set_solver_type (KSP &ksp)
const = 0;
210 PetscErrorCode convergence_test (KSP ksp,
211 const PetscInt iteration,
212 const PetscReal residual_norm,
213 KSPConvergedReason *reason,
214 void *solver_control);
252 #ifdef DEAL_II_WITH_SLEPC 307 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
320 virtual void set_solver_type (KSP &ksp)
const;
358 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
371 virtual void set_solver_type (KSP &ksp)
const;
408 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
421 virtual void set_solver_type (KSP &ksp)
const;
458 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
471 virtual void set_solver_type (KSP &ksp)
const;
495 const bool right_preconditioning =
false);
525 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
538 virtual void set_solver_type (KSP &ksp)
const;
576 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
589 virtual void set_solver_type (KSP &ksp)
const;
625 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
638 virtual void set_solver_type (KSP &ksp)
const;
675 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
688 virtual void set_solver_type (KSP &ksp)
const;
731 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
744 virtual void set_solver_type (KSP &ksp)
const;
781 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
794 virtual void set_solver_type (KSP &ksp)
const;
832 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
845 virtual void set_solver_type (KSP &ksp)
const;
887 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
900 virtual void set_solver_type (KSP &ksp)
const;
940 const MPI_Comm &mpi_communicator = PETSC_COMM_SELF,
955 void set_symmetric_mode (
const bool flag);
963 virtual void set_solver_type (KSP &ksp)
const;
973 PetscErrorCode convergence_test (KSP ksp,
974 const PetscInt iteration,
975 const PetscReal residual_norm,
976 KSPConvergedReason *reason,
977 void *solver_control);
995 std_cxx11::shared_ptr<SolverDataMUMPS> solver_data;
1005 DEAL_II_NAMESPACE_CLOSE
1007 #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