+ All Categories
Home > Documents > lanczos - Boston University Physicsphysics.bu.edu/~py502/slides/l13.pdf · Lanczos diagonalization...

lanczos - Boston University Physicsphysics.bu.edu/~py502/slides/l13.pdf · Lanczos diagonalization...

Date post: 17-Jul-2018
Category:
Upload: hakhuong
View: 217 times
Download: 0 times
Share this document with a friend
18
Lanczos diagonalization Real-space discretized Hamiltonian is large in terms of N*N Ø but number of non-zero elements is ~N, not N 2 Ø sparse matrix eigenvalue problem Ø can use special methods for extremal eigenvalues/states The Lanczos method is a Krylov space method Ø space spanned by vectors Idea: operate on expansion in energy eigenstates For large m state with largest |E k | dominates the sum Ø Acting multiple times with H projects out extremal state Get ground state by acting with Ø we will assume that a suitable constant has been included Idea is to diagonalize H in space of all Ø can give low-lying states for small m (e.g., 100-500)
Transcript

Lanczos diagonalizationReal-space discretized Hamiltonian is large in terms of N*NØ but number of non-zero elements is ~N, not N2

Ø sparse matrix eigenvalue problemØ can use special methods for extremal eigenvalues/statesThe Lanczos method is a Krylov space methodØ space spanned by vectors Idea: operate on expansion in energy eigenstates

For large m state with largest |Ek| dominates the sumØActing multiple times with H projects out extremal stateGet ground state by acting withØ we will assume that a suitable constant has been includedIdea is to diagonalize H in space of allØ can give low-lying states for small m (e.g., 100-500)

Lanczos basis statesParticular orthogonal basis of statesØ leads to a tridiagonal Hamiltonian matrixØ starts from arbitrary stateFirst, orhogonal but not normalized basis

Chose constant such that the two states are orthogonal

Next state; make it orthogonal to the two previous ones:

One can show that these states are orthogonal to all previous ones

Hamiltonian acting on a state

This corresponds to a tri-diagonal matrix, non-zero elements are

Normalized states

Algorithm for constructing the basis and the HamiltonianFor the Hamiltonian, we need only the factors

where To obtain a new state we need the previous two:

We have to store two states and the one we are working on.

We do not have to store H; act with it “on the fly”

(numbers fn(j), j=1,...,N stored)

Need change in element index as particle “hops” between neigbors

(V includes diag part of K)

1D test: Open chain (hard-wall box), x=[-1,1] (L=2), V=0Calculated energies as a function of Lanczos basis size M

10 165.47488 1116.18787 3077.7550120 36.464497 268.910471 744.4844530 15.339143 155.724962 332.9663340 11.382975 86.779071 196.5754850 9.172055 47.562526 146.6426660 7.387181 27.980120 86.1379570 4.460574 16.659015 62.6723280 2.961753 14.353851 55.0039790 2.219407 13.280460 41.92692100 1.696802 12.229263 27.56645110 1.416573 11.376356 22.04370120 1.320332 10.941645 20.09118130 1.288321 10.732066 19.15900140 1.276327 10.613516 18.51138150 1.262146 10.191426 14.60174160 1.234164 6.045649 11.09876170 1.224724 5.160069 11.01756180 1.222428 4.974962 11.00148190 1.221635 4.905657 10.99395200 1.221430 4.885423 10.99108

Exact 1.233701 4.934802 11.10330

N=200

Very poorconvergence

Almost the fullHilbert space hasto be included toget good energies

Deviations at M=200reflect discretizationerror (negative)

Convergence of the ground state wave function

Lanczos method is not suitable for this type of calculation in 1DØ The basis must be of same size as the original one

2D test: Open box (=hard-wall), x,y=[-1,1], V=0Energy as a function of Lanczos basis size M

N=200*200

Convergenceafter on theorder ofiterations

20 146.53700 731.057995 1807.66285140 36.89144 197.708305 466.35210660 19.78221 88.403669 216.57104780 14.33864 52.011927 120.846453100 11.36276 33.130912 78.125621120 9.836334 25.714048 59.319176140 9.093991 21.690312 43.007222160 8.460393 17.444110 31.878198180 7.719381 13.667132 26.425252200 6.494491 10.987755 22.538540240 5.310526 9.837896 18.969252280 3.925524 7.766020 11.142274320 2.815453 6.526244 10.305297360 2.482839 6.177734 9.963101400 2.447032 6.119496 9.841073440 2.443210 6.108594 9.789598480 2.442875 6.106960 9.772831

Exact 2.467401 6.168503 9.869604

The methodworks betterin 2D

The components (i.e., individual basis states) of the initial state must be propagated by the Hamiltonian through the whole system in order for an extended wave function to be representable in the Lanczos basisRegions covered after successive operations with H (“generations”) on a single basis state in 1D and 2D

Covered fraction scales as the number of generations M in any DØ The Lanczos scheme is advantageous in 2D and 3D

Ground state of a 100*100 box vs number of iterations (N)

Starting from astate localized inthe center of thebox

Graphing:

Ground state of a 100*100 box vs number of iterations (N)

Starting from arandom state

Graphing:

First excited state of a 100*100 box vs number of iterations (N)

Starting from arandom state

Graphing:

Second excited state of a 100*100 box vs number of iterations (N)

Starting from arandom state

Graphing:

The first excited state should be doubly-degenerateØ Lanczos only gives one state out of a degenerate multipletGo back to the Krylov space

If states k, j are degenerate, we have a term

For any m, this vector points in the same direction in thesubspace spanned by Acting with H cannot “separate” degenerate statesSince the Lanczos basis spans the same Krylov space, weonly get one state out of a degenerate multiplet of statesØ the particular linear combination depends on the initial stateNumerical round-off errors can lead to apparent degeneracies(multiple copies of the same state). This indicates that the schemebreaks down as the basis becomes non-orthogonal.

Example in two dimensions: box with open boundaries

labeling for 4*4 elements

subroutine hoperation(f1,f2)f2(:)=vpot(:)*f1(:)do j=1,nx*ny

x=1+mod(j-1,nx)y=1+(j-1)/nx if (x.ne.1) f2(j-1)=f2(j-1)-t*f1(j)if (x.ne.nx) f2(j+1)=f2(j+1)-t*f1(j)if (y.ne.1) f2(j-nx)=f2(j-nx)-t*f1(j)if (y.ne.ny) f2(j+nx)=f2(j+nx)-t*f1(j)

enddo

Constructing

State n stored in f1(nx*ny)State constructed in f2(nx*ny)t = hopping (kinetic) matrix element

(open corresponds to hard walls)

- consider hopping into all boxes j

One step in the iteration of the a and b coefficients

if (m==1) thencall hoperation(f0,f1)aa(0)=dot_product(f0,f1)f1=f1-aa(0)*f0nn(1)=dot_product(f1,f1)

elsecall hoperation(f1,f2)aa(m-1)=dot_product(f1,f2)/nn(m-1)bb(m-2)=nn(m-1)/nn(m-2)f2=f2-aa(m-1)*f1-bb(m-2)*f0nn(m)=dot_product(f2,f2)f0=f1f1=f2

endif

The method ofconstructingthe normalizedstates directlyis very similar(program on-line)

here m=n+1

The full basis and Hamiltonian construction

f0(:)=psi(:)nn(0)=1.d0Do m=1,niter

perform code on previous pageenddod(:)=aa(:)e(:)=sqrt(bb(:))call diatri(niter,d,e,eig,states)

Random initial statedo i=1,n

psi(i)=rand()-0.5d0enddonorm=1.d0/sqrt(dot_product(psi,psi))psi(:)=psi(:)*norm

Perform niter Lanczos steps and diagonalize

Calculation of the statesIn order to calculate states (wave functions) we have to perform another Lanczos procedure, since we have not saved all the states |fn>If we want the m-th lowest state, we transform with them-th eigenvector obtained in the diagonalization. The eigenvectors are in the matrix states; vec=states(:,m)

f0=psipsi=psi*vec(0)call hoperation(n,f0,f1)f1=f1-aa(0)*f0psi=psi+vec(1)*f1/sqrt(nn(1))do i=2,niter-1

call hoperation(n,f1,f2)f2=f2-aa(i-1)*f1-bb(i-2)*f0psi=psi+vec(i)*f2/sqrt(nn(i))f0=f1f1=f2

enddo

Normalized states


Recommended