Diagonalization

When is a SIESTA calculation done with a order n-method?

Of the two main components of a DFT calculation,

  • the calculation of the H and S matrix elements, and
  • the solution of the KS problem to get E, density, and forces,

the first one is always done with an O(N) method, for which there is no alternative. The actual scaling of that bit is not linear for small systems, but it becomes O(N) when the system dimensions are larger than the scale of orbital r_c’s.

For the solution part, if diagon is used, that part scales as N^3; it uses an O(N) method if using the order n option for the solver, and (again) it becomes linear scaling only if the system size is larger than the radial cutoff for the local solution wave-functions.

A practical fact is that the vast majority of users use the O(N) character of the matrix-calculation bit, but use diagon for the solution. This fact is due to the fact that:

  1. The vast majority of calculations would not benefit from order n (most of the calculations done are for intermediate system sizes, for varied reasons e.g. the long time scales needed in MD simulations for growing system sizes).
  2. The order n options are substantially more difficult to use and can be quite fragile for some systems