MPI-SCATCI 2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
Dispatcher_module Module Reference

Dispatcher module. More...

Functions/Subroutines

subroutine, public initialize_libraries
 Initialize libraries used by MPI-SCATCI.
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.
subroutine, public DispatchIntegral (sym_group_flag, ukrmolplus_integrals, integral)
 This subroutine dispatches the correct integral class based on simple parameters.

Detailed Description

Dispatcher module.

Authors
A Al-Refaie
Date
2017

This module provides the automatic selection of the correct classes needed by MPI SCATCI. These classes are the Integrals, Matricies and Diagonalizers

Note
30/01/2017 - Ahmed Al-Refaie: Initial revision.
16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.

Function/Subroutine Documentation

◆ DispatchIntegral()

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.

Authors
A Al-Refaie
Date
2017
Parameters
[in]sym_group_flagWhich symmetry group, this determines either ALCHEMY or SWEDEN/UKRMOL+.
[in]ukrmolplus_integralsFor D_2h_, determines either SWEDEN or UKRMOL+.
[out]integralThe resultant integral object.

Definition at line 264 of file Dispatcher_module.F90.

◆ DispatchMatrixAndDiagonalizer()

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.

Authors
A Al-Refaie
Date
2017

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-

Parameters
[in]diag_choiceFrom Options, used to force a particular diagonalizer.
[in]force_serialWhether to use serial method even in distributed run.
[in]matrix_sizeSize of Matrix. Used with number_of_eigenpairs to select the correct matrix format.
[in]number_of_eigenpairsNo. of eigensolutions requested.
[out]matrixThe selected matrix format.
[out]diagonalizerThe selected diagonalizer.
[in]integralA constructed and loaded integral class. This is required to write out the matrix header.
[in]matrix_ioThe IO unit for the matrix header.

Definition at line 109 of file Dispatcher_module.F90.

◆ initialize_libraries()

subroutine, public Dispatcher_module::initialize_libraries

Initialize libraries used by MPI-SCATCI.

Authors
J Benda
Date
2019

Currently only SLEPc needs global initialization.

Definition at line 83 of file Dispatcher_module.F90.