The computational effort of the conventional diagonalization scheme scales as the third power of the number of basis orbitals, which means that the part could be a bottleneck when large-scale systems are calculated. On the other hand, the O() methods can solve the eigenvalue problem in O() operation in exchange for accuracy. Thus, O() methods could be efficient for large-scale systems, while a careful consideration is always required for the accuracy. In OpenMX Ver. 3.9, three O() methods are available: a divide-conquer (DC) method [50], a divide-conquer (DC) method with localized natural orbitals (LNO) [51], and a Krylov subspace method [43]. Our recommendation among the three O() methods is the DC-LNO method, since the method is robust, and can be applied to a wide range of materials including metals, and the parallel efficiency is expected to be the best one among the three methods. In the following subsections each O() method is illustrated by examples.

- Divide-conquer method
- Divide-conquer method with localized natural orbitals (DC-LNO) method
- Krylov subspace method
- User definition of FNAN+SNAN