Documentation for module preconditioner

computes preconditioners, and implements methods to apply them currently used in qs_ot

source: preconditioner.F
Loading...

Generic procedures:

apply_preconditioner

public Subroutines/Functions:

...
...
Allows for a restart of the preconditioner depending on the method it purges all arrays or keeps them

Generic procedure apply_preconditioner

applies a previously created preconditioner to a full matrix

:: preconditioner_env × ×
:: matrix_in ×
TYPE(cp_fm_type),
POINTER
:: matrix_in ×
:: matrix_out ×
TYPE(cp_fm_type),
POINTER
:: matrix_out ×

SUBROUTINEmake_preconditioner(preconditioner_env, precon_type, solver_type, matrix_h, matrix_s, matrix_t, mo_set, energy_gap, convert_precond_to_dbcsr, chol_type)

...

Arguments:
:: preconditioner_env ...
INTEGER,
INTENT(in)
:: precon_type ...
INTEGER,
INTENT(in)
:: solver_type ...
TYPE(dbcsr_type),
POINTER
:: matrix_h ...
TYPE(dbcsr_type),
OPTIONAL, POINTER
:: matrix_s ...
TYPE(dbcsr_type),
OPTIONAL, POINTER
:: matrix_t ...
POINTER
:: mo_set ...
REAL(dp)
:: energy_gap ...
LOGICAL,
INTENT(in),
OPTIONAL
:: convert_precond_to_dbcsr ...
INTEGER,
INTENT(in),
OPTIONAL
:: chol_type ...

SUBROUTINEprepare_preconditioner(qs_env, mos, matrix_ks, matrix_s, ot_preconditioner, prec_type, solver_type, energy_gap, nspins, has_unit_metric, convert_to_dbcsr, chol_type)

...

Arguments:
POINTER
:: qs_env ...
POINTER
:: mos(:) ...
POINTER
:: matrix_ks(:) ...
POINTER
:: matrix_s(:) ...
POINTER
:: ot_preconditioner(:) ...
INTEGER,
INTENT(in)
:: prec_type ...
INTEGER,
INTENT(in)
:: solver_type ...
REAL(dp),
INTENT(in)
:: energy_gap ...
INTEGER,
INTENT(in)
:: nspins ...
LOGICAL,
INTENT(in),
OPTIONAL
:: has_unit_metric ...
LOGICAL,
INTENT(in),
OPTIONAL
:: convert_to_dbcsr ...
INTEGER,
INTENT(in),
OPTIONAL
:: chol_type ...

SUBROUTINErestart_preconditioner(qs_env, preconditioner, prec_type, nspins)

Allows for a restart of the preconditioner depending on the method it purges all arrays or keeps them

Arguments:
POINTER
:: qs_env ...
POINTER
:: preconditioner(:) ...
INTEGER,
INTENT(in)
:: prec_type ...
INTEGER,
INTENT(in)
:: nspins ...