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_operator_kron Module Reference

Description

module for a linear operator of kronecker solver

Defines a linear operator so that his dot represents the action of L x = kron(A, B) x or L x = kron(A, B, C) x

Maintainer ARA Modified by Benedikt Perse Stability stable

Derived types and interfaces

type  sll_t_linear_operator_kron
 class for a linear operator More...
 

Functions/Subroutines

subroutine create_linear_operator_kron (self, linop_a, linop_b, linop_c)
 creates a linear operator More...
 
subroutine free_linear_operator_kron (self)
 destroys the current object More...
 
subroutine dot_linear_operator_kron (self, x, y)
 apply the dot operation More...
 
subroutine dot_2_linear_operator_kron (self, linop_1, linop_2, x, y)
 apply the dot operation More...
 
subroutine dot_3_linear_operator_kron (self, linop_1, linop_2, linop_3, x, y)
 apply the dot operation More...
 
subroutine print_info_linear_operator_kron (self)
 prints a linear operator More...
 
recursive subroutine, public sll_transpose (x, x_t)
 returnes the transpose of a 2d array
More...
 
subroutine, public sll_vector_to_matrix (vec, mat)
 converts a vector to a matrix More...
 
subroutine, public sll_matrix_to_vector (mat, vec)
 converts a matrix to a vector More...
 

Function/Subroutine Documentation

◆ create_linear_operator_kron()

subroutine sll_m_linear_operator_kron::create_linear_operator_kron ( class(sll_t_linear_operator_kron), intent(inout)  self,
class(sll_t_linear_operator_abstract), intent(in), target  linop_a,
class(sll_t_linear_operator_abstract), intent(in), target  linop_b,
class(sll_t_linear_operator_abstract), intent(in), optional, target  linop_c 
)
private

creates a linear operator

Parameters
[in,out]selfthe current object
[in]linop_aa first linear_operator object (applied to second dimension)
[in]linop_ba second linear_operator object (applied to second dimension)
[in]linop_ca third linear_operator object (applied to third dimension) [optional]

Definition at line 63 of file sll_m_linear_operator_kron.F90.

◆ dot_2_linear_operator_kron()

subroutine sll_m_linear_operator_kron::dot_2_linear_operator_kron ( class(sll_t_linear_operator_kron), intent(in)  self,
class(sll_t_linear_operator_abstract), intent(in)  linop_1,
class(sll_t_linear_operator_abstract), intent(in)  linop_2,
real(kind=f64), dimension(:), intent(in)  x,
real(kind=f64), dimension(:), intent(inout)  y 
)
private

apply the dot operation

Parameters
[in,out]selfthe current object
[in]linop_1first linear operator
[in]linop_2second linear operator
[in]xa real valued vector
[in,out]ya real valued vector

Definition at line 155 of file sll_m_linear_operator_kron.F90.

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

◆ dot_3_linear_operator_kron()

subroutine sll_m_linear_operator_kron::dot_3_linear_operator_kron ( class(sll_t_linear_operator_kron), intent(in)  self,
class(sll_t_linear_operator_abstract), intent(in)  linop_1,
class(sll_t_linear_operator_abstract), intent(in)  linop_2,
class(sll_t_linear_operator_abstract), intent(in)  linop_3,
real(kind=f64), dimension(:), intent(in)  x,
real(kind=f64), dimension(:), intent(inout)  y 
)
private

apply the dot operation

Parameters
[in,out]selfthe current object
[in]linop_1first linear operator
[in]linop_2second linear operator
[in]linop_3third linear operator
[in]xa real valued vector
[in,out]ya real valued vector

Definition at line 229 of file sll_m_linear_operator_kron.F90.

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

◆ dot_linear_operator_kron()

subroutine sll_m_linear_operator_kron::dot_linear_operator_kron ( class(sll_t_linear_operator_kron), intent(in)  self,
real(kind=f64), dimension(:), intent(in)  x,
real(kind=f64), dimension(:), intent(out)  y 
)
private

apply the dot operation

Parameters
[in,out]selfthe current object
[in]xa real valued vector
[in,out]ya real valued vector

Definition at line 129 of file sll_m_linear_operator_kron.F90.

Here is the call graph for this function:

◆ free_linear_operator_kron()

subroutine sll_m_linear_operator_kron::free_linear_operator_kron ( class(sll_t_linear_operator_kron), intent(inout)  self)
private

destroys the current object

Parameters
[in,out]selfthe current object

Definition at line 116 of file sll_m_linear_operator_kron.F90.

◆ print_info_linear_operator_kron()

subroutine sll_m_linear_operator_kron::print_info_linear_operator_kron ( class(sll_t_linear_operator_kron), intent(in)  self)
private

prints a linear operator

Parameters
[in,out]selfthe current object

Definition at line 307 of file sll_m_linear_operator_kron.F90.

◆ sll_matrix_to_vector()

subroutine, public sll_m_linear_operator_kron::sll_matrix_to_vector ( real(kind=f64), dimension(:,:), intent(in)  mat,
real(kind=f64), dimension(:), intent(inout)  vec 
)

converts a matrix to a vector

Parameters
[in]matinput matrix
[in,out]vecarray of shape 1 representation of the matrix

Definition at line 392 of file sll_m_linear_operator_kron.F90.

Here is the caller graph for this function:

◆ sll_transpose()

recursive subroutine, public sll_m_linear_operator_kron::sll_transpose ( real(kind=f64), dimension(:,:), intent(in)  x,
real(kind=f64), dimension(:,:), intent(out)  x_t 
)

returnes the transpose of a 2d array

Parameters
[in]xarray to transpose
[in,out]x_ttransposed array
Todo:
to be optimized depending on the biggest size

Definition at line 330 of file sll_m_linear_operator_kron.F90.

Here is the caller graph for this function:

◆ sll_vector_to_matrix()

subroutine, public sll_m_linear_operator_kron::sll_vector_to_matrix ( real(kind=f64), dimension(:), intent(in)  vec,
real(kind=f64), dimension(:,:), intent(inout)  mat 
)

converts a vector to a matrix

Parameters
[in]vecinput vector
[in,out]mattensor reprensentation of the vector

Definition at line 362 of file sll_m_linear_operator_kron.F90.

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