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> 27 # include <petscksp.h> 31 # ifdef DEAL_II_WITH_SLEPC 32 # include <deal.II/lac/slepc_spectral_transformation.h> 35 DEAL_II_NAMESPACE_OPEN
37 # ifdef DEAL_II_WITH_SLEPC 50 class PreconditionerBase;
154 set_prefix(
const std::string &prefix);
189 set_solver_type(KSP &ksp)
const = 0;
206 static PetscErrorCode
207 convergence_test(KSP ksp,
208 const PetscInt iteration,
209 const PetscReal residual_norm,
210 KSPConvergedReason *reason,
211 void * solver_control);
249 # ifdef DEAL_II_WITH_SLEPC 303 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
317 set_solver_type(KSP &ksp)
const override;
355 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
369 set_solver_type(KSP &ksp)
const override;
406 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
420 set_solver_type(KSP &ksp)
const override;
457 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
471 set_solver_type(KSP &ksp)
const override;
495 const bool right_preconditioning =
false);
525 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
539 set_solver_type(KSP &ksp)
const override;
577 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
591 set_solver_type(KSP &ksp)
const override;
627 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
641 set_solver_type(KSP &ksp)
const override;
678 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
692 set_solver_type(KSP &ksp)
const override;
734 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
748 set_solver_type(KSP &ksp)
const override;
785 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
799 set_solver_type(KSP &ksp)
const override;
837 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
851 set_solver_type(KSP &ksp)
const override;
893 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
907 set_solver_type(KSP &ksp)
const override;
946 const MPI_Comm & mpi_communicator = PETSC_COMM_SELF,
961 set_symmetric_mode(
const bool flag);
970 set_solver_type(KSP &ksp)
const override;
979 static PetscErrorCode
980 convergence_test(KSP ksp,
981 const PetscInt iteration,
982 const PetscReal residual_norm,
983 KSPConvergedReason *reason,
984 void * solver_control);
1002 std::unique_ptr<SolverDataMUMPS> solver_data;
1012 DEAL_II_NAMESPACE_CLOSE
1014 # 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
const AdditionalData additional_data
const MPI_Comm mpi_communicator
std::unique_ptr< SolverData > solver_data
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