Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
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... | |
|
private |
creates a linear operator
[in,out] | self | the current object |
[in] | linop_a | a first linear_operator object (applied to second dimension) |
[in] | linop_b | a second linear_operator object (applied to second dimension) |
[in] | linop_c | a third linear_operator object (applied to third dimension) [optional] |
Definition at line 63 of file sll_m_linear_operator_kron.F90.
|
private |
apply the dot operation
[in,out] | self | the current object |
[in] | linop_1 | first linear operator |
[in] | linop_2 | second linear operator |
[in] | x | a real valued vector |
[in,out] | y | a real valued vector |
Definition at line 155 of file sll_m_linear_operator_kron.F90.
|
private |
apply the dot operation
[in,out] | self | the current object |
[in] | linop_1 | first linear operator |
[in] | linop_2 | second linear operator |
[in] | linop_3 | third linear operator |
[in] | x | a real valued vector |
[in,out] | y | a real valued vector |
Definition at line 229 of file sll_m_linear_operator_kron.F90.
|
private |
apply the dot operation
[in,out] | self | the current object |
[in] | x | a real valued vector |
[in,out] | y | a real valued vector |
Definition at line 129 of file sll_m_linear_operator_kron.F90.
|
private |
destroys the current object
[in,out] | self | the current object |
Definition at line 116 of file sll_m_linear_operator_kron.F90.
|
private |
prints a linear operator
[in,out] | self | the current object |
Definition at line 307 of file sll_m_linear_operator_kron.F90.
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
[in] | mat | input matrix |
[in,out] | vec | array of shape 1 representation of the matrix |
Definition at line 392 of file sll_m_linear_operator_kron.F90.
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
[in] | x | array to transpose |
[in,out] | x_t | transposed array |
Definition at line 330 of file sll_m_linear_operator_kron.F90.
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
[in] | vec | input vector |
[in,out] | mat | tensor reprensentation of the vector |
Definition at line 362 of file sll_m_linear_operator_kron.F90.