User Tools

Site Tools


code:qs_forces

Differences

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

Link to this comparison view

code:qs_forces [2015/01/25 14:38] (current)
oschuett created
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: 2015/01/25 14:38 by oschuett