![]() |
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.
1.9.1