Davidson solver
ElemCo.DavidsonSolver
— ModuleDavidson solver module
Main structure
ElemCo.DavidsonSolver.Davidson
— TypeDavidson object
Exported functions
ElemCo.DavidsonSolver.addvecs!
— Methodaddvecs!(dav::Davidson, tvecs, prods)
Add trial and product vectors to Davidson object and update effective Hamiltonian matrix.
ElemCo.DavidsonSolver.dav_normalize!
— Methoddav_normalize!(vecs, vecs2)
Normalize vectors vecs
and rescale vecs2
accordingly.
ElemCo.DavidsonSolver.dav_normalize!
— Methoddav_normalize!(vecs)
Normalize vectors.
ElemCo.DavidsonSolver.diagonalize
— Methoddiagonalize(dav::Davidson)
Diagonalize effective Hamiltonian matrix.
ElemCo.DavidsonSolver.orthogonalize!
— Methodorthogonalize!(dav::Davidson, vecs)
Orthogonalize vectors to trial vectors.
ElemCo.DavidsonSolver.perform!
— Methodperform!(dav::Davidson, tvecs_nst, prods_nst, states)
Perform Davidson algorithm.
tvecs_nst
and prods_nst
are trial and product vectors for each state.
ElemCo.DavidsonSolver.perform!
— Methodperform!(dav::Davidson, tvecs, prods)
Perform Davidson algorithm.
tvecs
and prods
are trial and product vectors for the first state.
Internal functions
ElemCo.DavidsonSolver.addprodvecs!
— Methodaddprodvecs!(dav::Davidson, prods)
Add product vectors to Davidson object and update effective Hamiltonian matrix.
ElemCo.DavidsonSolver.addtrialvecs!
— Methodaddtrialvecs!(dav::Davidson, tvecs)
Add trial vectors to Davidson object and update effective overlap matrix (in non-hermitian case).
Note: tvecs
will be orthogonalized and normalized.
ElemCo.DavidsonSolver.addtrialvecs4allstates!
— Methodaddtrialvecs4allstates!(dav::Davidson, tvecs_nst)
Add trial vectors to Davidson object and update effective overlap matrix (in non-hermitian case).
tvecs_nst
are trial vectors for each state.
ElemCo.DavidsonSolver.combine!
— Methodcombine!(dav::Davidson, outvec, vecfiles, coeffs)
Combine vectors from files with coefficients.
outvec
is the output vector.
ElemCo.DavidsonSolver.combine
— Methodcombine(dav::Davidson, vecfiles, coeffs)
Combine vectors from files with coefficients.
ElemCo.DavidsonSolver.hermitian
— Methodhermitian(dav::Davidson)
Check if Davidson object is hermitian.
ElemCo.DavidsonSolver.loadprods
— Methodloadprods(dav::Davidson, ipos)
Load product vectors from file at position ipos
as Vector{Vector{Float64}}
.
ElemCo.DavidsonSolver.loadtvecs
— Methodloadtvecs(dav::Davidson, ipos)
Load trial vectors from file at position ipos
as Vector{Vector{Float64}}
.
ElemCo.DavidsonSolver.loadvecs
— Methodloadvecs(file)
Load vectors from file as Vector{Vector{Float64}}
.
ElemCo.DavidsonSolver.saveprods
— Methodsaveprods(dav::Davidson, vecs)
Save vectors to next file.
ElemCo.DavidsonSolver.savetvecs
— Methodsavetvecs(dav::Davidson, vecs)
Save trial vectors to next file.
ElemCo.DavidsonSolver.update_Heff!
— Methodupdate_Heff!(dav::Davidson, tvecs, prods)
Update effective Hamiltonian matrix.
tvecs
and prods
are trial and product vectors (for one state) for the current iteration of Davidson algorithm (stored at dav.nDim position).
ElemCo.DavidsonSolver.update_Heff!
— Methodupdate_Heff!(dav::Davidson, prods)
Update effective Hamiltonian matrix (symmetrically).
prods
are product vectors (for one state) for the current iteration of Davidson algorithm (stored at dav.nDim position).
ElemCo.DavidsonSolver.update_Seff!
— Methodupdate_Seff!(dav::Davidson, tvecs)
Update effective overlap matrix.
tvecs
are trial vectors (for one state) for the current iteration of Davidson algorithm (stored at dav.nDim position).