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_preconditioner_curl_solver_fft Type Reference

Linear solver for FFT-based inversion of 3d tensor product of circulant matrices (extending the abstract linear solver class) More...

Inheritance diagram for sll_t_preconditioner_curl_solver_fft:
Collaboration diagram for sll_t_preconditioner_curl_solver_fft:

Private Member Functions

procedure read_from_file => read_from_file_preconditioner
 
procedure set_verbose => set_verbose_preconditioner
 
procedure solve_real => solve_real_preconditioner
 
procedure print_info => print_info_preconditioner
 
procedure create => create_preconditioner
 
procedure free => free_preconditioner
 
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_total
 product of number of degrees of freedom More...
 
integer(kind=i32), dimension(3) n_dofs
 number of degrees of freedom More...
 
real(kind=f64) factor = 1._f64
 
complex(kind=f64), dimension(:), allocatable eig_values_d1
 
complex(kind=f64), dimension(:), allocatable eig_values_d1t
 
complex(kind=f64), dimension(:), allocatable eig_values_d2
 
complex(kind=f64), dimension(:), allocatable eig_values_d2t
 
complex(kind=f64), dimension(:), allocatable eig_values_d3
 
complex(kind=f64), dimension(:), allocatable eig_values_d3t
 
real(kind=f64), dimension(:), allocatable eig_values_mass_0_1
 
real(kind=f64), dimension(:), allocatable eig_values_mass_0_2
 
real(kind=f64), dimension(:), allocatable eig_values_mass_0_3
 
real(kind=f64), dimension(:), allocatable eig_values_mass_1_1
 
real(kind=f64), dimension(:), allocatable eig_values_mass_1_2
 
real(kind=f64), dimension(:), allocatable eig_values_mass_1_3
 
type(sll_t_fftfft1
 data type for fft along dimension 1 More...
 
type(sll_t_fftfft2
 data type for fft along dimension 2 More...
 
type(sll_t_fftfft3
 data type for fft along dimension 3 More...
 
type(sll_t_fftifft1
 data type for inverse fft along dimension 1 More...
 
type(sll_t_fftifft2
 data type for inverse fft along dimension 2 More...
 
type(sll_t_fftifft3
 data type for inverse fft along dimension 3 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

Linear solver for FFT-based inversion of 3d tensor product of circulant matrices (extending the abstract linear solver class)

Definition at line 30 of file sll_m_preconditioner_curl_solver_fft.F90.

Member Function/Subroutine Documentation

◆ create()

procedure create
private

Definition at line 63 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ free()

procedure free
private

Definition at line 64 of file sll_m_preconditioner_curl_solver_fft.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 62 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ read_from_file()

procedure read_from_file
private

Definition at line 59 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ set_verbose()

procedure set_verbose
private

Definition at line 60 of file sll_m_preconditioner_curl_solver_fft.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 61 of file sll_m_preconditioner_curl_solver_fft.F90.

Member Data Documentation

◆ eig_values_d1

complex(kind=f64), dimension(:), allocatable eig_values_d1
private

Definition at line 36 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_d1t

complex(kind=f64), dimension(:), allocatable eig_values_d1t
private

Definition at line 37 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_d2

complex(kind=f64), dimension(:), allocatable eig_values_d2
private

Definition at line 38 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_d2t

complex(kind=f64), dimension(:), allocatable eig_values_d2t
private

Definition at line 39 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_d3

complex(kind=f64), dimension(:), allocatable eig_values_d3
private

Definition at line 40 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_d3t

complex(kind=f64), dimension(:), allocatable eig_values_d3t
private

Definition at line 41 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_mass_0_1

real(kind=f64), dimension(:), allocatable eig_values_mass_0_1
private

Definition at line 42 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_mass_0_2

real(kind=f64), dimension(:), allocatable eig_values_mass_0_2
private

Definition at line 43 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_mass_0_3

real(kind=f64), dimension(:), allocatable eig_values_mass_0_3
private

Definition at line 44 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_mass_1_1

real(kind=f64), dimension(:), allocatable eig_values_mass_1_1
private

Definition at line 45 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_mass_1_2

real(kind=f64), dimension(:), allocatable eig_values_mass_1_2
private

Definition at line 46 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ eig_values_mass_1_3

real(kind=f64), dimension(:), allocatable eig_values_mass_1_3
private

Definition at line 47 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ factor

real(kind=f64) factor = 1._f64
private

Definition at line 33 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ fft1

type(sll_t_fft) fft1
private

data type for fft along dimension 1

Definition at line 50 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ fft2

type(sll_t_fft) fft2
private

data type for fft along dimension 2

Definition at line 51 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ fft3

type(sll_t_fft) fft3
private

data type for fft along dimension 3

Definition at line 52 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ ifft1

type(sll_t_fft) ifft1
private

data type for inverse fft along dimension 1

Definition at line 53 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ ifft2

type(sll_t_fft) ifft2
private

data type for inverse fft along dimension 2

Definition at line 54 of file sll_m_preconditioner_curl_solver_fft.F90.

◆ ifft3

type(sll_t_fft) ifft3
private

data type for inverse fft along dimension 3

Definition at line 55 of file sll_m_preconditioner_curl_solver_fft.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_dofs

integer(kind=i32), dimension(3) n_dofs
private

number of degrees of freedom

Definition at line 32 of file sll_m_preconditioner_curl_solver_fft.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_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

integer(kind=i32) n_total
private

product of number of degrees of freedom

Definition at line 31 of file sll_m_preconditioner_curl_solver_fft.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.

◆ verbose

logical verbose = .false.
privateinherited

details output for diagnostic if true

Definition at line 41 of file sll_m_linear_solver_abstract.F90.

    Report Typos and Errors