|
subroutine, public | eigensolver_init (eigens, namespace, gr, st, mc, space) |
|
subroutine, public | eigensolver_end (eigens) |
|
subroutine | eigensolver_run (eigens, namespace, gr, st, hm, iter, conv, nstconv) |
|
logical function | eigensolver_parallel_in_states (this) |
|
logical function | eigensolver_has_progress_bar (this) |
|
subroutine | deigensolver_run (eigens, namespace, mesh, st, hm, iter, ik) |
|
subroutine | deigensolver_plan (namespace, mesh, st, hm, pre, tol, niter, converged, ik, diff) |
| This subroutine implements the preconditioned Lanczos eigensolver as described in the paper: More...
|
|
subroutine | deigensolver_evolution (namespace, mesh, st, hm, te, tol, niter, converged, ik, diff, tau) |
|
subroutine | zeigensolver_run (eigens, namespace, mesh, st, hm, iter, ik) |
|
subroutine | zeigensolver_plan (namespace, mesh, st, hm, pre, tol, niter, converged, ik, diff) |
| This subroutine implements the preconditioned Lanczos eigensolver as described in the paper: More...
|
|
subroutine | zeigensolver_evolution (namespace, mesh, st, hm, te, tol, niter, converged, ik, diff, tau) |
|
subroutine eigensolver_oct_m::deigensolver_plan |
( |
type(namespace_t), intent(in) |
namespace, |
|
|
type(mesh_t), intent(in) |
mesh, |
|
|
type(states_elec_t), intent(inout) |
st, |
|
|
type(hamiltonian_elec_t), intent(in) |
hm, |
|
|
type(preconditioner_t), intent(in) |
pre, |
|
|
real(real64), intent(in) |
tol, |
|
|
integer, intent(inout) |
niter, |
|
|
integer, intent(out) |
converged, |
|
|
integer, intent(in) |
ik, |
|
|
real(real64), dimension(:), intent(out), optional |
diff |
|
) |
| |
|
private |
This subroutine implements the preconditioned Lanczos eigensolver as described in the paper:
Y. Saad, A. Stathopoulos, J. Chelikowsky, K. Wu and S. Ogut, "Solution of Large Eigenvalue Problems in Electronic Structure Calculations", BIT 36 563-578 (1996) doi:10.1007/BF01731934 .
We also implement the "smoothing" preconditioning described in that paper.
- Parameters
-
Definition at line 868 of file eigensolver.F90.
subroutine eigensolver_oct_m::zeigensolver_plan |
( |
type(namespace_t), intent(in) |
namespace, |
|
|
type(mesh_t), intent(in) |
mesh, |
|
|
type(states_elec_t), intent(inout) |
st, |
|
|
type(hamiltonian_elec_t), intent(in) |
hm, |
|
|
type(preconditioner_t), intent(in) |
pre, |
|
|
real(real64), intent(in) |
tol, |
|
|
integer, intent(inout) |
niter, |
|
|
integer, intent(out) |
converged, |
|
|
integer, intent(in) |
ik, |
|
|
real(real64), dimension(:), intent(out), optional |
diff |
|
) |
| |
|
private |
This subroutine implements the preconditioned Lanczos eigensolver as described in the paper:
Y. Saad, A. Stathopoulos, J. Chelikowsky, K. Wu and S. Ogut, "Solution of Large Eigenvalue Problems in Electronic Structure Calculations", BIT 36 563-578 (1996) doi:10.1007/BF01731934 .
We also implement the "smoothing" preconditioning described in that paper.
- Parameters
-
Definition at line 1520 of file eigensolver.F90.