lis_esolver_set_option(3)

πŸ“¦ version 2.1.11, in fedora 43, fedora 44, nixos 26.05, nixpkgs unstable

πŸŽ€ NAME πŸŽ€

lis_esolver_set_option β€” bestie, this is the one that sets the options for the eigensolver. That's it. That's the whole job. ✨

We're in the Lis Library Functions corner of the manual, and this page is lis_esolver_set_option(3), so pull up a chair, grab a strawberry πŸ“, and let's go through every single flag together. No skipping, we're doing all of them.


✨ SYNOPSIS ✨

#include "lis.h"

LIS_INT lis_esolver_set_option(char *text, LIS_ESOLVER *esolver);

πŸ’– DESCRIPTION πŸ’–

You call this to set the options for the eigensolver. Like, all the knobs and dials, handed over as command line option text. That's the vibe. πŸ’…


πŸ“₯ INPUT πŸ“₯

  • text β€” the command line options. Yeah, the whole string of them.

πŸ“€ OUTPUT πŸ“€

  • esolver β€” the eigensolver. It gets configured, and that's your result.

πŸšͺ EXIT STATUS πŸšͺ

Here's what you can get back, no cap:

  • 0 β€” the process is normally terminated. Everything ate. πŸ’…
  • unspecified β€” an error occurred. Not iconic. 😭

πŸ“ NOTE πŸ“

Okay so before we dive into the giant list, let's decode the notation, because it's giving shorthand:

The table below shows the available command line options, where -e {pi|1} means you can write -e pi or -e 1 (either one works, they're the same thing bestie), and -emaxiter [1000] indicates that -emaxiter defaults to 1,000.

So: curly braces = pick one of these, square brackets = that's the default. Got it? Good. 🫢


πŸ‘‘ OPTIONS πŸ‘‘

The following options are supported. Buckle up, it's a long list, but we're getting through all of it together. 🌈

  • -e eigensolver β€” pick your eigensolver. The following options are supported for eigensolver:
    • -e {pi|1} β€” Power ⚑
    • -e {ii|2} β€” Inverse
      • -i [bicg] β€” the linear solver
    • -e {rqi|3} β€” Rayleigh Quotient
      • -i [bicg] β€” the linear solver
    • -e {cg|4} β€” CG
      • -i [cg] β€” the linear solver
    • -e {cr|5} β€” CR
      • -i [bicg] β€” the linear solver
    • -e {si|6} β€” Subspace
      • -ss [1] β€” the size of the subspace
    • -e {li|7} β€” Lanczos
      • -ss [1] β€” the size of the subspace
    • -e {ai|8} β€” Arnoldi
      • -ss [1] β€” the size of the subspace
    • -e {gpi|9} β€” Generalized Power
      • -i [bicg] β€” the linear solver
    • -e {gii|10} β€” Generalized Inverse
      • -i [bicg] β€” the linear solver
    • -e {grqi|11} β€” Generalized Rayleigh Quotient
      • -i [bicg] β€” the linear solver
    • -e {gcg|12} β€” Generalized CG
      • -i [cg] β€” the linear solver
    • -e {gcr|13} β€” Generalized CR
      • -i [bicg] β€” the linear solver
    • -e {gsi|14} β€” Generalized Subspace
      • -ss [1] β€” the size of the subspace
    • -e {gli|15} β€” Generalized Lanczos
      • -ss [1] β€” the size of the subspace
    • -e {gai|16} β€” Generalized Arnoldi
      • -ss [1] β€” the size of the subspace
  • -i linear solver β€” now for the inner linear solver. The following options are supported for inner linear solver:
    • -i {cg|1} β€” CG
    • -i {bicg|2} β€” BiCG
    • -i {cgs|3} β€” CGS
    • -i {bicgstab|4} β€” BiCGSTAB
    • -i {bicgstabl|5} β€” BiCGSTAB(l)
      • -ell [2] β€” the degree l
    • -i {gpbicg|6} β€” GPBiCG
    • -i {tfqmr|7} β€” TFQMR
    • -i {orthomin|8} β€” Orthomin(m)
      • -restart [40] β€” the restart value m
    • -i {gmres|9} β€” GMRES(m)
      • -restart [40] β€” the restart value m
    • -i {jacobi|10} β€” Jacobi
    • -i {gs|11} β€” Gauss-Seidel
    • -i {sor|12} β€” SOR
      • -omega [1.9] β€” the relaxation coefficient omega, where 0<omega<2
    • -i {bicgsafe|13} β€” BiCGSafe
    • -i {cr|14} β€” CR
    • -i {bicr|15} β€” BiCR
    • -i {crs|16} β€” CRS
    • -i {bicrstab|17} β€” BiCRSTAB
    • -i {gpbicr|18} β€” GPBiCR
    • -i {bicrsafe|19} β€” BiCRSafe
    • -i {fgmres|20} β€” FGMRES(m)
      • -restart [40] β€” the restart value m
    • -i {idrs|21} β€” IDR(s)
      • -irestart [2] β€” the restart value s
    • -i {idr1|22} β€” IDR(1)
    • -i {minres|23} β€” MINRES
    • -i {cocg|24} β€” COCG
    • -i {cocr|25} β€” COCR
  • -p preconditioner β€” and now the preconditioner. The following options are supported for preconditioner:
    • -p {none|0} β€” None
    • -p {jacobi|1} β€” Jacobi
    • -p {ilu|2} β€” ILU(k)
      • -ilu_fill [0] β€” the fill level k
    • -p {ssor|3} β€” SSOR
      • -ssor_omega [1.0] β€” the relaxation coefficient omega, where 0<omega<2
    • -p {hybrid|4} β€” Hybrid
      • -hybrid_i [sor] β€” the linear solver
      • -hybrid_maxiter [25] β€” the maximum number of iterations
      • -hybrid_tol [1.0e-3] β€” the convergence criterion
      • -hybrid_omega [1.5] β€” the relaxation coefficient omega of the SOR, where 0<omega<2
      • -hybrid_ell [2] β€” the degree l of the BiCGSTAB(l)
      • -hybrid_restart [40] β€” the restart values of the GMRES and Orthomin
    • -p {is|5} β€” I+S
      • -is_alpha [1.0] β€” the parameter alpha of I+alpha*S(m)
      • -is_m [3] β€” the parameter m of I+alpha*S(m)
    • -p {sainv|6} β€” SAINV
      • -sainv_drop [0.05] β€” the drop criterion
    • -p {saamg|7} β€” SA-AMG
      • -saamg_unsym [false] β€” select the unsymmetric version (the matrix structure must be symmetric)
      • -saamg_theta [0.05|0.12] β€” the drop criterion
    • -p {iluc|8} β€” Crout ILU
      • -iluc_drop [0.05] β€” the drop criterion
      • -iluc_rate [5.0] β€” the max fill-in ratio
    • -p {ilut|9} β€” ILUT
      • -ilut_drop [0.05] β€” the drop criterion
      • -ilut_rate [5.0] β€” the max fill-in ratio
  • -adds true β€” Additive Schwarz
    • -adds_iter [1] β€” the number of iterations

Other Options for eigensolver 🌸

  • -emaxiter [1000] β€” the maximum number of iterations
  • -etol [1.0e-12] β€” the convergence criterion
  • -eprint [0] β€” the display of the residual
    • -eprint {none|0} β€” none
    • -eprint {mem|1} β€” save the residual history
    • -eprint {out|2} β€” display the residual history
    • -eprint {all|3} β€” save the residual history and display it on the screen
  • -ie [ii] β€” the inner eigensolver used in Subspace, Lanczos, and Arnoldi
  • -ige [ii] β€” the inner eigensolver used in Generalized Subspace, Generalized Lanczos, and Generalized Arnoldi
  • -shift [0.0] β€” the amount of the shift
  • -initx_ones [true] β€” the behavior of the initial vector x_0
    • -initx_ones {false|0} β€” given values
    • -initx_ones {true|1} β€” all values are set to 1
  • -omp_num_threads [t] β€” the number of threads (t represents the maximum number of threads)
  • -estorage [0] β€” the matrix storage format
  • -estorage_block [2] β€” the block size of the BSR and BSC formats
  • -ef [0] β€” the precision of the eigensolver
    • -ef {double|0} β€” double precision
    • -ef {quad|1} β€” double-double (quadruple) precision

Other options for inner linear solver πŸ¦‹

  • -maxiter [1000] β€” the maximum number of iterations
  • -tol [1.0e-12] β€” the convergence criterion
  • -print [0] β€” the display of the residual
    • -print {none|0} β€” none
    • -print {mem|1} β€” save the residual history
    • -print {out|2} β€” display the residual history
    • -print {all|3} β€” save the residual history and display it on the screen
  • -scale [0] β€” the scaling
    • -scale {none|0} β€” no scaling
    • -scale {jacobi|1} β€” the Jacobi scaling
    • -scale {symm_diag|2} β€” the diagonal scaling
  • -initx_zeros [true] β€” the behavior of the initial vector x_0
    • -initx_zero {false|0} β€” given values
    • -initx_zero {true|1} β€” all values are set to 0
bestie I'm just the messenger: the parent option is spelled -initx_zeros and the sub-options are spelled -initx_zero. That's literally what the page says, I'm not touching it. πŸ’€
  • -omp_num_threads [t] β€” the number of threads (t represents the maximum number of threads)
  • -storage [0] β€” the matrix storage format
  • -storage_block [2] β€” the block size of the BSR and BSC formats
  • -f [0] β€” the precision of the linear solver
    • -f {double|0} β€” double precision
    • -f {quad|1} β€” double-double (quadruple) precision

See Lis User Guide for full description. πŸ“–


πŸ‘€ SEE ALSO πŸ‘€


okay that's the whole page, you made it, I'm so proud of you 🫢✨ this was the lis_esolver_set_option(3) man page from the Lis Library Functions set, dated 14 Sep 2017 β€” that's the version and the date right there, and yes it's giving vintage but she still serves. mwah, go configure an eigensolver bestie, you've got this πŸ’…πŸ‘‘

πŸ“¦ where this page comes from