you@eulerX ~$ module load courses mmm vmd
you@eulerX ~$ mmm-init
In this exercise, we will build three small slabs based on the following figures; the cell is an orthorombic cell with repetition along z.
Take the above table as reference for the orders of magnitude of surface energies.
you@eulerX ~$ wget http://www.cp2k.org/_media/exercises:2017_ethz_mmm:e4.2.zip you@eulerX ~$ unzip exercises:2017_ethz_mmm:e4.2.zip you@eulerX ~$ cd exercise_4.2
If you cannot download with wget, you can copy the zip file directly from my directory
you@eulerX ~$ cp /cluster/home/danielep/2017/e4.2.zip . you@eulerX ~$ unzip e4.2.zip you@eulerX ~$ cd exercise_4.2
In principle all reconstructed phases should be with a lower surface energy, but this EAM potential fails for some of them. The input files are:
Before, however, to be able to run the cp2k program, we need to build the xyz files for all cases. First, we build the slabs, using this chain of commands (First assignment). Use for the following:
you@eulerxx $ m_lattice LX LY LZ NX NY NZ < 100.unit | m_xyzrescale D | m_xyzrefold 1 1 1 | m_xyzcenter 1 1 1 | m_xyzsort > 100_unr.xyz you@eulerxx $ m_lattice LX LY LZ NX NY NZ < 110.unit | m_xyzrescale D | m_xyzrefold 1 1 1 | m_xyzcenter 1 1 1 | m_xyzsort > 110_unr.xyz you@eulerxx $ m_lattice LX LY LZ NX NY NZ < 111.unit | m_xyzrescale D | m_xyzrefold 1 1 1 | m_xyzcenter 1 1 1 | m_xyzsort > 111_unr.xyz
Substitute the LX LY LZ NX NY NZ and D by their appropriate values. As a result of the command execution you will obtain several slab structures. Open them with a text editor and get the unit cell parameters from the second line of each XYZ file. Use this parameters in the ABC section of the *inp files. Do not forget to ADD SOME VACUUM IN THE Z DIRECTION. Check with vmd that the cell is OK.
Run the cp2k code as
you@eulerxx $ bsub cp2k.popt -i 100_unr.inp -o 100_unr.out you@eulerxx $ bsub cp2k.popt -i 110_unr.inp -o 110_unr.out you@eulerxx $ bsub cp2k.popt -i 111_unr.inp -o 111_unr.out you@eulerxx $ bsub cp2k.popt -i 100_bulk.inp -o 100_bulk.out
The compute_surf* scripts give an idea how to compute the surface energies.
In the next step, we work with 2 reconstructed surfaces given in the 100_rec.xyz and 110_rec.xyz files. For this calculations you will need to use the same unit cell parameters as for the corresponding unreconstracted surface structures that you have built previously.
you@eulerxx $ bsub cp2k.popt -i 100_rec.inp -o 100_rec.out you@eulerxx $ bsub cp2k.popt -i 110_rec.inp -o 110_rec.out