Documentation for module almo_scf_optimizer

Optimization routines for all ALMO-based SCF methods

source: almo_scf_optimizer.F
Loading...

public Subroutines/Functions:

An SCF procedure that optimizes block-diagonal ALMOs using DIIS
An eigensolver-based SCF to optimize extended ALMOs (i.e. ALMOs on overlapping domains)
Optimization of ALMOs using PCG-like minimizers

SUBROUTINEalmo_scf_block_diagonal(qs_env, almo_scf_env, optimizer)

An SCF procedure that optimizes block-diagonal ALMOs using DIIS

Arguments:
POINTER
:: qs_env ...
:: almo_scf_env ...
:: optimizer ...

SUBROUTINEalmo_scf_xalmo_eigensolver(qs_env, almo_scf_env, optimizer)

An eigensolver-based SCF to optimize extended ALMOs (i.e. ALMOs on overlapping domains)

Arguments:
POINTER
:: qs_env ...
:: almo_scf_env ...
:: optimizer ...

SUBROUTINEalmo_scf_xalmo_pcg(qs_env, almo_scf_env, optimizer, quench_t, matrix_t_in, matrix_t_out, assume_t0_q0x, perturbation_only, special_case)

Optimization of ALMOs using PCG-like minimizers

Arguments:
POINTER
:: qs_env ...
:: almo_scf_env ...
:: optimizer controls the optimization algorithm
TYPE(dbcsr_type),
ALLOCATABLE
:: quench_t(:) ...
TYPE(dbcsr_type),
ALLOCATABLE
:: matrix_t_in(:) ...
TYPE(dbcsr_type),
ALLOCATABLE
:: matrix_t_out(:) ...
LOGICAL,
INTENT(in)
:: assume_t0_q0x ...
LOGICAL,
INTENT(in)
:: perturbation_only ...
INTEGER,
INTENT(in),
OPTIONAL
:: special_case to reduce the overhead special cases are implemented: xalmo_case_normal - no special case (i.e. xALMOs) xalmo_case_block_diag xalmo_case_fully_deloc