BSpline Finite Element Exterior Calculus
Loading...
Searching...
No Matches
m_mform_eigensolver::eigeninitoptions Interface Reference
Inheritance diagram for m_mform_eigensolver::eigeninitoptions:
m_mform_solver::solverinitoptions m_mform_solver::solversolveoptions

Public Member Functions

procedure init_from_traits (this, traits)
 Select solver options for eigenvalue problems, favouring direct solvers (MUMPS)
 
type(eigeninitoptions) function init_eigeninitoptions (ksp_type, pc_type, hypre_type, rtol, atol, max_iter, verbosity, which, target, target_interval, eps_type)
 Initialize an EigenInitOptions object.
 
- Public Member Functions inherited from m_mform_solver::solverinitoptions
procedure init_from_traits (this, traits)
 
type(solverinitoptions) function make_solver_options (ksp_type, pc_type, hypre_type, rtol, atol, max_iter, verbosity, verbosity_flag)
 Create a SolverInitOptions object from the provided arguments.
 
- Public Member Functions inherited from m_mform_solver::solversolveoptions
procedure apply_default_solve_options (options, default_max_iter, default_verbosity)
 
type(solversolveoptions) function make_solver_solve_options (rtol, atol, max_iter, verbosity, verbosity_flag)
 Create a SolverSolveOptions object from the provided arguments.
 

Public Attributes

real(wp) target = 0.0_wp
 Which part of the spectrum to compute (default: 'largest magnitude')
 
real(wp), dimension(2) target_interval = [0.0_wp, 0.0_wp]
 The target interval if 'which' is 'all' (default: [0.0, 0.0])
 
logical which_is_target = .false.
 The type of eigensolver to use (default: 'krylovschur')
 
- Public Attributes inherited from m_mform_solver::solverinitoptions
character(len=80) ksp_type = ''
 KSP type for the PETSc solver (e.g., 'cg', 'gmres', 'minres', etc.)
 
character(len=80) pc_type = ''
 PC type for the PETSc preconditioner (e.g., 'jacobi', 'ilu', 'hypre', etc.)
 
character(len=80) hypre_type = ''
 HYPRE preconditioner type (e.g., 'boomeramg', 'ams', 'ilu', etc.)
 
character(len=80) ilu_level = ''
 ILU level for the HYPRE ILU preconditioner (e.g., '0', '1', '2', '3', or 'ilut')
 
- Public Attributes inherited from m_mform_solver::solversolveoptions
real(wp) rtol = -1._wp
 Relative tolerance for the solver.
 
real(wp) atol = -1._wp
 Absolute tolerance for the solver.
 
integer max_iter = -1
 Maximum number of iterations for the solver.
 
integer verbosity = -1
 Verbosity level for the solver (default: VERBOSITY_WARN_ON_FAILURE)
 

Member Function/Subroutine Documentation

◆ init_eigeninitoptions()

type(eigeninitoptions) function m_mform_eigensolver::eigeninitoptions::init_eigeninitoptions ( character(*), intent(in), optional ksp_type,
character(*), intent(in), optional pc_type,
character(*), intent(in), optional hypre_type,
real(wp), intent(in), optional rtol,
real(wp), intent(in), optional atol,
integer, intent(in), optional max_iter,
character(len=80), intent(in), optional verbosity,
character(*), intent(in), optional which,
real(wp), intent(in), optional target,
real(wp), dimension(2), intent(in), optional target_interval,
character(*), intent(in), optional eps_type )

Initialize an EigenInitOptions object.

Parameters
ksp_type_(optional)_ The KSP type to use (default: auto-select based on traits)
pc_type_(optional)_ The PC type to use (default: auto-select based on traits)
hypre_type_(optional)_ The HYPRE preconditioner type to use (default: auto-select based on traits)
rtol_(optional)_ The relative tolerance (default: 1.e-10)
atol_(optional)_ The absolute tolerance (default: 1.e-20)
max_iter_(optional)_ The maximum number of iterations (default: size of the space)
verbosity_(optional)_ The verbosity level (default: 'warn on failure')
  • 'warn never'
  • 'warn on failure'
  • 'warn always'
  • 'error on failure'
which_(optional)_ Which part of the spectrum to compute. Possible values are:
which_(optional)_ Which part of the spectrum to compute. Possible values are:
  • 'largest magnitude' or 'lm' (default)
  • 'smallest magnitude' or 'sm'
  • 'largest real' or 'lr'
  • 'smallest real' or 'sr'
  • 'largest imaginary' or 'li'
  • 'smallest imaginary' or 'si'
  • 'target magnitude' or 'tm'
  • 'target real' or 'tr'
  • 'target imaginary' or 'ti'
  • 'target interval' or 'all'
target_(optional)_ The target value if 'which' is a target option
target_interval_(optional)_ The target interval if 'which' is 'all'
eps_type_(optional)_ The type of eigensolver to use (default: 'krylovschur'). Possible values are:
  • 'power'
  • 'subspace'
  • 'arnoldi'
  • 'lanczos'
  • 'krylovschur'
  • 'gd'
  • 'jd' or 'jacobi davidson'
  • 'rqcg'
  • 'lobpcg'
  • 'ciss'
  • 'lyapii'
  • 'lapack'
  • 'arpack'
  • 'blopex'
  • 'primme'
  • 'feast'
  • 'scalapack'
  • 'elpa'
  • 'elemental'
  • 'evsl'
  • 'chase'

◆ init_from_traits()

procedure m_mform_eigensolver::eigeninitoptions::init_from_traits ( class(eigeninitoptions), intent(inout) this,
type(solverinittraits), intent(in) traits )

Select solver options for eigenvalue problems, favouring direct solvers (MUMPS)

Eigenvalue solvers require highly accurate linear solves inside the spectral transform. Iterative methods with standard preconditioners often lack the accuracy needed for convergence of multiple eigenpairs. This override defaults to a direct solver (PREONLY + Cholesky/LU with MUMPS) which works both in serial and parallel.

Parameters
thisThe EigenInitOptions object
traitsThe solver traits derived from matrix properties

Member Data Documentation

◆ target

real(wp) m_mform_eigensolver::eigeninitoptions::target = 0.0_wp

Which part of the spectrum to compute (default: 'largest magnitude')

The target value if 'which' is a target option (default: 0.0)

◆ which_is_target

logical m_mform_eigensolver::eigeninitoptions::which_is_target = .false.

The type of eigensolver to use (default: 'krylovschur')

Whether 'which' is of target type (default: false)


The documentation for this interface was generated from the following file: