Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Derived types and interfaces | Functions/Subroutines
sll_m_linear_solver_kron Module Reference

Description

module for kronecker linear solver

Maintainer ARA Modified by Benedikt Perse Stability stable

Derived types and interfaces

type  sll_t_linear_solver_kron
 class for the kronecker linear solver More...
 

Functions/Subroutines

subroutine create_linear_solver_kron (self, linear_operator_a, linear_operator_b, linear_operator_c, linear_solver_a, linear_solver_b, linear_solver_c, filename)
 creates a kronecker linear solver the user must provide More...
 
subroutine sll_create_linear_solver_with_name (solver_name, linear_operator, linear_solver, flag, pc_left)
 create an linear solver using its name and a linear operator More...
 
subroutine sll_allocate_linear_solver (solver_name, linear_solver, flag)
 allocate the linear solver object More...
 
subroutine set_verbose_linear_solver_kron (self, verbose)
 sets the verbose for the linear solver object More...
 
subroutine read_from_file_linear_solver_kron (self, filename)
 read from file More...
 
subroutine solve_real_linear_solver_kron (self, rhs, unknown)
 solves the linear system with real vectors More...
 
subroutine solve_2_real_linear_solver_kron (self, linear_solver_a, linear_solver_b, rhs, unknown)
 solves the linear system with real vectors More...
 
subroutine solve_3_real_linear_solver_kron (self, rhs, unknown)
 apply the solve operation with real vectors More...
 
subroutine print_info_linear_solver_kron (self)
 destroys a finite element cell More...
 
subroutine free_linear_solver_kron (self)
 destroys the current object More...
 

Function/Subroutine Documentation

◆ create_linear_solver_kron()

subroutine sll_m_linear_solver_kron::create_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(inout), target  self,
class(sll_t_linear_operator_abstract), intent(in), optional, target  linear_operator_a,
class(sll_t_linear_operator_abstract), intent(in), optional, target  linear_operator_b,
class(sll_t_linear_operator_abstract), intent(in), optional, target  linear_operator_c,
class(sll_t_linear_solver_abstract), intent(in), optional, target  linear_solver_a,
class(sll_t_linear_solver_abstract), intent(in), optional, target  linear_solver_b,
class(sll_t_linear_solver_abstract), intent(in), optional, target  linear_solver_c,
character(len=*), intent(in), optional  filename 
)
private

creates a kronecker linear solver the user must provide

  • either 2/3 linear solvers
  • or 1 filename and 2/3 linear operators
Parameters
[in,out]selfthe current object
[in]filnemaefile name containing the params namelist [optional]
[in]linear_operator_a1st linear operator [optional]
[in]linear_operator_b2nd linear operator [optional]
[in]linear_operator_c3rd linear operator [optional]

Definition at line 78 of file sll_m_linear_solver_kron.F90.

Here is the call graph for this function:

◆ free_linear_solver_kron()

subroutine sll_m_linear_solver_kron::free_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(inout)  self)
private

destroys the current object

Parameters
[in,out]selfthe current object

Definition at line 549 of file sll_m_linear_solver_kron.F90.

◆ print_info_linear_solver_kron()

subroutine sll_m_linear_solver_kron::print_info_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(in)  self)
private

destroys a finite element cell

Parameters
[in,out]selfthe current object

Definition at line 533 of file sll_m_linear_solver_kron.F90.

◆ read_from_file_linear_solver_kron()

subroutine sll_m_linear_solver_kron::read_from_file_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(inout)  self,
character(len=*), intent(in)  filename 
)
private

read from file

Parameters
[in,out]selfthe current object
[in]filename[optional] name of the output file

Definition at line 333 of file sll_m_linear_solver_kron.F90.

◆ set_verbose_linear_solver_kron()

subroutine sll_m_linear_solver_kron::set_verbose_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(inout)  self,
logical, intent(in)  verbose 
)
private

sets the verbose for the linear solver object

Parameters
[in,out]selfthe current object
[in]verboseverbose flag

Definition at line 316 of file sll_m_linear_solver_kron.F90.

◆ sll_allocate_linear_solver()

subroutine sll_m_linear_solver_kron::sll_allocate_linear_solver ( character(len=*), intent(in)  solver_name,
class(sll_t_linear_solver_abstract), intent(inout), allocatable  linear_solver,
logical, intent(out)  flag 
)
private

allocate the linear solver object

Parameters
[in]solver_namestring describing the linear solver to allocate
[in,out]linear_solverabstract object to be allocated
[out]flagtrue if success, false otherwise

Definition at line 288 of file sll_m_linear_solver_kron.F90.

Here is the caller graph for this function:

◆ sll_create_linear_solver_with_name()

subroutine sll_m_linear_solver_kron::sll_create_linear_solver_with_name ( character(len=*), intent(in)  solver_name,
class(sll_t_linear_operator_abstract), intent(in), target  linear_operator,
class(sll_t_linear_solver_abstract), intent(inout), allocatable  linear_solver,
logical, intent(out)  flag,
class(sll_t_linear_solver_abstract), intent(in), optional  pc_left 
)
private

create an linear solver using its name and a linear operator

Parameters
[in]solver_namestring describing the linear solver to allocate
[in]linear_operatora linear operator
[in,out]linear_solverlinear solver to be created
[out]flagtrue if success, false otherwise
[in]pc_lefta left preconditioner [optional]

Definition at line 230 of file sll_m_linear_solver_kron.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ solve_2_real_linear_solver_kron()

subroutine sll_m_linear_solver_kron::solve_2_real_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(inout)  self,
class(sll_t_linear_solver_abstract), intent(inout)  linear_solver_a,
class(sll_t_linear_solver_abstract), intent(inout)  linear_solver_b,
real(kind=f64), dimension(:), intent(in)  rhs,
real(kind=f64), dimension(:), intent(out)  unknown 
)
private

solves the linear system with real vectors

Parameters
[in,out]selfthe current object
[in]rhsthe right hand side
[in,out]unknownthe solution

TODO

Definition at line 375 of file sll_m_linear_solver_kron.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ solve_3_real_linear_solver_kron()

subroutine sll_m_linear_solver_kron::solve_3_real_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(in)  self,
intent(in)  rhs,
intent(out)  unknown 
)
private

apply the solve operation with real vectors

Parameters
[in,out]selfthe current object
[in]rhsthe right hand side
[in,out]unknownthe solution
[in]selfSolver object
Todo:

Definition at line 461 of file sll_m_linear_solver_kron.F90.

Here is the caller graph for this function:

◆ solve_real_linear_solver_kron()

subroutine sll_m_linear_solver_kron::solve_real_linear_solver_kron ( class(sll_t_linear_solver_kron), intent(inout)  self,
real(kind=f64), dimension(:), intent(in)  rhs,
real(kind=f64), dimension(:), intent(out)  unknown 
)
private

solves the linear system with real vectors

Parameters
[in,out]selfthe current object
[in]rhsthe right hand side
[in,out]unknownthe solution

Definition at line 348 of file sll_m_linear_solver_kron.F90.

Here is the call graph for this function:
    Report Typos and Errors