This is an old revision of the document!
<graphviz dot> digraph qs_energies { start [shape=ellipse, label=“qs_energies()”];
node [shape=box, width=3];
init[label=“CALL qs_energies_init()”];
{
rank=same; if_rtp [shape=diamond, label="RTP?"]; rtp [label="CALL qs_energies_rtp()"]; if_rtp -> rtp [label="yes", minlen=1.5];
}
{
rank=same; if_lsscf [shape=diamond, label="LS_SCF?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF.html"]; lsscf [label="CALL ls_scf()"]; if_lsscf -> lsscf [label="yes", minlen=1.5];
}
{ rank=same;
if_almo [shape=diamond, label="ALMO_SCF?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/ALMO_SCF.html"]; almoscf [label="CALL almo_entry_scf()"]; if_almo -> almoscf [label="yes", minlen=1.5];
}
scf[label=“CALL scf()”];
start → if_rtp; if_rtp → init [label=“no”]; init → if_lsscf; if_lsscf → if_almo → scf [label=“no”];
#! Compute MP2 energy #CALL qs_energies_mp2(qs_env, calc_forces, error=error) #! if calculate forces, time to compute the w matrix #CALL qs_energies_compute_matrix_w(qs_env,calc_forces,error=error) #END IF #IF (PRESENT(consistent_energies)) THEN #IF (consistent_energies) THEN #CALL qs_ks_update_qs_env(qs_env, calculate_forces=.FALSE., just_energy=.TRUE., error=error) #! add MP2 energy if necessary #IF(ASSOCIATED(qs_env%mp2_env)) THEN #energy%total = energy%total + energy%mp2 #END IF #END IF #END IF #CALL qs_energies_properties(qs_env,error=error)
} </graphviz>