Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Private Member Functions | Private Attributes | List of all members
sll_t_linear_solver_mgmres Type Reference

class for a sequential gmres linear solver More...

Inheritance diagram for sll_t_linear_solver_mgmres:
Collaboration diagram for sll_t_linear_solver_mgmres:

Private Member Functions

procedure create => create_linear_solver_mgmres
 
procedure initialize => initialize_linear_solver_mgmres
 
procedure set_guess => set_guess_linear_solver_mgmres
 
procedure check_convergence => check_convergence_linear_solver_mgmres
 
procedure read_from_file => read_from_file_linear_solver_mgmres
 
procedure set_verbose => set_verbose_linear_solver_mgmres
 
procedure solve_real => solve_real_linear_solver_mgmres
 
procedure print_info => print_info_linear_solver_mgmres
 
procedure free => free_linear_solver_mgmres
 
procedure compute_residual_error => compute_residual_error_linear_solver_iter_abstract
 
procedure set_linear_operator => set_linop_linear_solver_iter_abstract
 
procedure set_tolerance => set_tolerance_linear_solver_iter_abstract
 
generic solve => solve_real
 
procedure initialize_abstract => initialize_linear_solver_abstract
 
procedure set_verbose_abstract => set_verbose_linear_solver_abstract
 

Private Attributes

integer(kind=i32) n_mr = 2
 number of restarts for gmres More...
 
real(kind=f64) rtol = 1.0d-14
 relative tolerance More...
 
integer(kind=i32) n_maxiter = 2000
 maximum number of iterations More...
 
logical null_space = .false.
 true if singular linear operator:w More...
 
real(kind=f64) atol = 1.0d-9
 absolute tolerance More...
 
real(kind=f64), dimension(:), allocatable x_0
 for the initialization More...
 
class(sll_t_linear_operator_abstract), pointer ptr_linear_operator => null()
 pointer to the used linear operator More...
 
class(sll_t_linear_operator_abstract), allocatable p_linear_operator
 used for nullspace More...
 
class(sll_t_linear_solver_abstract), pointer ptr_pc_left => null()
 pointer to a left pc More...
 
integer(kind=i32) n_rows = 0
 number of rows More...
 
integer(kind=i32) n_cols = 0
 number of columns More...
 
integer(kind=i32) n_global_rows = 0
 number of rows different from n_rows for distributed linear operator More...
 
integer(kind=i32) n_global_cols = 0
 number of columns different from n_cols for linear operator More...
 
integer(kind=i32) n_total_rows = 0
 n_global_rows * n_block_rows More...
 
integer(kind=i32) n_total_cols = 0
 n_global_cols * n_block_cols More...
 
logical is_allocated = .false.
 
logical verbose = .false.
 details output for diagnostic if true More...
 

Detailed Description

class for a sequential gmres linear solver

Definition at line 38 of file sll_m_linear_solver_mgmres.F90.

Member Function/Subroutine Documentation

◆ check_convergence()

procedure check_convergence
private

Definition at line 46 of file sll_m_linear_solver_mgmres.F90.

◆ compute_residual_error()

procedure compute_residual_error
privateinherited

Definition at line 50 of file sll_m_linear_solver_iter_abstract.F90.

◆ create()

procedure create
private

Definition at line 43 of file sll_m_linear_solver_mgmres.F90.

◆ free()

procedure free
private

Definition at line 52 of file sll_m_linear_solver_mgmres.F90.

◆ initialize()

procedure initialize
private

Definition at line 44 of file sll_m_linear_solver_mgmres.F90.

◆ initialize_abstract()

procedure initialize_abstract
privateinherited

Definition at line 47 of file sll_m_linear_solver_abstract.F90.

◆ print_info()

procedure print_info
private

Definition at line 51 of file sll_m_linear_solver_mgmres.F90.

◆ read_from_file()

procedure read_from_file
private

Definition at line 48 of file sll_m_linear_solver_mgmres.F90.

◆ set_guess()

procedure set_guess
private

Definition at line 45 of file sll_m_linear_solver_mgmres.F90.

◆ set_linear_operator()

procedure set_linear_operator
privateinherited

Definition at line 51 of file sll_m_linear_solver_iter_abstract.F90.

◆ set_tolerance()

procedure set_tolerance
privateinherited

Definition at line 52 of file sll_m_linear_solver_iter_abstract.F90.

◆ set_verbose()

procedure set_verbose
private

Definition at line 49 of file sll_m_linear_solver_mgmres.F90.

◆ set_verbose_abstract()

procedure set_verbose_abstract
privateinherited

Definition at line 48 of file sll_m_linear_solver_abstract.F90.

◆ solve()

generic solve
privateinherited

Definition at line 45 of file sll_m_linear_solver_abstract.F90.

◆ solve_real()

procedure solve_real
private

Definition at line 50 of file sll_m_linear_solver_mgmres.F90.

Member Data Documentation

◆ atol

real(kind=f64) atol = 1.0d-9
privateinherited

absolute tolerance

Definition at line 38 of file sll_m_linear_solver_iter_abstract.F90.

◆ is_allocated

logical is_allocated = .false.
privateinherited

Definition at line 40 of file sll_m_linear_solver_abstract.F90.

◆ n_cols

integer(kind=i32) n_cols = 0
privateinherited

number of columns

Definition at line 32 of file sll_m_linear_solver_abstract.F90.

◆ n_global_cols

integer(kind=i32) n_global_cols = 0
privateinherited

number of columns different from n_cols for linear operator

Definition at line 35 of file sll_m_linear_solver_abstract.F90.

◆ n_global_rows

integer(kind=i32) n_global_rows = 0
privateinherited

number of rows different from n_rows for distributed linear operator

Definition at line 34 of file sll_m_linear_solver_abstract.F90.

◆ n_maxiter

integer(kind=i32) n_maxiter = 2000
privateinherited

maximum number of iterations

Definition at line 35 of file sll_m_linear_solver_iter_abstract.F90.

◆ n_mr

integer(kind=i32) n_mr = 2
private

number of restarts for gmres

Definition at line 39 of file sll_m_linear_solver_mgmres.F90.

◆ n_rows

integer(kind=i32) n_rows = 0
privateinherited

number of rows

Definition at line 31 of file sll_m_linear_solver_abstract.F90.

◆ n_total_cols

integer(kind=i32) n_total_cols = 0
privateinherited

n_global_cols * n_block_cols

Definition at line 38 of file sll_m_linear_solver_abstract.F90.

◆ n_total_rows

integer(kind=i32) n_total_rows = 0
privateinherited

n_global_rows * n_block_rows

Definition at line 37 of file sll_m_linear_solver_abstract.F90.

◆ null_space

logical null_space = .false.
privateinherited

true if singular linear operator:w

Definition at line 36 of file sll_m_linear_solver_iter_abstract.F90.

◆ p_linear_operator

class(sll_t_linear_operator_abstract), allocatable p_linear_operator
privateinherited

used for nullspace

Definition at line 43 of file sll_m_linear_solver_iter_abstract.F90.

◆ ptr_linear_operator

class(sll_t_linear_operator_abstract), pointer ptr_linear_operator => null()
privateinherited

pointer to the used linear operator

Definition at line 42 of file sll_m_linear_solver_iter_abstract.F90.

◆ ptr_pc_left

class(sll_t_linear_solver_abstract), pointer ptr_pc_left => null()
privateinherited

pointer to a left pc

Definition at line 44 of file sll_m_linear_solver_iter_abstract.F90.

◆ rtol

real(kind=f64) rtol = 1.0d-14
private

relative tolerance

Definition at line 40 of file sll_m_linear_solver_mgmres.F90.

◆ verbose

logical verbose = .false.
privateinherited

details output for diagnostic if true

Definition at line 41 of file sll_m_linear_solver_abstract.F90.

◆ x_0

real(kind=f64), dimension(:), allocatable x_0
privateinherited

for the initialization

Definition at line 40 of file sll_m_linear_solver_iter_abstract.F90.

    Report Typos and Errors