User Tools

Site Tools


code:qs_forces
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Last revision
code:qs_forces [2015/01/25 14:38] – created oschuett
Line 1: Line 1:
 +<graphviz dot>
 +digraph qs_forces {
 +#splines="ortho";
 +node [shape=box, width=4];
  
 +start [shape=ellipse, label="qs_forces()", width=1];
 +
 +zero[label="CALL zero_qs_force()"];
 +start -> zero;
 +
 +qs_energies[label="CALL qs_energies(calc_forces=TRUE)", URL="http://cp2k.org/code:qs_energies"];
 +zero -> qs_energies;
 +
 +{
 +  rank=same;
 +  if_rtp [shape=diamond, label="RTP ?"];
 +  do_rtp [label="Calc RTP forces", width=3];
 +  if_rtp -> do_rtp [label="yes", minlen=1.5];
 +}
 +qs_energies->if_rtp;
 +
 +{
 +  rank=same;
 +  if_mulliken[shape=diamond, label="MULLIKEN_RESTR. ?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/QS/MULLIKEN_RESTRAINT.html"];
 +  do_mulliken[label="CALL mulliken_restraint()", width=3];
 +  if_mulliken -> do_mulliken [label="yes", minlen=1.5];
 +}
 +if_rtp -> if_mulliken [label="no", minlen=1];
 +do_rtp -> if_mulliken [weight=0];
 +
 +{
 +  rank=same;
 +  if_dft_u[shape=diamond, label="DFT+U ?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/SUBSYS/KIND/DFT_PLUS_U.html"];
 +  do_dft_u[label="CALL plus_u(matrix_w)", width=3];
 +  if_dft_u -> do_dft_u [label="yes", minlen=1.5];
 +}
 +if_mulliken -> if_dft_u [label="no", minlen=1];
 +do_mulliken -> if_dft_u [weight=0];
 +
 +core_matrix[label="CALL build_core_matrix(calc_forces=TRUE)"];
 +if_dft_u -> core_matrix [label="no", minlen=1];
 +do_dft_u -> core_matrix [weight=0];
 +
 +
 +ks_update[label="CALL qs_ks_update_qs_env(calc_forces=TRUE)"];
 +core_matrix -> ks_update;
 +
 +{
 +  rank=same;
 +  if_mp2[shape=diamond, label="MP2 ?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/ATOM/METHOD/XC/WF_CORRELATION.html"];
 +  do_mp2[label="Calc MP2 forces", width=3];
 +  if_mp2 -> do_mp2 [label="yes", minlen=1.5];
 +}
 +ks_update -> if_mp2;
 +
 +{
 +  rank=same;
 +  if_admm[shape=diamond, label="ADMM-MO?"];
 +  do_admm[label="CALL calc_aux_mo_derivs()\nCALL calc_mixed_overlap_force()", width=3];
 +  if_admm -> do_admm[label="yes", minlen=1.5];
 +}
 +if_mp2 -> if_admm [label="no", minlen=1];
 +do_mp2 -> if_admm [weight=0];
 +
 +sum[label="Sum all force contributions"];
 +if_admm -> sum [label="no", minlen=1];
 +do_admm -> sum [weight=0];
 +
 +
 +{
 +  rank=same;
 +  if_virial[shape=diamond, label="virial%pv_availability?"];
 +  do_virial[label="Distribute virial", width=3];
 +  if_virial -> do_virial[label="yes", minlen=1.5];
 +}
 +sum -> if_virial;
 +
 +dealloc[label="Dellocate W-matrix"];
 +if_virial -> dealloc [label="no", minlen=1];
 +do_virial -> dealloc [weight=0];
 +
 +return [shape=ellipse, label="RETURN", width=1];
 +dealloc -> return;
 +
 +}
 +</graphviz>
code/qs_forces.txt · Last modified: 2020/08/21 10:15 by 127.0.0.1