Help Needed: CP2K SCF Convergence Issues on RuO₂ (110) Surface with OER Intermediates

140 views
Skip to first unread message

HackerBean

unread,
Jul 10, 2025, 5:11:38 PM7/10/25
to cp2k

I've been using CP2K recently to study the adsorption of OER intermediates on the RuO₂ (110) surface, but I’m running into some SCF convergence issues and would appreciate any input on whether my setup might be problematic.

The system is a RuO₂ (110) surface modeled with three layers — the bottom layer is fixed during the calculation, while the top two are relaxed. I'm using diagonalization for the SCF method. For the clean surface (*) and the *O intermediate, SCF converges without any issues. However, once I introduce H-containing intermediates like *OH and *OOH, the SCF becomes extremely slow and often oscillates without converging at all.

I've tried increasing MAX_SCF to 500, set Alpha to 0.1, and switched the optimizer to CG, but the results are still not ideal. Since the system is metallic, I didn't use the OT method.

So far, each of these steps has taken over a day to compute. By comparison, when I ran the same model with VASP, SCF usually converged within a day, so I'm not seeing the expected efficiency advantage from CP2K.

I'm wondering if there’s anything in my current setup that looks off, or if anyone has suggestions for improving SCF convergence efficiency in this type of system?

cp2k.out
cp2k.inp
coord.cif
Message has been deleted

Konstantin Tokarev

unread,
Jul 10, 2025, 7:20:02 PM7/10/25
to cp2k

The system is a RuO₂ (110) surface modeled with three layers — the bottom layer is fixed during the calculation, while the top two are relaxed. I'm using diagonalization for the SCF method. For the clean surface (*) and the *O intermediate, SCF converges without any issues. However, once I introduce H-containing intermediates like *OH and *OOH, the SCF becomes extremely slow and often oscillates without converging at all.

I've tried increasing MAX_SCF to 500, set Alpha to 0.1, and switched the optimizer to CG, but the results are still not ideal. Since the system is metallic, I didn't use the OT method.

 Hello,

First of all, no matter whether you are using OT or not, you certainly need OUTER_SCF.  For example:

      &SCF
         MAX_SCF 20
         EPS_SCF 1E-6
         &OUTER_SCF T
            EPS_SCF 1E-6
            MAX_SCF 128
         &END OUTER_SCF
      &END

Also, have you actually tried using OT with your system? Tweaking its options like ENERGY_GAP might be helpful. And if it converges, you can restart without OT from resulting wfn file.

Marcella Iannuzzi

unread,
Jul 11, 2025, 2:37:14 AM7/11/25
to cp2k
Hello,

This last  suggestion is wrong, the outer_scf is only useful with the preconditioned OT method.

Other comments:
ALPHA should be in general smaller, < 0.01, if the  convergence is difficult.
There are other parameters that seem not optimal, like a rather low cutoff.
The posted output shows a series of not converge SCF cycles. The calculated forces are then wrong and modifying the coordinates with wrong forces is not a good idea.
Have you tried to use 3D PBC with standard periodic Poisson solver, rather than the 2D with MT?
It is advisable to use more recent and consistent basis set and pseudo potentials, e.g. BASIS_MOLOPT_UZH and POTENTIAL_UZH

regards
Marcella
Reply all
Reply to author
Forward
0 new messages