The new keyword IGNORE_CONVERGENCE_FAILURE can be set to obtain the old permissive behaviour.
It replaces the keyword NOTCONV_STOPALL which enforced until now the strict behaviour which is now the default.
Previously, Amber dihedral parameters were assigned in two steps:
1. Find all unique dihedral parameters in the topology. Uniqueness is
defined by combination of kinds of involved atoms
2. Walk along the full dihedral list and for every dihedral pick matching
set of parameters based on the kinds of corresponding atoms
This patch change this behavior to use dihedral parameter assignment
found in Amber parameter+topology file. It uses absolute atomic
indices instead of kinds and does not lead to disambiguation.
* Folded exp_radius_base into exp_radius (it was only local to the module).
* Reworked exp_radius to allow Bisection (1), GSS (2), or equidistant sampling (4). The advantage is to utilize small vectors that translate to vectorized implementation of EXP function. Documented source of performance regression (RPA/MP2) which is about returning radius=0 when taking the early exit.
* Corrected documentation of exp_radius argument (threshold). Check for progress to fix cases where requested epsilon is too small wrt achievable precision.
* All revised reference values are on top of the very original reference values (before any exp_radius related PRs).
* Perf. regression was caused by different termination criterion (reinstated g(r) < t OR rd < eps).
* Introduced mixed precision (EXP iteration).
* Reverted ref. values changed as part of PR #444 (TEST_FILES), and updated according to this PR.
* Rely on bisection to keep internal parameters as in previous implementation of exp_radius.
* Renamed exp_radius_fast to exp_radius_base, removed exp_radius_simple (unused/dead code).
* More robust implementation of exp_radius_fast relying on an estimation of sampling width plus additional knowledge such as no distraction from local maximum value ahead (threshold can be reached at infinity). Previously, exp_radius_fast used integration method based on derivatives of the Gaussian. However, the latter was not possible to get stable across all tests plus was not able to reliably converge.
* Introduced, tuned, and commented internal parameters that balance accuracy and speed of exp_radius_fast function.
* Facilitate early exit in exp_radius by an optional lower bound radius (many code locations exist where exp_radius is executed inside of loop to search for maximum radius). It appears to have a good impact when relying on rlow argument.
* Separated exp_radius_fast and exp_radius such that exp_radius is responsible for reaching the threshold while exp_radius is responsible for minimizing interval width, i.e., bracketing the radius on top of the threshold argument. Also, exp_radius leverages/calls exp_radius_fast (the latter code is now relocated into the same module).
* Adjusted/updated reference/test values (all values look reasonable).
* xTB regtests refactored
* Adjust debug settings
* Adjust regtest target value
* xTB: check for large atomic charges
OT: make CORE initial guess available
xTB: make CORE guess default
* Release FM structure created in CORE guess
* Adjust tolerance
- Becke constraints are now a subsection of CDFT:
deprecates old method of calling Becke constraints without CDFT loop
- Outer SCF types moved to separate module to resolve cyclic dependency
- Old coupling routine in ET_COUPLING no longer supports Becke
- Improved support for Hirshfeld constraints, only forces are missing
- Unified input structure regardless of CDFT constraint type