User Tools

Site Tools


code:ls_scf

This is an old revision of the document!


<graphviz dot> digraph ls_scf { 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="preconditioner?"];
do_precon_ks [label="Precondition matrix_ks", 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 matrix_KS with eps_filer”] if_precon_ks → do_filter_ks; do_precon_ks → do_filter_ks[weight=0];

{

rank=same;
if_curvy [shape=diamond, label="curvy? and purifyied DM exits"];
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;

{

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=“METHOD?”]; if_trans → select_method;

{

rank=same;
dm_sign;
dm_tc2;
dm_trs4;

} select_method → dm_sign; select_method → dm_tc2; select_method → dm_trs4;

{

rank=same;
if_precon_p [shape=diamond, label="preconditioner?"];
do_precon_p [label="Precondition matrix_p", 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 matrix_p”] if_precon_p → do_filter_p; 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_post [label=“CALL ls_scf_post()”]; do_dm_to_ks → do_post;

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

} </graphviz>

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