GBTOlib: a high-performance library for evaluation of molecular integrals
Authors/Creators
- 1. Charles University, Prague, Czech Republic
- 2. The Open University, Milton Keynes, United Kingdom
Description
This library is used by the UKRmol+ codes but has a general applicability and has been interfaced with other codes. It follows the Fortran 2003 standard and has been written as a highly flexible object-oriented code.
Capabilities
-
Evaluation of various types 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.
General information for version 4.0.0
- The new release comes with the option to run the code immediately without the need to compile it manually by using one of the two prepared computing environments: (1) Docker container (
docker_image_gbtolib-4.0.0.zip) and (2) Conda environment. Detailed instructions for using and setting up these environments are provided in theconda/README.mdfile. Note that the Docker container is known to run without problems in MPI mode on a single computing node. For MPI runs across nodes we strongly advise you to compile the code yourself on your platform. Follow the instructions in the main README.md file. - The current code implements a number of significant performance improvements. The performance of the new version with respect to the previous ones is illustrated in the figure provided (
performace_improvements_illustration.zip). The benchmark was performed for a representative calculation of molecular integrals for the CO2 molecule with a large B-spline type basis for the continuum. - A detailed description of the new features and fixes is below.
New features
-
Implementation of Effective Core Potentials
-
Enable MPI build without MPI compiler wrappers
-
Interface for loading GBTO MO basis information and 2-el integrals in ADC codes
-
Implementation of BGGG semi-analytic integrals and 2p continuum integrals
-
Implemented triple overlap integrals over an arbitrary combination of GTO and BTO functions
-
Poisson method for 2-electron integrals implemented
-
Enable disk mapping for two-electron integrals over atomic orbitals
-
Allow selection of Molden orbitals by occupation
-
Compact indexing of AO integrals
-
DALTON Molden file support
-
Enable scratch use in sparse integral transformation
-
A new program “orbitals_to_cube” for sampling of orbitals into Gaussian CUBE format
-
New build options: Conda, Docker
Bug fixes
-
A combined ALLOCATED(X) check and SIZE(X) comparison has been split into two separate IF conditions to avoid calling SIZE(X) with a possibly non-allocated array X.
-
Use double precision walltime in omp_get_wtime
-
Support 32-bit MPI in large allgatherv
-
Correct CGTO shell order in written Molden files + allow writing in spherical basis
-
Use TYPE instead of CLASS for non-polymorphic argument
-
Fix dimension of angular_integrals_tmp
-
Reset dummy INTENT(OUT) arguments in MPI module
-
Replace a hard-coded value by a predefined MPI constant
-
Fixing r2 grid in legendre_grid_r1_r2_obj
-
Do not finalize uninitialized integral storage
-
Avoid IFX deadlock in sort_intermediate_integrals
-
Fix CAS in C1 test Psi4 inputs
-
Synchronize orthogonalized MOs in MPI mode
-
Avoid knot interpolation at endpoints
-
Fix two calls to gl_expand_A_B
Optimizations of speed and memory use
-
Improve load balancing in CGTO pw expansion precomputing
-
Evaluate molecular orbital in parallel
-
Distribute 1e transformation of integrals
-
Finalize AO 1e integrals earlier
-
Remove w1_w2 array
-
Optimize Ylm calculation by factorization
-
Avoid a few OpenMP critical sections in 2p integrals
-
Threaded evaluation of BB 1el integrals
-
Parallelize complex Gaunt precalculation
-
Add threading also to CMS routines for BGBG integrals
-
Reduce intermediate storage in sparse transformation
-
Jointly evaluate BGGG and BBGG ints also for mixed method 1
-
Add threading to the last part of omp_calculate_CGTO_pw_coefficients_analytic
-
Sort also the final integrals in parallel
Other improvements
-
Use ISO/IEC 80000 symbol for memory size
-
add PCCHF tests for electron scattering
-
Increase verbosity of basis_read
-
Remove parameter max_contr_len
-
Simplify install path handling in CMake scripts
-
Store LOGICAL "use_symmetry" in moints as integer
-
Construct B-spline grid as linear interpolation
-
Do not require C++ in CMake scripts
-
Avoid passing global variables to program routines
-
Use 3.5 as minimum version of CMake
-
Improve error message on failure of MPI_File_set_view
-
Define local masters comm in mpi_mod
-
Avoid CMake 3.10 deprecation warning
-
Report BLAS integer size
-
Replace legacy Cilk directive with OpenMP counterpart
-
Print more details when "Sym=" not present in molden
-
Polish memory mapping of files in Windows
-
Changes to support addition of enhancement factors for positron scattering
Notes
Files
GBTOLib-4.0.0.zip
Additional details
Dates
- Created
-
2026-01-21Release 4.0.0
Software
- Repository URL
- https://gitlab.com/Uk-amor/UKRMol/GBTOLib
- Programming language
- Fortran
- Development Status
- Active