FHI-aims CHANGELOG
How to understand this CHANGELOG (and FHI-aims):
Here, we list a rough overview of recent changes in FHI-aims. A complete record is available directly through the FHI-aims GitLab. Every user is welcome and encouraged to gain access to the FHI-aims GitLab. The GitLab repository is also the location where bug fixes, improvements etc. will be made available.
A final general note: Please have a look at the growing Wiki in the FHI-aims GitLab. You'll find helpful information about compiling and running FHI-aims: https://aims-git.rz-berlin.mpg.de/aims/FHIaims/-/wikis/home
Changes since release version 250320
Breaking changes (read below for further details):
- Partition centers for periodic calculations bugfix
- Hybrid potential enhancements
- Using PBE minimal basis for metaGGAs by default
EmbASI implementation (Gabriel Bramley)
EmbASI
is a Pythonic wrapper that performs embedding through a set of sequential SCF calculations for relevant fragments of the supersystem/subsystem for a given level of theory.
- DFT-in-DFT and WF-in-DFT embedding supported for small systems.
- The invocation of FHI-aims library call and the communication of data structures necessary for QM-in-QM embedding are controlled by the ASI interface.
- Implements the Projection-based Embedding (PbE) method of Manby et al. (https://pubs.acs.org/doi/10.1021/acs.accounts.8b00672).
Superconductivity module (Connor Box)
- This module calculates the electron-phonon coupling parameters, the Eliashberg function, and the superconducting transition temperature $T_c$ using the Allen-Deyne's formula
- Based on the electron-phonon coupling / electronic friction module
- Usage:
calculate_superconductivity numerical
- triggers the calculation of the electron-phonon coupling elements and the electronic friction tensor.
Interface for continuum embedding package Environ
(Jakob Filser)
Environ
is a computational library aimed at introducing environment effects to atomistic first-principles simulations
- The publication preprint describing the interface: https://arxiv.org/abs/2507.17672
- Currently, only orthorhombic cells are implemented
- Communication is entirely file based
- To use: set
solvent Environ
in control.in
and run environ
executable with -n with_aims
command line flag
- For more information please refer to the manual Sec. 3.18.4.
Partition centers for periodic calculations bugfix (James A. Green)
- Enlarged the atomic centers list used for computation of the Stratmann partition function and Hirshfeld partition weights for periodic calculations when the radial grid (controlled by the
radial_base
keyword) is larger than the radius of the cutoff potential (controlled by the cut_pot
keyword).
- This is a breaking change to total energies, and 2 keywords have been added to allow backwards compatibility:
- Setting
partition_centers_2025 .false.
in control.in uses the old atomic centers list for computation of the Stratmann partition function.
- Setting
hirshfeld_partition_centers_2025 .false.
in control.in uses the old atomic centers list for computation of the Hirshfeld partition weights.
- These keywords are planned to be deprecated in a future release.
- Two regression tests have been added where these discontinuous energy jumps were noted in the old atomic centers lists: He_box_partition_centers and xdm-graphite.
Hybrid potential enhancements (Sebastian Kokott)
- New Approximation (extended screening function) for efficient evaluation of long-range EXX in hybrid functional; cf. https://doi.org/10.1063/5.0262451
- New functional PBE0' (xc pbe0_prime): PBE0 functional with the extended screening function as used in https://doi.org/10.1063/5.0262451
- Performance Improvements and several fixes for the range-separated hybrids: approx a factor two faster and a factor two less memory.
- However, also the energies and related quantities will slightly change (breaking change)
- Support for Yukawa screened hybrid functionals from Libxc (labeled with
CAMY
)
- Allow to also cut short-range Coulomb potential (for under-converged k-grids), e.g. in the HSE functional. Can be activated by setting
cut_coulomb_short_range .true.
in the control.in
file.
- It will help to speed up convergence with respect to k-grid density. It is not used by default, because it may add an additional component to the stress tensor (because the cutoff radius depends on the unit cell size as well)
Implementation of relativistic q4c with use_scalapack + use_local_index
(Wentao Zhang)
- A complete new set of algorithms have been introduced to enable ScaLAPACK support for the local dense format in relativistic q4c calculations, which reduces the memory usage for large periodic systems
- In order to use the new feature, please set
relativistic q4c
and use_local_index .true.
; and also since we use Scalapack, please ensure that n_tasks > number of the k-grid points.
- New exact four component density matrix based density update method for both large and small components density in q4c for all current implemented FHI-aims matrix storage formats
- A new keyword,
q4c_small_dens_update
is added (default value is .true.
). This controls whether to use the new update method or not (corresponding to previous q4c code). The default is to use new method.
- Band structure can be calculated at q4c level of theory for systems of up to 1500 atoms
Additional changes:
- Using PBE minimal basis for metaGGAs by default (Sebastian Kokott, breaking change, can be overridden with
atomic_solver_xc pw-lda
)
- Fixed MPI communicator leaks in BLACS initialization functions that lead to crashes of FHI-aims during long MD runs (Hans Pabst, Florian Merz)
- SCF convergence infrastructure (Konstantin Lion):
- The unmixed (or mixed) charge densities is tracked in the SCF with
save_scf_convergence_step()
- Every number of steps (25 is default) the data is smoothed, the slope is calculated and the number of steps to convergence is estimated
- New method for including perturbative spin-orbit coupling based on atomic ZORA Hamiltonian rather than Pauli approximation (Dorothea Golze, Qing-Long Liu)
- Implementation of the Hartree-Fock Adiabatic Connection methods with new GGAs for strong correlations (Fabio Della Sala)
- D3 Updates (James A. Green):
- Properly defined the wB97X-D3(0) and wB97X-D3(BJ) parameters for D3, and added a note in the manual about which LibXC functional should be chosen:
- wB97X-D3(0) is the combination of the wB97X-D3 functional (HYB_GGA_XC_WB97X_D3) from: You-Sheng Lin, Guan-De Li, Shan-Ping Mao, and Jeng-Da Chai, J. Chem. Theory Comput., 9(1):263-272, 2013, plus zero damping.
- wB97X-D3(BJ) is the combination of the wB97X-V functional (HYB_GGA_XC_WB97X_V) without VV10 contribution from Asim Najibi and Lars Goerigk., J. Chem. Theory Comput., 14(11):5725-5738, 2018, with rational/Becke-Johnson damping.
- Added
d3 damping=bj
as an alias for d3 damping=rational
, as it is perhaps more commonly known as Becke-Johnson damping in the literature.
- Added D3 regression tests
d3-graphite-offset
and d3-h2o-dimer
- Enabled compilation of D3 for NVHPC compilers.
- Added D3 to the vdW-like corrections timings.
- Enabled output of kinetic/hartree/xc potential matrices (Min-Ye Zhang):
- Related keyword:
output k_eigenvalue_decompose
, matrices output enabled by setting output k_eigenvalue_decompose .true.
- New checks included to avoid CPU-related numerical issues (Konstantin Lion):
- Comparison between build-time CPU and runtime execution CPU -> Warning if not equal
- Detection of heterogeneous CPU configurations within compute nodes -> Raise error and terminate if not homogeneous
- Verification of identical CPU architectures across multiple nodes -> Raise error and terminate if not homogeneous
- Can be overridden with
override_cpu_checks .true.
- Bug fixes for friction (Connor Box)
- CMake fixes (Andrei Sobolev):
- Fix for the CMake build with the external libxc when using
LIBXC_VERSION
flag in cmake initial cache:
- Changed the webpage used to download external libxc
- Changed the mechanism to build external libxc from autotools to cmake, so that any external libxc version from 3.0 to the latest is supported
- Fixed silent switching of FHI-aims build from parallel to serial if parallel libraries or compilers are not found:
- Now the serial version of the code is compiled only when the user explicitly turns
USE_MPI
and USE_SCALAPACK
off
- New functionals for XDM variants (Kyle Bryenton):
- revPBE
- revPBE0
- LC-wPBEh-40w-00x
- LC-wPBEh-40w-20x
- Support applies to XDM and XCDM, for both BJ and Z damping.
- Minor changes to damping coefficients for
- LC-wPBEh-20w-00x
- LC-wPBEh-20w-20x
- LC-wPBEh-20w-00x and LC-wPBEh-20w-20x are no longer supported for tier2_aug2 basis. Use
tight
damping parameters instead in this case.
- Further updates to the experimental XCDM method. More information on the method may be found in the pre-print: https://arxiv.org/abs/2506.02352
- RPA forces improvements (Mohammad Tahir)
- Include unit selection with
pressure_unit
for the external_pressure
keyword; the available choices are GPa or eV/AA (Konstantin Lion)
- Fixed the slab identification routines to work with the cells that are not mapped to the center cell (Konstantin Lion)
- Fixed the restart of RT-TDDFT calculation with k-points and MPI parallelization (Chris Shepard)
- Fixed array allocation bug when running CC4S with certain flags (Andrei Sobolev)
- Small fixes (James A. Green):
- Bugfix for the missing Y contribution to the full Bethe-Salpeter equation oscillator strength in the serial module, and a bugfix for the transition moments in the parallel module.
- Bugfix for elsi_restart read with density_update_method split_update_methods.
- Bugfix for elsi_restart_use_overlap LAPACK branch (more k-points than tasks).
- Changed error message that said empty sites+PBC are disabled (because they are not) to a warning to say that it should be regarded as experimental.
- Set
override_initial_charge_check
to be .true.
automatically when restarting a calculation using the keywords restart
or elsi_restart
(only when reading), or when doing a deltaSCF calculation (keywords deltascf_basis
or deltascf_projector
) as the check doesn't make sense in these cases.
- Stop added for
occupation_type integer
with spin collinear
.
- The shared memory size of the docker container used to run the CI pipeline on gitlab was enlarged from the default 64 MB to 128 MB.
- Implementation of Mayer bond order calculation via an external script, as described in Section 3.45.3 of the manual (Jonas Brandhoff)
- Fixed missing comment symbol in Mn species' defaults (Thomas Purcell)