Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
module for a sequential gmres
Maintainer ARA Modified by Benedikt Perse Stability stable
Derived types and interfaces | |
type | sll_t_linear_solver_mgmres |
class for a sequential gmres linear solver More... | |
Functions/Subroutines | |
subroutine | create_linear_solver_mgmres (self, linear_operator, pc_left, filename) |
creates a linear solver More... | |
subroutine | initialize_linear_solver_mgmres (self, linear_operator, x_0) |
initializes the linear solver More... | |
subroutine | set_guess_linear_solver_mgmres (self, x_0) |
sets the initial guess More... | |
subroutine | check_convergence_linear_solver_mgmres (self, i_iteration, flag, r_err, arr_err) |
check the convergence of the current linear solver More... | |
subroutine | read_from_file_linear_solver_mgmres (self, filename) |
read from file More... | |
subroutine | set_verbose_linear_solver_mgmres (self, verbose) |
sets the verbose for the linear solver object More... | |
subroutine | solve_real_linear_solver_mgmres (self, rhs, unknown) |
solves the linear system with real vectors More... | |
subroutine | mgmres_linear_solver (self, x, rhs, itr_max, mr, tol_abs, tol_rel, itr_used, rho) |
subroutine | mult_givens (c, s, k, g) |
subroutine | print_info_linear_solver_mgmres (self) |
destroys a finite element cell More... | |
subroutine | free_linear_solver_mgmres (self) |
destroys the current object More... | |
Variables | |
integer(kind=i32), parameter | sll_solver_bool_false = 0 |
code id for False More... | |
integer(kind=i32), parameter | sll_solver_maxiter = 1000 |
default maximum number of iterations for More... | |
real(kind=f64), parameter | sll_solver_tolerance = 1.0d-9 |
default tolerance for iterative solvers More... | |
integer(kind=i32), parameter | sll_solver_restart = 30 |
default number of restarts for gmres More... | |
|
private |
check the convergence of the current linear solver
[in,out] | self | the current object |
[in] | i_iteration | the checking iteration |
[in] | flag | the verbose flag |
[in] | r_err | [optional] the error |
[in] | arr_err | [optional] the array of error |
Definition at line 151 of file sll_m_linear_solver_mgmres.F90.
|
private |
creates a linear solver
[in,out] | self | the current object |
[in] | linear_operator | a linear operator |
[in] | pc_left | a left preconditioner. This should be a solver too. [optional] |
[in] | pc_right | a right preconditioner. This should be a solver too. [optional] |
[in] | filename | parameter filename [optional] |
Definition at line 67 of file sll_m_linear_solver_mgmres.F90.
|
private |
destroys the current object
[in,out] | self | the current object |
Definition at line 675 of file sll_m_linear_solver_mgmres.F90.
|
private |
initializes the linear solver
[in,out] | self | the current object |
[in] | linear_operator | a linear operator |
[in] | x_0 | [optional] the initial guess, defalut value: 0 |
Definition at line 104 of file sll_m_linear_solver_mgmres.F90.
|
private |
Definition at line 305 of file sll_m_linear_solver_mgmres.F90.
|
private |
Definition at line 571 of file sll_m_linear_solver_mgmres.F90.
|
private |
destroys a finite element cell
[in,out] | self | the current object |
Definition at line 654 of file sll_m_linear_solver_mgmres.F90.
|
private |
read from file
[in,out] | self | the current object |
[in] | filename | [optional] name of the output file |
Definition at line 179 of file sll_m_linear_solver_mgmres.F90.
|
private |
sets the initial guess
[in,out] | self | the current object |
[in] | x_0 | the initial guess |
Definition at line 132 of file sll_m_linear_solver_mgmres.F90.
|
private |
sets the verbose for the linear solver object
[in,out] | self | the current object |
[in] | verbose | verbose flag |
Definition at line 239 of file sll_m_linear_solver_mgmres.F90.
|
private |
solves the linear system with real vectors
[in,out] | self | the current object |
[in] | rhs | the right hand side |
[in,out] | unknown | the solution |
Definition at line 257 of file sll_m_linear_solver_mgmres.F90.
|
private |
code id for False
Definition at line 31 of file sll_m_linear_solver_mgmres.F90.
|
private |
default maximum number of iterations for
Definition at line 32 of file sll_m_linear_solver_mgmres.F90.
|
private |
default number of restarts for gmres
Definition at line 34 of file sll_m_linear_solver_mgmres.F90.
|
private |
default tolerance for iterative solvers
Definition at line 33 of file sll_m_linear_solver_mgmres.F90.