(git:6a2e663)
qs_outer_scf Module Reference

Routines for performing an outer scf loop. More...

Functions/Subroutines

integer function, public outer_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 More...
 
subroutine, public outer_loop_gradient (qs_env, scf_env)
 computes the gradient wrt to the outer loop variables More...
 
subroutine, public outer_loop_optimize (scf_env, scf_control)
 optimizes the parameters of the outer_scf More...
 
subroutine, public outer_loop_update_qs_env (qs_env, scf_env)
 propagates the updated variables to wherever they need to be set in qs_env More...
 
subroutine, public outer_loop_extrapolate (qs_env)
 uses the outer_scf_history to extrapolate new values for the variables and updates their value in qs_env accordingly More...
 
subroutine, public outer_loop_switch (scf_env, scf_control, cdft_control, dir)
 switch between two outer_scf envs stored in cdft_control More...
 
subroutine, public outer_loop_purge_history (qs_env)
 purges outer_scf_history zeroing everything except the latest value of the outer_scf variable stored in qs_control More...
 

Detailed Description

Routines for performing an outer scf loop.

History
Created [2006.03]
Author
Joost VandeVondele

Function/Subroutine Documentation

◆ outer_loop_variables_count()

integer function, public qs_outer_scf::outer_loop_variables_count ( type(scf_control_type), pointer  scf_control,
type(cdft_control_type), intent(in), optional, pointer  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

Parameters
scf_controlthe outer loop control type
cdft_controlthe cdft loop control type
Returns
the number of variables
History
03.2006 created [Joost VandeVondele]

Definition at line 68 of file qs_outer_scf.F.

Here is the caller graph for this function:

◆ outer_loop_gradient()

subroutine, public qs_outer_scf::outer_loop_gradient ( type(qs_environment_type), pointer  qs_env,
type(qs_scf_env_type), pointer  scf_env 
)

computes the gradient wrt to the outer loop variables

Parameters
qs_env...
scf_env...
History
03.2006 created [Joost VandeVondele]

Definition at line 102 of file qs_outer_scf.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outer_loop_optimize()

subroutine, public qs_outer_scf::outer_loop_optimize ( type(qs_scf_env_type), pointer  scf_env,
type(scf_control_type), pointer  scf_control 
)

optimizes the parameters of the outer_scf

Parameters
scf_envthe scf_env where to optimize the parameters
scf_controlcontrol parameters for the optimization
History
03.2006 created [Joost VandeVondele] 01.2017 added Broyden and Newton optimizers [Nico Holmberg]
Note
ought to be general, and independent of the actual kind of variables

Definition at line 186 of file qs_outer_scf.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outer_loop_update_qs_env()

subroutine, public qs_outer_scf::outer_loop_update_qs_env ( type(qs_environment_type), pointer  qs_env,
type(qs_scf_env_type), pointer  scf_env 
)

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

Parameters
qs_env...
scf_env...
History
03.2006 created [Joost VandeVondele]

Definition at line 386 of file qs_outer_scf.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outer_loop_extrapolate()

subroutine, public qs_outer_scf::outer_loop_extrapolate ( type(qs_environment_type), pointer  qs_env)

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

Parameters
qs_envthe qs_environment_type where to update the variables
History
03.2006 created [Joost VandeVondele]
Note
it assumes that the current value of qs_env still needs to be added to the history simple multilinear extrapolation is employed

Definition at line 442 of file qs_outer_scf.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outer_loop_switch()

subroutine, public qs_outer_scf::outer_loop_switch ( type(qs_scf_env_type), pointer  scf_env,
type(scf_control_type), pointer  scf_control,
type(cdft_control_type), pointer  cdft_control,
integer, intent(in)  dir 
)

switch between two outer_scf envs stored in cdft_control

Parameters
scf_envthe scf_env where values need to be updated using cdft_control
scf_controlthe scf_control where values need to be updated using cdft_control
cdft_controlcontainer for the second outer_scf env
dirdetermines what switching operation to perform
History
12.2015 created [Nico Holmberg]

Definition at line 538 of file qs_outer_scf.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outer_loop_purge_history()

subroutine, public qs_outer_scf::outer_loop_purge_history ( type(qs_environment_type), pointer  qs_env)

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

Parameters
qs_envthe qs_environment_type where to purge
History
05.2016 created [Nico Holmberg]

Definition at line 650 of file qs_outer_scf.F.

Here is the call graph for this function:
Here is the caller graph for this function: