exercises:2016_uzh_cmest:calculation_pbc
Calculations with Periodic Boundary Conditions
This exercise illustrates the property of periodic boundary conditions and gives you some ideas/skeletons on how to create useful bash scripts. The files you need for this are:
A geometry file for a H2O molecule:
- h2o.xyz
3 Atom X Y Z O 0.0000000 0.0000000 0.1194180 H 0.0000000 0.7654990 -0.4776700 H 0.0000000 -0.7654990 -0.4776700
An input file to run a calculation with it:
- h2o_pbc.inp
&GLOBAL PROJECT h2o_pbc RUN_TYPE ENERGY PRINT_LEVEL MEDIUM &END GLOBAL &FORCE_EVAL METHOD Quickstep ! Electronic structure method (DFT,...) &DFT BASIS_SET_FILE_NAME BASIS_MOLOPT POTENTIAL_FILE_NAME POTENTIAL &POISSON ! Solver requested for non periodic calculations PERIODIC XYZ &END POISSON &SCF ! Parameters controlling the convergence of the scf. This section should not be changed. SCF_GUESS ATOMIC EPS_SCF 1.0E-6 MAX_SCF 300 &END SCF &XC ! Parameters needed to compute the electronic exchange potential &XC_FUNCTIONAL PBE &END XC_FUNCTIONAL &END XC &END DFT &SUBSYS &CELL ABC 10. 10. 10. PERIODIC XYZ &END CELL &TOPOLOGY ! Section used to center the atomic coordinates in the given box. Useful for big molecules COORD_FILE_FORMAT xyz COORD_FILE_NAME ./h2o.xyz &CENTER_COORDINATES CENTER_POINT 5. 5. 5. &END &END &KIND H ELEMENT H BASIS_SET TZVP-MOLOPT-GTH POTENTIAL GTH-PBE-q1 &END KIND &KIND O ELEMENT O BASIS_SET TZVP-MOLOPT-GTH POTENTIAL GTH-PBE-q6 &END KIND &END SUBSYS &END FORCE_EVAL
And a script to run it:
- run.sh
#!/bin/bash set -o errexit set -o nounset set -o pipefail xseq=$(seq 5 0.1 6) for x in $xseq; do rm -f "h2o_pbc_x-${x}.out" sed \ -e "s|h2o_pbc|h2o_pbc_x-$x|" \ -e "s|CENTER_POINT .*|CENTER_POINT $x 5. 5.|" \ h2o_pbc.inp > "h2o_pbc_x-${x}.inp" cp2k.sopt -i "h2o_pbc_x-${x}.inp" -o "h2o_pbc_x-${x}.out" & done for job in $(jobs -p) ; do wait $job done >| energies for x in $xseq; do energy=$(awk '/Total FORCE_EVAL/ { print $9 }' "h2o_pbc_x-${x}.out") echo "$x $energy" >> energies done
You have to mark the script as an executable after creating it, using:
$ chmod +x run.sh
Create a plot
Run the script after loading the CP2K module:
$ ./run.sh
Besides various input and output files, you should get a file named energies
.
- Plot it, including meaningful axis labels. To that end, try to understand the provided script. Looking at the difference between the initially provided input file
h2o_pbc.inp
and the newly created input files may give a hint. The command$ diff h2o_pbc.inp SOMEOTHERFILE
may also help. - What would you expect from such a plot and why? What order is the deviation from what you would expect? What could be the source for this deviation?
Make the script your own
- Read the script and try to understand the commands. Look them up using your favorite search engine, the man pages on the system (
$ man sed
for example) or try them out by hand on the command line. - Try to document the script in such a way that you will still understand it when looking at it again in a year or two (so, not every detail, but make sure to cover the obscure stuff and the big blocks)
- Change the script to calculate energies for
x=z=5.
andy=2,2.2,2.4,..,7.6,7.8,8.0
and plot them again.
exercises/2016_uzh_cmest/calculation_pbc.txt · Last modified: 2020/08/21 10:15 by 127.0.0.1