User Tools

Site Tools


code:ls_scf

This is an old revision of the document!


<graphviz dot> digraph ls_scf {

  splines="ortho";

start [shape=ellipse, label=“ls_scf()”];

node [shape=box, width=3];

do_init [label=“CALL ls_scf_init_scf()”]; start → do_init;

do_qs_to_ls[label=“CALL matrix_qs_to_ls()”] do_init → do_qs_to_ls;

{

rank=same;
if_precon_ks [shape=diamond, label="S-Preconditioner?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF.html#list_S_PRECONDITIONER"];
do_precon_ks [label="Precondition KS-matrix", width=4];
if_precon_ks -> do_precon_ks [label="yes", minlen=1.5];

} do_qs_to_ls → if_precon_ks;

do_filter_ks[label=“Filer KS-matrix with EPS_FILTER”, URL=“http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF.html#desc_EPS_FILTER”] if_precon_ks → do_filter_ks[label=“no”]; do_precon_ks → do_filter_ks[weight=0];

{

rank=same;
if_curvy [shape=diamond, label="CURVY_STEPS and\npurified matrix-P exits?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF/CURVY_STEPS.html"];
do_curvy [label="CALL dm_ls_curvy_optimization()", width=4];
if_curvy -> do_curvy [label="yes", minlen=1.5];

} do_filter_ks → if_curvy;

do_mixing; if_curvy → do_mixing[label=“no”];

{

rank=same;
if_trans [shape=diamond, label="transport?"];
do_trans [label="CALL external_scf_method()", width=4];
if_trans -> do_trans [label="yes", minlen=1.5];

} do_mixing → if_trans;

select_method[shape=diamond, label=“PURIFICATION_METHOD?”, URL=“http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF.html#desc_PURIFICATION_METHOD”]; if_trans → select_method[label=“no”];

{

rank=same;
dm_sign[label="CALL density_matrix_sign()"];
dm_tc2[label="CALL density_matrix_tc2()"];
dm_trs4[label="CALL density_matrix_trs4()"];

} select_method → dm_sign [label=“SIGN_MATRIX”]; select_method → dm_tc2 [label=“TC2”]; select_method → dm_trs4 [label=“TRS4”];

{

rank=same;
if_precon_p [shape=diamond, label="S-Preconditioner?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF.html#list_S_PRECONDITIONER"];
do_precon_p [label="Precondition P-matrix", width=4];
if_precon_p -> do_precon_p [label="yes", minlen=1.5];

}

dm_sign → if_precon_p; dm_tc2 → if_precon_p; dm_trs4 → if_precon_p;

do_filter_p[label=“Filter P-matrix with EPS_FILTER”, URL=“http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF.html#desc_EPS_FILTER”] if_precon_p → do_filter_p[label=“no”]; do_precon_p → do_filter_p[weight=0];

do_dm_to_ks[label=“CALL ls_scf_dm_to_ks()”]

do_filter_p → do_dm_to_ks; do_curvy → do_dm_to_ks[weight=0]; do_trans → do_dm_to_ks[weight=0];

if_converged[shape=diamond, label=“Converged?”] do_dm_to_ks → if_converged; do_qs_to_ls → if_converged[dir=back, weight=0];

do_post [label=“CALL ls_scf_post()”]; if_converged → do_post [label=“yes”];

return [shape=ellipse, label=“RETURN”]; do_post → return;

} </graphviz>

code/ls_scf.1422129508.txt.gz · Last modified: 2020/08/21 10:14 (external edit)