next up previous contents index
Next: Interface for developers Up: User's manual of OpenMX Previous: Automatic determination of the   Contents   Index

Selection of lapack routine

In all the calculations: cluster, band, and O($N$) calculations, a lapack routine is used to solve eigenvalues and eigenvectors of the tridiagonalized matrix. However, we see a platform dependency of lapack routines to solve the tridiagonalized matrix with respect to computational robustness. So, three different lapack routines are available in OpenMX Ver. 3.5 by the following keyword 'scf.lapack.dste':

   scf.lapack.dste    dstevx    # dstegr|dstedc|dstevx, default=dstevx
These lapack routines, dstegr, dstedc, and dstevx, are based on a multiple relatively robust representation (MR3) scheme [66], a divide and conquer (DC) algorithm [67], and QR and inverse iteration algorithm, respectively. For further details, see the lapack website [68]. Our experiences suggest that the computational speed is as follows:
   dstevx < dstedc < dstegr
In contrast to the computational speed, the computational robustness seems to be opposite as follows:
   dstegr < dstedc < dstevx
So, an appropriate one (robuster and faster) on your computational environment should be selected by this keyword 'scf.lapack.dste'. The default is 'dstevx'.

In the cluster and band calculations, only eigenvectors of occupied and lower exited states are evaluated for saving the computation time when 'dstevx' is used. Thus, it is highly recommended to use 'dstevx' instead of 'dstedc' and 'dstegr' in the cases.


next up previous contents index
Next: Interface for developers Up: User's manual of OpenMX Previous: Automatic determination of the   Contents   Index
2009-08-28