|
| 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.
|
| |
|
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.
|
| |
|
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.
|
| |
|
| 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')
|
| |
|
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')
|
| |
|
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)
|
| |
◆ 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()
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
-
| this | The EigenInitOptions object |
| traits | The solver traits derived from matrix properties |
◆ 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:
- /builds/rwr/bspline_feec/src/mform/m_mform_eigensolver.f90