Changelog#

Unreleased#

0.7.0 - 2026-08-02#

Breaking changes#

  • API librpa_set_kgrids_kvec changed to accept the number of loaded SCF k-points explicitly and optional k-point weights. C++/Fortran bindings changed accordingly: set_kgrids_kvec.

  • API librpa_set_ibz_mapping was renamed to librpa_set_kq_mapping. C++/Fortran bindings changed accordingly: set_ibz_mapping was renamed to set_kq_mapping.

Added#

  • New public APIs:

    • Global output control: librpa_set_output_level and librpa_get_output_level.

    • Restart setup: librpa_set_restart_from_dir.

    • Auxiliary-basis and symmetry metadata: librpa_set_ao_basis_aux_shrink, librpa_set_basis_convention, and librpa_set_symmetry_operations.

    • Packed-complex Coulomb input: librpa_set_aux_bare_coulomb_k_atom_pair_packed, librpa_set_aux_cut_coulomb_k_atom_pair_packed, librpa_set_aux_bare_coulomb_k_2d_block_packed, and librpa_set_aux_cut_coulomb_k_2d_block_packed.

    • Velocity-matrix input: librpa_set_velocity_matrix and librpa_set_velocity_matrix_packed.

    • GW quasiparticle and spectral-function retrieval: librpa_get_g0w0_qpe_kgrid, librpa_get_g0w0_qpe_band_k, librpa_get_g0w0_spectral_function_kgrid, and librpa_get_g0w0_spectral_function_band_k.

  • Added CUDA and HIP acceleration for EXX, RPA, GW, and head/wing calculations through LibDDLA, GPU-enabled LibRI, and optional ELPA routines.

  • Added support for bundled or external ELPA and bundled or external LibDDLA installations.

  • Added two-level k-point/BLACS parallelism for eigenvector redistribution, density and Green functions, EXX, response, and GW calculations.

  • Added versioned binary readers for Coulomb matrices, LRI coefficients, KS eigenvectors, and velocity matrices, with automatic format detection and legacy-data conversion utilities.

  • Added selectable iterative, quasi-Newton, and perturbative quasiparticle solvers, adaptive damping, fallback output, Hedin’s shift, and independent analytic-continuation grids and resampling.

  • Added symmetry-operation input APIs, basis-shell metadata, k-star reconstruction, and configurable Born-von Kármán remapping.

  • Added analytic GW and RPA head/wing workflows, response-collection chunking, and sparse-block handling.

  • Added restart loading from a separate directory and outputs for atom-pair screened interactions, k-frequency self-energies, ranged EXX/self-energy matrices, and binary spectral functions.

Changed#

  • Changed driver input handling to auto-detect supported dataset formats and exposed input filenames and prefixes as runtime parameters.

  • Changed the default Born-von Kármán remapping to consider multiple periodic images.

  • Changed the iterative quasiparticle solver to residual mixing and tightened its default convergence threshold.

  • Improved memory use and scaling in response Fourier transforms, screened interactions, self-energy rotation, and symmetry-enabled calculations.

  • Made the driver fail cleanly on missing input files, unknown tasks, and initialization or task exceptions while finalizing LibRPA and MPI as applicable.

  • Made the required MPI thread-support level configurable at build time and added startup reporting of the requested and provided levels.

Deprecated#

  • Deprecated task = g0w0_band; use task = g0w0. The old value remains an accepted alias.

  • Deprecated the monolithic basis_out, symrot_k, and irreducible_sector.txt inputs in favor of split basis data and parsed symmetry operations.

  • Retained several renamed runtime parameters as compatibility aliases; the preferred names are listed in the runtime-parameter documentation.

Fixed#

  • Fixed symmetry reconstruction and k-parallel execution for EXX, RPA, GW, spinor wavefunctions, and head/wing corrections, including an MPI hang.

  • Fixed head/wing normalization, shrink-basis selection, GPU execution, and dielectric-solver error reporting.

  • Fixed small-basis calculations with large MPI task counts, non-LibRI response routes, distributed wavefunction layouts, and multiple input/output regressions.

0.6.0 - 2026-05-25#

Added#

  • Extended spin-orbit coupling and spinor-wavefunction support across input readers, public APIs, response construction, EXX, GW, and band calculations.

  • Added experimental head/wing corrections, including spin-polarized and two-dimensional dielectric workflows.

  • Added experimental auxiliary-basis and response compression, followed by screened-interaction unfolding.

  • Added QSGW backend and task infrastructure for future development. The QSGW task remained disabled in this release.

  • Introduced a regression-test backend with new ABACUS and FHI-aims cases, result comparisons, labels, and MPI smoke coverage.

  • Added new runtime controls, including minimax regulation and PyATB input selection.

Changed#

  • Updated the C++, C, and Fortran interfaces and their documentation for the spinor workflows.

  • Replaced the GPL Lebedev quadrature component with a local implementation under a compatible LGPL license.

  • Cleaned up obsolete code paths and third-party components.

Fixed#

  • Corrected spinor Green-function, response, EXX, self-energy, and quasiparticle calculations.

  • Fixed several distributed-matrix, MPI, input-reading, and non-LibRI build failures.

0.5.0 - 2026-03-28#

Added#

  • Added C/C++ and Fortran APIs for packed wavefunctions, band-path data, EXX band potentials, G0W0 self-energies, and quasiparticle energies.

  • Added atom-pair-to-BLACS and BLACS-to-atom-pair matrix redistribution with reusable index scheduling.

  • Added k-parallel Green-function construction and self-energy rotation for G0W0 calculations.

  • Added APIs for imaginary-frequency grids and dielectric-function input.

  • Added per-process profiling output and embedded Git reference information.

Changed#

  • Migrated the EXX and G0W0 driver tasks to the public API workflows.

  • Bundled LibRI and LibComm instead of requiring them as Git submodules.

  • Overhauled the installation, driver, API, tutorial, and reference documentation.

  • Improved OpenMPI and ScaLAPACK discovery and documented SCALAPACK_DIR.

Fixed#

  • Corrected quasiparticle energies with multiple MPI tasks and without k-distributed eigenvectors.

  • Fixed failures when the MPI task count exceeded the number of atom pairs.

  • Fixed non-square process-grid handling and several Fortran-binding issues.

0.4.0-gw-benchmark - 2026-03-18#

This tag is the benchmark snapshot used for the LibRPA GW paper.

Added#

  • Added EXX and G0W0 band-structure workflows, including band-path input, k-grid quasiparticle energies, and KS/EXX/GW band output.

  • Added spectral-function calculations based on analytic continuation, with an optional imaginary-frequency shift.

  • Added automatic binary-format detection and readers for coefficient and Coulomb-matrix inputs.

  • Added a configurable driver input directory and general ELSI CSC matrix readers and writers.

  • Expanded regression coverage for atoms, molecules, and periodic solids.

Changed#

  • Reduced memory use in Green-function, response, screened-interaction, and self-energy calculations and improved their MPI/OpenMP scalability.

  • Optimized Fourier transforms, atom-pair redistribution, and coefficient and Coulomb-matrix input.

  • Adapted LibRPA to the updated LibRI RPA/GW interface.

Fixed#

  • Corrected EXX/GW basis rotations when the band and state counts differ.

  • Fixed band interpolation, distributed indexing, and small-system behavior with large MPI task counts.

  • Fixed multiple memory leaks and non-LibRI build regressions.

0.3.0 - 2024-11-22#

Added#

  • Added RPA correlation-energy, EXX, and initial G0W0 quasiparticle workflows, including analytic continuation and quasiparticle-equation solvers.

  • Added public C/C++ APIs and a Fortran binding for initializing LibRPA, supplying mean-field data, and retrieving RPA and EXX results.

  • Added ScaLAPACK two-dimensional block-matrix infrastructure and LibRI atom-pair routing with MPI/OpenMP parallelism.

  • Added binary coefficient input, real-space screened-interaction output, and driver runtime controls.

  • Added Sphinx and Doxygen documentation, GitHub Pages deployment, tutorials, and regression tests.

Changed#

  • Reorganized LibRPA into a shared library, driver, bindings, and tests.

  • Adopted CMake as the supported build system and added platform-specific build examples.

  • Integrated LibRI, LibComm, cereal, and GreenX time-frequency grids.

Fixed#

  • Corrected numerous response, RPA, EXX, GW, time-frequency transformation, and parallel-routing errors.

  • Fixed macOS builds, non-LibRI builds, output redirection, and binary-input behavior.

0.01 - 2024-04-16#

Initial tagged snapshot.

Added#

  • Added the initial standalone space-time response and RPA correlation-energy workflow with an FHI-aims file interface.

  • Added MPI/OpenMP execution, minimax time-frequency transformations, LibRI response construction, and ScaLAPACK-based RPA calculations.

  • Added CMake and Make build paths, runtime parameter parsing, profiling, regression cases, and initial continuous integration.

Fixed#

  • Corrected early Green-function, response, spin, and distributed RPA-energy calculations.