This thread is locked.Only browsing is available.
Top Page > Browsing
lapack subroutines for diagonization
Date: 2014/08/29 05:31
Name: John Chan

Dear Prof. Dr. Ozaki,

I have a question on using lapack subroutines for diagonizing Hamiltonian matrix based on nonorthogonal LCAO. I am trying to interpolate bands based on the elements of Hamiltonian and overlap stored in HS.out. I have used zhegv for the diagonization, but it failed that the diagonization gives me zero for all eigenvalues. Is zhegv suitable for such a business? Having a look over the subroutiens of openmx, I noted that it uses different lapack subroutines. For instance, if I understand correctly, it uses dsyevx in the subroutine Eigen_lapack.c after some transfermations. What is the standard way for soluting linear equations AX = lambda BX? And what would be you suggestion for my business? Thank you very much.

Best regards,

John
メンテ
Page: [1]

Re: lapack subroutines for diagonization ( No.1 )
Date: 2014/08/29 18:36
Name: Artem  <artem.pulkin@epfl.ch>

Hi John,

I would suggest you first googling "generalized eigenvalue problem".

It can be done in a single line of code if you use Matlab or python numpy for example. I would strongly suggest you starting with that.

Then, the way I solved it in my home-made OpenMX code is following wrapper template:

F77_NAME(zggev,ZGGEV)("N","V",&n,leftHandSide,&n,rightHandSide,&n,lambdas_a,lambdas_b,NULL,&n,states,&n,work2,&n16,work,&info);

I.e. the function you are looking for is ZGGEV.

Artem
メンテ

Page: [1]