MPI-SCATCI
2.0
An MPI version of SCATCI
|
Dispatcher module. More...
Functions/Subroutines | |
subroutine, public | initialize_libraries |
Initialize libraries used by MPI-SCATCI. More... | |
subroutine, public | dispatchmatrixanddiagonalizer (diag_choice, force_serial, matrix_size, number_of_eigenpairs, matrix, diagonalizer, integral, matrix_io) |
This subroutine determines which matrix format/diagonalizer pair to be used by SCATCI in build diagonalization. More... | |
subroutine, public | dispatchintegral (sym_group_flag, ukrmolplus_integrals, integral) |
This subroutine dispatches the correct integral class based on simple parameters. More... | |
Dispatcher module.
This module provides the automatic selection of the correct classes needed by MPI SCATCI. These classes are the Integrals, Matricies and Diagonalizers
subroutine, public dispatcher_module::dispatchintegral | ( | integer, intent(in) | sym_group_flag, |
logical, intent(in) | ukrmolplus_integrals, | ||
class(baseintegral), intent(out), pointer | integral | ||
) |
This subroutine dispatches the correct integral class based on simple parameters.
[in] | sym_group_flag | Which symmetry group, this determines either ALCHEMY or SWEDEN/UKRMOL+. |
[in] | ukrmolplus_integrals | For D_2h_, determines either SWEDEN or UKRMOL+. |
[out] | integral | The resultant integral object. |
Definition at line 242 of file Dispatcher_module.F90.
subroutine, public dispatcher_module::dispatchmatrixanddiagonalizer | ( | integer, intent(in) | diag_choice, |
integer, intent(in) | force_serial, | ||
integer, intent(in) | matrix_size, | ||
integer, intent(in) | number_of_eigenpairs, | ||
class(basematrix), intent(out), pointer | matrix, | ||
class(basediagonalizer), intent(out), pointer | diagonalizer, | ||
class(baseintegral), intent(in) | integral, | ||
integer, intent(in) | matrix_io | ||
) |
This subroutine determines which matrix format/diagonalizer pair to be used by SCATCI in build diagonalization.
It determines what type of diagonalizer based on the matrix size and number of eigenpairs and whether to use the Legacy SCATCI diagonalizers for nprocs = 1 / -Dnompi option or to use an MPI one-
[in] | diag_choice | From Options, used to force a particular diagonalizer. |
[in] | force_serial | Whether to use serial method even in distributed run. |
[in] | matrix_size | Size of Matrix. Used with number_of_eigenpairs to select the correct matrix format. |
[in] | number_of_eigenpairs | No. of eigensolutions requested. |
[out] | matrix | The selected matrix format. |
[out] | diagonalizer | The selected diagonalizer. |
[in] | integral | A constructed and loaded integral class. This is required to write out the matrix header. |
[in] | matrix_io | The IO unit for the matrix header. |
Definition at line 111 of file Dispatcher_module.F90.
subroutine, public dispatcher_module::initialize_libraries |
Initialize libraries used by MPI-SCATCI.
Currently only SLEPc needs global initialization.
Definition at line 85 of file Dispatcher_module.F90.