MPI-SCATCI  2.0
An MPI version of SCATCI
elpadiagonalizer_module Module Reference

Diagonalizer type using ELPA backend. More...

Data Types

type  elpadiagonalizer
 Diagonalizer class. More...
 

Functions/Subroutines

subroutine initialize_elpa
 Initialize the ELPA library. More...
 
subroutine diagonalize_backend_elpa (this, matrix_elements, num_eigenpair, z_mat, w, all_procs, option, integrals)
 Diagonalization kernel. More...
 
subroutine elpa_assert (sub, msg, err)
 Check ELPA error code. More...
 

Variables

integer, parameter elpaint = c_int
 

Detailed Description

Diagonalizer type using ELPA backend.

Authors
J Benda
Date
2019

This module will be built only if ELPA (and ScaLAPACK) is available.

Function/Subroutine Documentation

◆ diagonalize_backend_elpa()

subroutine elpadiagonalizer_module::diagonalize_backend_elpa ( class(elpadiagonalizer this,
class(scalapackmatrix), intent(in)  matrix_elements,
integer, intent(in)  num_eigenpair,
real(wp), dimension(:,:), intent(inout), allocatable  z_mat,
real(wp), dimension(:), intent(inout), allocatable  w,
logical, intent(in)  all_procs,
type(options), intent(in)  option,
class(baseintegral), intent(in)  integrals 
)

Diagonalization kernel.

Authors
J Benda
Date
2019

Perform the diagonalization of a symmetric cyclically block-distributed ScaLAPACK matrix. Use the ELPA library. It is assumed that the library has been initialized prior to this call. The eigenvectors will be stored in z_mat, eigenvalues in w, both of which will be allocated by this subroutine.

Definition at line 92 of file ELPADiagonalizer_module.f90.

Here is the call graph for this function:

◆ elpa_assert()

subroutine elpadiagonalizer_module::elpa_assert ( character(len=*), intent(in)  sub,
character(len=*), intent(in)  msg,
integer(elpaint), intent(in)  err 
)

Check ELPA error code.

Authors
J Benda
Date
2019

Verify that the given ELPA error code is equal to ELPA_OK. If not, print the given error message and terminate the program.

Definition at line 168 of file ELPADiagonalizer_module.f90.

Here is the caller graph for this function:

◆ initialize_elpa()

subroutine elpadiagonalizer_module::initialize_elpa

Initialize the ELPA library.

Authors
J Benda
Date
2019

Set upt the ELPA library for use. This needs to be called once at the beginning of the program. Initialization of the library selects a specific version of the API to use when communicating with the library. Currently, the API of version 20181112 is used.

Definition at line 72 of file ELPADiagonalizer_module.f90.

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

Variable Documentation

◆ elpaint

integer, parameter elpadiagonalizer_module::elpaint = c_int

Definition at line 47 of file ELPADiagonalizer_module.f90.