10 #include "libmesh/libmesh_config.h" 12 #ifdef LIBMESH_HAVE_SLEPC 18 #include "libmesh/slepc_eigen_solver.h" 28 : SolverConfiguration(),
29 _eigen_problem(eigen_problem),
30 _slepc_solver(slepc_eigen_solver),
31 _nl_eigen_sys(nl_eigen_sys)
Nonlinear eigenvalue system to be solved.
virtual void initPetscOutputAndSomeSolverSettings() override
Hook up monitors for SNES and KSP.
PetscErrorCode mooseSlepcEPSSNESSetCustomizePC(EPS eps)
Attach a customized PC.
PetscErrorCode mooseSlepcStoppingTest(EPS eps, PetscInt its, PetscInt max_it, PetscInt nconv, PetscInt nev, EPSConvergedReason *reason, void *ctx)
A customized convergence checker.
const Parallel::Communicator & comm() const
bool isNonlinearEigenvalueSolver(unsigned int eigen_sys_num) const
libMesh::SlepcEigenSolver< libMesh::Number > & _slepc_solver
The slepc eigen solver object that we are configuring.
SlepcEigenSolverConfiguration(EigenProblem &eigen_problem, libMesh::SlepcEigenSolver< libMesh::Number > &slepc_eigen_solver, const NonlinearEigenSystem &nl_eigen_sys)
Constructur: get a reference to the SlepcEigenSolver variable to be able to manipulate it...
virtual void configure_solver() override
const NonlinearEigenSystem & _nl_eigen_sys
The system that owns the SLEPc solver.
unsigned int number() const
Gets the number of this system.
PetscErrorCode mooseSlepcEPSMonitor(EPS eps, PetscInt its, PetscInt nconv, PetscScalar *eigr, PetscScalar *eigi, PetscReal *errest, PetscInt nest, void *mctx)
A customized solver monitor to print out eigenvalue.
EigenProblem & _eigen_problem
PetscErrorCode mooseSlepcEPSSNESKSPSetPCSide(FEProblemBase &problem, EPS eps)
Allow users to specify PC side.
SolverParams & solverParams(unsigned int solver_sys_num=0)
Get the solver parameters.
PetscErrorCode mooseSlepcEPSSNESSetUpOptionPrefix(EPS eps)
Get rid of prefix "-eps_power" for SNES, KSP, PC, etc.
Problem for solving eigenvalue problems.