(git:fc9bb57)
Loading...
Searching...
No Matches
cp_cfm_elpa Module Reference

Wrapper for ELPA (complex matrices, i.e. cp_cfm_type) More...

Functions/Subroutines

subroutine, public set_elpa_c_kernel (requested_kernel)
 Sets the active ELPA kernel for complex matrices.
 
subroutine, public check_elpa_c_kernel_correctness (para_env)
 One-time runtime correctness check for ELPA complex BLOCK2 kernels. A small deterministic eigenproblem is solved on a single process with the same production routine used for the actual diagonalizations, and the eigenpair residual as well as the eigenvector orthogonality are verified. This guards against mis-compiled kernels (GCC 15.2 regression, marekandreas/elpa#77). If the check fails, a module flag is set such that cp_cfm_heevd falls back to ScaLAPACK.
 
logical function, public is_elpa_c_broken ()
 Returns .TRUE. if the runtime check detected broken BLOCK2 kernels.
 
subroutine, public cp_cfm_diag_elpa (matrix, eigenvectors, eigenvalues)
 Driver routine to diagonalize a CFM matrix with the ELPA library.
 

Variables

integer, dimension(1), parameter, public elpa_c_kernel_ids = [-1]
 
character(len=14), dimension(1), parameter, public elpa_c_kernel_names = ["AUTO"]
 
character(len=44), dimension(1), parameter, public elpa_c_kernel_descriptions = ["Automatically selected kernel"]
 

Detailed Description

Wrapper for ELPA (complex matrices, i.e. cp_cfm_type)

Function/Subroutine Documentation

◆ set_elpa_c_kernel()

subroutine, public cp_cfm_elpa::set_elpa_c_kernel ( integer, intent(in)  requested_kernel)

Sets the active ELPA kernel for complex matrices.

Parameters
requested_kernelone of the elpa_c_kernel_ids

Definition at line 190 of file cp_cfm_elpa.F.

Here is the caller graph for this function:

◆ check_elpa_c_kernel_correctness()

subroutine, public cp_cfm_elpa::check_elpa_c_kernel_correctness ( type(mp_para_env_type), intent(in)  para_env)

One-time runtime correctness check for ELPA complex BLOCK2 kernels. A small deterministic eigenproblem is solved on a single process with the same production routine used for the actual diagonalizations, and the eigenpair residual as well as the eigenvector orthogonality are verified. This guards against mis-compiled kernels (GCC 15.2 regression, marekandreas/elpa#77). If the check fails, a module flag is set such that cp_cfm_heevd falls back to ScaLAPACK.

Parameters
para_envcommunicator of the run, used to agree on the check result

Definition at line 263 of file cp_cfm_elpa.F.

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

◆ is_elpa_c_broken()

logical function, public cp_cfm_elpa::is_elpa_c_broken

Returns .TRUE. if the runtime check detected broken BLOCK2 kernels.

Returns
...

Definition at line 378 of file cp_cfm_elpa.F.

Here is the caller graph for this function:

◆ cp_cfm_diag_elpa()

subroutine, public cp_cfm_elpa::cp_cfm_diag_elpa ( type(cp_cfm_type), intent(in)  matrix,
type(cp_cfm_type), intent(in)  eigenvectors,
real(kind=dp), dimension(:), intent(out)  eigenvalues 
)

Driver routine to diagonalize a CFM matrix with the ELPA library.

Parameters
matrixthe matrix that is diagonalized
eigenvectorseigenvectors of the input matrix
eigenvalueseigenvalues of the input matrix

Definition at line 390 of file cp_cfm_elpa.F.

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

Variable Documentation

◆ elpa_c_kernel_ids

integer, dimension(1), parameter, public cp_cfm_elpa::elpa_c_kernel_ids = [-1]

Definition at line 141 of file cp_cfm_elpa.F.

◆ elpa_c_kernel_names

character(len=14), dimension(1), parameter, public cp_cfm_elpa::elpa_c_kernel_names = ["AUTO"]

Definition at line 142 of file cp_cfm_elpa.F.

◆ elpa_c_kernel_descriptions

character(len=44), dimension(1), parameter, public cp_cfm_elpa::elpa_c_kernel_descriptions = ["Automatically selected kernel"]

Definition at line 143 of file cp_cfm_elpa.F.