Documentation for module qs_outer_scf

Routines for performing an outer scf loop

source: qs_outer_scf.F
Loading...

public Subroutines/Functions:

uses the outer_scf_history to extrapolate new values for the variables and updates their value in qs_env accordingly
computes the gradient wrt to the outer loop variables
optimizes the parameters of the outer_scf
purges outer_scf_history zeroing everything except the latest value of the outer_scf variable stored in qs_control
switch between two outer_scf envs stored in cdft_control
propagates the updated variables to wherever they need to be set in qs_env
returns the number of variables that is employed in the outer loop. with a CDFT constraint this value is returned by the cdft_control type

SUBROUTINEouter_loop_extrapolate(qs_env)

uses the outer_scf_history to extrapolate new values for the variables and updates their value in qs_env accordingly

Arguments:
POINTER
:: qs_env the qs_environment_type where to update the variables

SUBROUTINEouter_loop_gradient(qs_env, scf_env)

computes the gradient wrt to the outer loop variables

Arguments:
POINTER
:: qs_env ...
POINTER
:: scf_env ...

SUBROUTINEouter_loop_optimize(scf_env, scf_control)

optimizes the parameters of the outer_scf

Arguments:
POINTER
:: scf_env the scf_env where to optimize the parameters
POINTER
:: scf_control control parameters for the optimization

SUBROUTINEouter_loop_purge_history(qs_env)

purges outer_scf_history zeroing everything except the latest value of the outer_scf variable stored in qs_control

Arguments:
POINTER
:: qs_env the qs_environment_type where to purge

SUBROUTINEouter_loop_switch(scf_env, scf_control, cdft_control, dir)

switch between two outer_scf envs stored in cdft_control

Arguments:
POINTER
:: scf_env the scf_env where values need to be updated using cdft_control
POINTER
:: scf_control the scf_control where values need to be updated using cdft_control
POINTER
:: cdft_control container for the second outer_scf env
INTEGER,
INTENT(in)
:: dir determines what switching operation to perform

SUBROUTINEouter_loop_update_qs_env(qs_env, scf_env)

propagates the updated variables to wherever they need to be set in qs_env

Arguments:
POINTER
:: qs_env ...
POINTER
:: scf_env ...

FUNCTIONouter_loop_variables_count(scf_control, cdft_control)

returns the number of variables that is employed in the outer loop. with a CDFT constraint this value is returned by the cdft_control type

Return Value ::
INTEGER
the number of variables
Arguments:
POINTER
:: scf_control the outer loop control type
INTENT(in),
OPTIONAL, POINTER
:: cdft_control the cdft loop control type