NAFPack_matricielle Module

Module for Tensor operations in NAFPack


Uses

  • module~~nafpack_matricielle~~UsesGraph module~nafpack_matricielle NAFPack_matricielle module~nafpack_kinds NAFPack_kinds module~nafpack_matricielle->module~nafpack_kinds iso_fortran_env iso_fortran_env module~nafpack_kinds->iso_fortran_env

Used by

  • module~~nafpack_matricielle~~UsedByGraph module~nafpack_matricielle NAFPack_matricielle module~nafpack_direct_method NAFPack_Direct_method module~nafpack_direct_method->module~nafpack_matricielle module~nafpack_matrix_decomposition NAFPack_matrix_decomposition module~nafpack_direct_method->module~nafpack_matrix_decomposition module~nafpack_matrix_properties NAFPack_matrix_properties module~nafpack_direct_method->module~nafpack_matrix_properties module~nafpack_matrix_tools NAFPack_matrix_tools module~nafpack_direct_method->module~nafpack_matrix_tools module~nafpack_eigen NAFPack_Eigen module~nafpack_eigen->module~nafpack_matricielle module~nafpack_eigen->module~nafpack_matrix_decomposition module~nafpack_krylov_method NAFPack_Krylov_method module~nafpack_krylov_method->module~nafpack_matricielle module~nafpack_matrix_decomposition->module~nafpack_matricielle module~nafpack_matrix_properties->module~nafpack_matricielle module~nafpack_matrix_properties->module~nafpack_eigen module~nafpack_matrix_tools->module~nafpack_matricielle module~nafpack_preconditioners NAFPack_Preconditioners module~nafpack_preconditioners->module~nafpack_matricielle module~nafpack_preconditioners->module~nafpack_matrix_decomposition module~nafpack_iterative_methods NAFPack_Iterative_methods module~nafpack_iterative_methods->module~nafpack_matrix_decomposition module~nafpack_iterative_methods->module~nafpack_matrix_properties module~nafpack_iterative_methods->module~nafpack_preconditioners module~nafpack_iterative_params NAFPack_Iterative_Params module~nafpack_iterative_methods->module~nafpack_iterative_params module~nafpack_iterative_params->module~nafpack_matrix_decomposition module~nafpack_iterative_params->module~nafpack_preconditioners module~nafpack_linalg NAFPack_linalg module~nafpack_linalg->module~nafpack_direct_method module~nafpack_linalg->module~nafpack_preconditioners module~nafpack_linalg->module~nafpack_iterative_methods module~nafpack_linalg->module~nafpack_iterative_params

Functions

public function dot(a, b) result(result)

function that calculates the dot product of two real 3-dimensional vectors and

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:) :: a
real(kind=dp), intent(in), dimension(:) :: b

Return Value real(kind=dp)

public function cross(a, b) result(result)

function that calculates the cross product between two real 3-dimensional vectors and 1

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(3) :: a
real(kind=dp), intent(in), dimension(3) :: b

Return Value real(kind=dp), dimension(3)

public function norm_2_real(a) result(result)

function that calculates the Euclidean norm (L2 norm) of a vector , where where is the dimension of the real vector .

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:) :: a

Return Value real(kind=dp)

public function norm_2_complex(a) result(result)

function that calculates the Euclidean norm (L2 norm or modulus) of a vector , where where is the dimension of the complex vector .

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in), dimension(:) :: a

Return Value real(kind=dp)

public function normalise(a) result(result)

function that normalises a real vector a to make it a unit vector, where

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:) :: a

Return Value real(kind=dp), dimension(size(a))

public function normalise_complexe(a) result(result)

function that normalises a complex vector a to make it a unit vector, where

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in), dimension(:) :: a

Return Value complex(kind=dp), dimension(size(a))

public function Trace(A) result(result)

function that calculates the trace of a square matrix

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:, :) :: A

Return Value real(kind=dp)

public function Diagonally_Dominant_Matrix(A) result(diagonally_dominant)

function which checks if A is diagonally dominant

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:, :) :: A

Return Value logical

public function Identity_n(N, use_concurrent) result(Identity)

function that returns the identity matrix for a given size N

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: N
logical, intent(in), optional :: use_concurrent

Return Value real(kind=dp), dimension(N, N)

public function Diag(A) result(D)

function that extracts the diagonal of a matrix where is a vector containing the diagonal elements of the matrix .

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:, :) :: A

Return Value real(kind=dp), dimension(size(A, 1))

public function Make_Tridiagonal(d_minus, d, d_plus) result(T)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:) :: d_minus
real(kind=dp), intent(in), dimension(:) :: d
real(kind=dp), intent(in), dimension(:) :: d_plus

Return Value real(kind=dp), dimension(size(d, 1), size(d, 1))

public function rotation_matrix(A, rotation) result(G)

Function to create a rotation matrix

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:, :) :: A
integer, intent(in), dimension(2) :: rotation

Return Value real(kind=dp), dimension(size(A, 1), size(A, 2))