| 
| 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.