This is an old revision of the document!
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:2016_ethz_mmm:exercise_3.2.zip you@eulerX ~$ unzip exercises:2016_ethz_mmm:exercise_3.2.zip you@eulerX ~$ cd exercise_3.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: the 110_rec.xyz and the 100_rec.xyz. 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