Documentation for module arnoldi_api

arnoldi iteration using dbcsr

source: arnoldi_api.F
Loading...

Forwarded symbols:

deallocate_arnoldi_data
arnoldi_data_methods::deallocate_arnoldi_data
Deallocate the data in arnoldi_data
get_selected_ritz_val
arnoldi_data_methods::get_selected_ritz_val
get a single specific Ritz value from the set of selected
get_selected_ritz_vector
arnoldi_data_methods::get_selected_ritz_vector
Deallocate the data in arnoldi_data
setup_arnoldi_data
arnoldi_data_methods::setup_arnoldi_data
This routine sets the environment for the arnoldi iteration and the krylov subspace creation. All simulation parameters have to be given at this stage so the rest can run fully automated In addition, this routine allocates the data necessary for
set_arnoldi_initial_vector
arnoldi_data_methods::set_arnoldi_initial_vector
...
arnoldi_data_type
arnoldi_types::arnoldi_data_type
...

public Subroutines/Functions:

Wrapper for conjugated gradient algorithm for Ax=b
Driver routine for different arnoldi eigenvalue methods the selection which one is to be taken is made beforehand in the setup call passing the generalized_ev flag or not
simple wrapper to estimate extremal eigenvalues with arnoldi, using the old lanczos interface this hides some of the power of the arnoldi routines (e.g. only min or max eval, generalized eval, ritz vectors, etc.), and does not allow for providing an initial guess of the ritz vector.

SUBROUTINEarnoldi_conjugate_gradient(matrix_a, vec_x, matrix_p, converged, threshold, max_iter)

Wrapper for conjugated gradient algorithm for Ax=b

Arguments:
TYPE(dbcsr_type),
INTENT(in),
TARGET
:: matrix_a input mat
REAL(dp),
INTENT(inout)
:: vec_x(:) input right hand side vector; output solution vector, fully replicated!
TYPE(dbcsr_type),
INTENT(in),
OPTIONAL, TARGET
:: matrix_p input preconditioner (optional)
LOGICAL,
INTENT(out)
:: converged ...
REAL(dp),
INTENT(in)
:: threshold target precision
INTEGER,
INTENT(in)
:: max_iter max allowed iterations

SUBROUTINEarnoldi_ev(matrix, arnoldi_data)

Driver routine for different arnoldi eigenvalue methods the selection which one is to be taken is made beforehand in the setup call passing the generalized_ev flag or not

Arguments:
:: matrix(:) ...
:: arnoldi_data ...

SUBROUTINEarnoldi_extremal(matrix_a, max_ev, min_ev, converged, threshold, max_iter)

simple wrapper to estimate extremal eigenvalues with arnoldi, using the old lanczos interface this hides some of the power of the arnoldi routines (e.g. only min or max eval, generalized eval, ritz vectors, etc.), and does not allow for providing an initial guess of the ritz vector.

Arguments:
TYPE(dbcsr_type),
INTENT(inout),
TARGET
:: matrix_a input mat
REAL(dp),
INTENT(out)
:: max_ev estimated max eval
REAL(dp),
INTENT(out)
:: min_ev estimated min eval
LOGICAL,
INTENT(out)
:: converged Usually arnoldi is more accurate than claimed.
REAL(dp),
INTENT(in)
:: threshold target precision
INTEGER,
INTENT(in)
:: max_iter max allowed iterations (will be rounded up)