lis_solver_set_option(3f)

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

okay so you just opened the Lis Library Functions manual, and this little cutie is lis_solver_set_option(3f). Buckle up, bestie, we're setting solver options and we're gonna understand every single one πŸ’…


✨ NAME ✨

lis_solver_set_option β€” set the options for the solver


πŸ¦‹ SYNOPSIS πŸ¦‹

subroutine lis_solver_set_option(char *text, LIS_SOLVER *solver, LIS_INTEGER ierr);

🌸 DESCRIPTION 🌸

Set the options for the solver. That's the whole vibe. You hand it options, it makes the solver do the thing πŸ’–


πŸŽ€ INPUT πŸŽ€

  • text β€” the command line options, literally the words you type to boss the solver around

πŸ’œ OUTPUT πŸ’œ

  • solver β€” the solver, all set up and glowing with main character energy

πŸ”₯ NOTE πŸ”₯

Real talk, the table below uses a lil shorthand that you need to get: when you see -i {cg|1}, that means you can write either -i cg or -i 1 (same thing, two fits, pick your fave). And when you see -maxiter [1000], the brackets mean -maxiter defaults to 1,000. iykyk ✨


πŸ‘‘ OPTIONS πŸ‘‘

The following options are supported, no cap:

  • -i linear solver β€” pick your linear solver. The following options are supported for 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 (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 β€” pick your 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 (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 (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 ration of maximum fill-in
    • -p {ilut|9} β€” ILUT
      • -ilut_drop [0.05] β€” the drop criterion
      • -ilut_rate [5.0] β€” the ration of maximum fill-in
    • -adds true β€” Additive Schwarz
      • -adds_iter [1] β€” the number of iteration

Other Options, the rest of the crew:

  • -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
  • -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 🌈


not me ending on a note but here we are 🫢 this page was a Man Page situation, dated 14 Sep 2017, and its whole name-tag is lis_solver_set_option(3f). periodt πŸ’…βœ¨
πŸ“¦ where this page comes from