Author Topic: A tutorial on convergence of large (metallic) systems would be nice.  (Read 3782 times)

0 Members and 1 Guest are viewing this topic.

Offline ziand

  • Heavy ATK user
  • ***
  • Posts: 78
  • Country: de
  • Reputation: 5
    • View Profile
When dealing with large systems, especially large (maybe only in one dimensions) metallic systems, one often encounters convergence problems.

An eEffective ways to improve convergence is to increase the electron temperature. However, this affects the accuracy of the results at some point (very high T_el).
The other approch is called mixing. Right now ATK implements a Pulay mixer for the Hamiltonian. This is okay. What I'm asking for (maybe it is too complicated and only experience on the user side can help) is some sort of tutorial or guidlines how to twist the various parameters in order to systematically find a way out of a non-converging situation.

One has the parameters:
damping_factor, number_of_history_steps, start_mixing_after_step, linear_dependence_threshold and preconditioner.
The last one (preconditioner Kerker) itself has parameters: energy_q0, energy_qmax, maximum_damping

I doubt I'm the only user who is sometimes a bit puzzled which knobs are the most effective ones to twist or in which order one should change them to improve convergence (may it be slower (more tiny steps), but it should stop oscillating and the error should go down down down!!!)


Offline kstokbro

  • QuantumATK Staff
  • Supreme ATK Wizard
  • *****
  • Posts: 392
  • Reputation: 13
    • View Profile
    • QuantumWise
We are working on some guidelines and looking into if we can improve the defaults
Some recommendations:
1. Include more history steps, 20 or 30
2. Often it is safe to lower the tolerance, forinstance to 1e-4
3. increase the temperature
4. make sure the meshcutoff is sufficient