GBTOlib: a high-performance library for evaluation of molecular integrals
- 1. Charles University, Prague, Czech Republic
- 2. The Open University, Milton Keynes, United Kingdom
Description
On 15 Dec 2020 the first version of the GBTOlib library has been released for the public. This library is used by the UKRmol+ codes but has a general applicability and has been written to allow interfacing with other codes.
Capabilities
-
Evaluation of molecular integrals in the basis of atom-centered Gaussian orbitals and center-of-mass centered B-splines and/or Gaussians.
-
The center-of-mass (i.e. continuum) basis can be built from either Gaussians, B-splines or a combination of the two.
-
An arbitrary angular momentum for the continuum basis.
-
Transformation of the atomic integrals into basis of molecular orbitals.
-
Orbital orthogonalization using Gramm-Schmidt and/or Symmetric orthogonalization.
-
Flexible configuration of the library allowing it to be ran on various machines ranging from single-node workstations to massively-parallel HPC architectures.
-
Possibility to configure the library to use quadruple precision arithmetics and achieve higher than double precision of the actual integrals calculated.
-
Input of molecular geometry, Gaussian basis and orbitals via the standard MOLDEN file.
Notes for version 3.0
- The main improvement in this version is the implementation of the MPI (distributed) evaluation of the mixed BTO/GTO integrals and the subsequent sparse integral transformation. In principle this allows to run arbitrarily large calculations using BTOs without an intermediate I/O only by increasing the total number of nodes (total memory) available for the calculation.
- Version 3.0.1 resolves illegal memory accesses that may appear in calculations using threading (see below).
Features added in this version:
- Implemented MPI evaluation of the mixed BTO/GTO integrals.
- Implemented MPI version of the sparse integral transformation.
- Renaming of the modules to ensure unique and uniform naming: all GBTOlib modules now carry the
_gbl
suffix. - Optional calculation of exponentially damped dipole matrix elements implemented for all types of atomic integrals; new parameter in namelist process_control
- scatci_integrals now allows reuse of previously calculated AO/MO using basis_input in namelist
process_control
to indicate file path; allows sign-consistent calculations - Molecular orbitals in the Molden format can now be written even if BTO basis is used (only GTO contribution considered); this is mostly useful in connection with UKRmol+ to write out the Dyson orbitals from calculations including BTOs.
- Backward compatibility with v1.0 integral files implemented
scatci_integrals
now exits early if integral file exists- Verbosity control for GBTOlib implemented and keyword added to redirect output to terminal
- Some keywords added to documentation
- Some improvements to memory allocation
- Changes to what is/is not printed by default: different verbosity levels (1-4) can now be selected using the 'verbosity' flag in the namelist
process_control
forscatci_integrals
. - Change of intent of some variables; avoids compiler warning when compiling with Intel Fortran 2020
- Minimal basis test for H2 added
- Bugs corrected:
- to prevent memory leak in
free_scattering_gbl
module - accurate memory allocation in routine
eval_CGTO_shell_pair_pw_expansion
to avoid invalid memory acces - to avoid integer overflow (in routine
eval_boys
) in LP64 mode - so evaluation of amplitudes for irreducible representations without orbitals is skipped
- in integrals_D2h_photoionization_CC_parallel test when 32-bit MPI library is used
- when writing of a MOLDEN file when equivalent atoms are presentand when the order of the atoms does not match the order of the centers of the GTOs in the basis.
- to prevent memory leak in
Bugfixes in v 3.0.1
- Fixed illegal memory accesses when threading due to incorrect use of thread-unsafe routines for spherical harmonics (cgto_pw_expansions_mod.f90, bto_gto_integrals_mod.f90).
- This fix included optimizations of the range of angular momenta for which some intermediate quantities are needed.
- Fixed a bug in saving of the GTO basis set and the molecular orbitals to disk (molden_mod.f90). This affected UKRmol+ photoionization calculations for molecules with an atom on the center of mass (i.e. coinciding with the center of the continuum basis set).
- Added tests for mixed BTO/GTO basis sets and for molecules with an atom on the center of mass.
Bugfixes in v 3.0.2
- Fixed integral indexing function (molecular_basis_obj%integral_index) to ensure that indices for 2-electron integrals of the type (AB|CD) and (CD|AB) are always the same as they should be. Previously the case iCD >= iAB was producing index 0 leading to errors in Hamiltonian builds for Close-Coupling calculations in mpi-scatci.
Bugfixes and notes for v 3.0.3
- Inclusion of test files for PCCHF model (see 'A polarization-consistent R-matrix model: application to the photoionization of molecules' T. Meltzer and. Masin, JPB) implemented in UKRmol+
- Increased format width when printing the number of integrals read from the moints file
- Minor improvements to documentation
- Better error reporting when running the tests
- Bug corrected: bug that caused positron calculations to fail when recent version of the Intel compiler used corrected
Notes
Files
GBTOLib-3.0.1.zip
Additional details
Related works
- Is part of
- Software: 10.5281/zenodo.4120705 (DOI)
- Software: 10.5281/zenodo.4120626 (DOI)
- Is referenced by
- Software documentation: 10.1016/j.cpc.2019.107092 (DOI)
- Software documentation: 10.1016/j.cpc.2019.107062 (DOI)