Dear CP2K developers,
I am writing to ask for advice on a reproducible force-consistency issue that we see for bulk calcite, CaCO₃, using CP2K/Quickstep GPW.
For a periodic cell at zero external electric field, the sum of the forces over all atoms should vanish to the accuracy of the force evaluation, even when the geometry is not relaxed. For the same 30-atom calcite frame, Quantum ESPRESSO gives a net force sum close to numerical zero, whereas CP2K gives a residual of order 1e-4 Ha/Bohr. In the attached representative CP2K output, for example, the force sum is
Fx = 3.49e-5 Ha/Bohr
Fy = 1.13e-4 Ha/Bohr
Fz = -5.39e-5 Ha/Bohr
with a total net force of about 1.30e-4 Ha/Bohr.
This residual is small compared with typical individual atomic forces, but in our tests the same force-consistency issue contaminates finite-field response properties. Our intended workflow requires numerical derivatives of the forces with respect to external electric-field components, for example for atomic polar tensors and related higher-order response quantities. Other systems, including bulk water, transition-metal oxide/water interfaces, and cation solutions, behave well with the same CP2K finite-field workflow, so the problem appears to be specific to CaCO₃, or to this particular combination of pseudopotential, Gaussian basis, and GPW grid.
The attached figure shows cutoff convergence for the energy per atom and for the zero-field net force sum. The top row is CP2K, using fixed REL_CUTOFF = 120 Ry and NGRIDS = 4 while varying the MGRID CUTOFF. The bottom row is Quantum ESPRESSO for the same structure. I include the QE result mainly as a translational-invariance sanity check, not as a strict force reference, since the pseudopotentials are different. QE gives a near-zero net force sum across the tested cutoffs, while CP2K retains a much larger residual. The CP2K energy also shows noticeable oscillations with increasing MGRID cutoff, which makes me suspect a grid/multigrid or Gaussian-grid-coupling contribution, although I am not sure.
Could you advise which CP2K settings or tests would be most appropriate to diagnose this? In particular, I would be grateful for advice on whether this could be related to any of the following:
the Ca/O/C pseudopotentials or basis sets, and their use with RPBE;
GPW multigrid effects or Gaussian-grid coupling;
Pulay/grid force terms;
CUTOFF, REL_CUTOFF, NGRIDS, or less obvious QS thresholds;
SCF/OT convergence settings.
The attached input uses TZV2P-MOLOPT-PBE-GTH basis sets, GTH-PBE pseudopotentials, RPBE, EPS_SCF = 1e-9, OUTER_SCF EPS_SCF = 1e-9, EPS_DEFAULT = 1e-18, OT/CG with 3PNT line search, CUTOFF = 2500 Ry, REL_CUTOFF = 120 Ry, and NGRIDS = 4.
I have attached a representative CP2K input/output pair for one frame. The same qualitative behaviour is observed across the other tested calcite geometries.
Thank you very much for your time. I would really appreciate any suggestions for further tests or settings to try.
Best wishes,
Kit
Dear Kit,
Thank you for the detailed report and for the input/output files. I was able to
reproduce the force-sum residual for the provided calcite frame:
GPW baseline:
Sum F = ( 3.48675295E-05, 1.12518883E-04, -5.39277596E-05 ) Ha/Bohr
|Sum F| = 1.29554803E-04 Ha/BohrThe behavior originate from the XC/grid treatment:
GPW + USE_FINER_GRID T, FINE_GRID_FACTOR 2.0:
|Sum F| = 2.26659720E-05 Ha/Bohr
GPW + finer/smoothed XC grid:
|Sum F| = 1.10078684E-06 Ha/Bohr
GAPW_XC:
|Sum F| = 4.20880179E-05 Ha/Bohr
GAPW_XC + GAPW_ACCURATE_XCINT:
|Sum F| = 1.68750841E-07 Ha/Bohr
GAPW + GAPW_ACCURATE_XCINT + USE_FINER_GRID T, FINE_GRID_FACTOR 2.0:
|Sum F| = 3.85198029E-08 Ha/Bohr
GAPW_XC + GAPW_ACCURATE_XCINT + USE_FINER_GRID T, FINE_GRID_FACTOR 2.0:
|Sum F| = 1.04105369E-08 Ha/BohrThis strongly suggests that the residual is dominated by an egg-box/grid-coupling
effect in the XC/grid integration rather than by pseudopotentials, basis sets, or
SCF noise.
For this system, the best tested setting was:
&QS
EPS_DEFAULT 1.0E-18
METHOD GAPW_XC
GAPW_ACCURATE_XCINT
&END QS
&XC
DENSITY_CUTOFF 1.0E-10
GRADIENT_CUTOFF 1.0E-10
TAU_CUTOFF 1.0E-10
&XC_GRID
FINE_GRID_FACTOR 2.0
USE_FINER_GRID T
&END XC_GRID
&XC_FUNCTIONAL NO_SHORTCUT
&GGA_C_PBE
&END GGA_C_PBE
&GGA_X_RPBE
&END GGA_X_RPBE
&END XC_FUNCTIONAL
&END XCMETHOD GAPW with the same GAPW_ACCURATE_XCINT and fine XC grid also performs
very well, but in this test GAPW_XC was slightly better and should be the less
intrusive change relative to the original GPW calculation.
One practical note: GAPW_ACCURATE_XCINT has been improved recently, so I would
recommend testing with a recent CP2K master or a release that includes those
changes. Also, for this calcite input current master hit a post-SCF output crash
with PRINT_LEVEL MEDIUM; using PRINT_LEVEL LOW while keeping explicit
&FORCES ON avoided that and still printed the force block.
Best wishes,
Thomas
Dear Thomas,
Many thanks for the very quick and detailed reply! This is extremely helpful, and your diagnosis makes a lot of sense given the behaviour we were seeing.
I will try compiling the current CP2K master using the new make_cp2k.sh workflow, run the relevant regression tests, and then first reproduce your zero-field force-sum results on the same calcite frame. After that, I will check whether the same settings also resolve the sensitivity we observe in the finite-field response tensors.
Thank you also for pointing out the PRINT_LEVEL LOW workaround and the relevant GAPW_XC / GAPW_ACCURATE_XCINT settings. I will report back once I have tested these on our side.
Best wishes,
Kit