| SeqQuest Home |
Input Manual |
Cluster Tutorial |
Bulk Tutorial |
NEB Tutorial |
|---|
It will be helpful (but not necessary) in the following that the user already be somewhat familiar with use of the code for 3D bulk calculations (see the Bulk Tutorial). The appropriate lattice parameters to use in the surface plane are dictated by the corresponding bulk lattice parameters theoretically computed in the bulk material using the same level of approximation, so that 3D bulk calculations are a natural prerequisite to any 2D slab calculation to study chemistry at the surface of a material.
Two-dimensional slab calculations have special issues to consider in
comparison to calculations for bulk materials, because the slab is periodic
in two dimensions and is finite in one. The code must treat the boundary
conditions differently in the periodic vs. the non-periodic directions.
In addition, the code runs a formally a supercell calculation, treating a slab
calculation as an infinite series of slabs separated by vacuum, and needs
to be told where the "vacuum boundary" is in order to set up the boundary
conditions correctly. These needs impose special requirements on a slab
calculation that are reflected in the input conventions described below.
First, note that the periodic directions of the slab unit cell must be in the
x-y plane (the first two primitive lattice vectors), and that the
third lattice vector (which must be specified) must be normal to the slab
(i.e. along the z-axis).
Second, while the code is formally a supercell code, and therefore subject
to supercell effects such as the interaction between the planar dipoles of
different slab images, Quest automatically and exactly
eliminates the dipole interaction using the Local Moment CounterCharge (LMCC)
method:
"Local electrostatic moments and periodic boundary conditions",
P.A. Schultz, Phys. Rev. B 60, 1551 (1999)
resulting in slabs that are Coulombically isolated from one another.
With a localized basis set, that does not cross supercell boundaries,
this means that the calculation does indeed represent an isolated slab.
Important: While a calculation with this input file will run to completion, this input file is flawed and would not be a viable production calculation because of an incorrect use of the Brillouin Zone sampling, which will be discussed in the next example.
The "dimension" statement is the first required data in the input. We are doing a 2-dimensional slab problem. If we were doing a molecular system, we would enter a "0", or when we did the bulk hcp Ru problem before this slab calculation, we would have entered a "3" here.
The next required input is "primitive lattice" - supercell vectors. The periodic directions must be in the x-y plane, and the first two lattice vectors define the (1x1) cell for the (0001) surface of Ru. This surface is hexagonal, and we use the bulk theoretical lattice parameter a=5.025, and we start with the bulk interlayer spacing of 7.94 bohr.
In a 2-D slab calculation, the third lattice vector is the non-periodic direction and must be along the z-axis, normal to the slab plane. This lattice vector must be large enough so that the densities from the different periodic images of the slab do not interact. The effective range of the density about any atom is typically between 9-12 bohr (smaller for "hard" atoms like O, larger for metals), so that our lattice vector should be at least our slab thickness (3x7.94=~24 bohr) plus the range of the density on either side (2 x 11.0 used here = ~22) for a total of 46.0 bohr. I'll choose 48.0 to have a nice "round" number for the grid interval ...
The next required input is "grid dimensions". The code evaluates many of its integrals on a regular space (fft) grid. This regular grid is defined by taking the primitive lattice vectors, and dividing them into grid intervals. Here we use 15x15 in the plane, for a grid spacing of 0.335/point, and 150 grid intervals along the third lattice vector, a spacing of 0.320/point. The more grid intervals, the more accurately the integrals are evaluated, but, also, the more expensive the calculation. A general rule of thumb: you want spacing between points of 0.30-0.40 bohr for most systems, and 0.20-0.30 for finer accuracy in systems containing "hard" atoms. Hard atoms include late first row atoms like N, O, F, or late 3d atoms. Here we have a Ru slab, relatively soft, but later we will be adsorbing CO on the surface, which will require a denser mesh for the same accuracy. For a hexagonal slab, it is a good idea to use a grid dimension in the plane that is divisible by three, so that the various high-symmetry points in the surface (i.e., atop, hcp and fcc hollows) are at the same position with respect to the grid.
The next required input is the number of "atom types". For the clean slab there is only one type, the Ru. Later in this tutorial, we will add carbon and oxygen for a total of three atom types. The code then requires input to specify the atom file to be used to describe each atom type, and here we are reading the atom potential/basis information from the file "ru.atm".
Next, the input requires the number of atoms in the unit cell (7), and then a list of each "atom, type, and position". The arguments for an atom input are the atom index (the order of the atom in the list, #1-#7 here), which type (in the order in which the types were listed above), and the positions of the atoms in Cartesian coordinates (in bohr). Note that the slab is centered about Z=0. The code internally places the Z=0 position at the center of the supercell, so that the outer edges of the supercell is defined as vacuum. The code detects if the atoms and their density impinge on the cell boundary - giving a warning, or even stopping with an error message if the atoms are much to close to a vacuum boundary.
The final required input in the setup section (for a periodic calculation) is definition of the Brillouin Zone sampling. For molecular calculations this is unnecessary - one has only real integrals, or the "gamma-point", to worry about. In a (periodic) slab calculation, the Schroedinger equation generally needs to be solved for a sampling of points in reciprocal space. It is possible to input the k-point sampling as an explicit list of k-vectors and their weights (using a different keyword/data sequence than shown here), but this example takes advantage of an optional feature to automatically generates a simple k-point sample. The "kgrid " keyword tells the code to generate a regular mesh in reciprocal space, and here we specify an 6x6 grid in the x-y plane and must use a "0" for the non-periodic direction. A sample with just the gamma-point would be defined by 0x0x0. The kgrid command generates this grid, and offsets this grid from the reciprocal space origin (i.e., the gamma point) by (1/2,1/2,0) in the reciprocal space mesh, i.e., the body-centered position.
The final, required statement in the setup phase section is the "end setup phase" line.
do setup do iters no force no relax setup data title Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions dimension of system (0=cluster ... 3=bulk) 2 primitive lattice vectors 5.0250 0.000000000 0.00 2.5125 4.351777654 0.00 0.0000 0.000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector (cleaved bulk positions) 1 1 2.5125 1.450592551 -11.91 2 1 0.0000 0.000000000 -7.94 3 1 2.5125 1.450592551 -3.97 4 1 0.0000 0.000000000 0.00 5 1 2.5125 1.450592551 3.97 6 1 0.0000 0.000000000 7.94 7 1 2.5125 1.450592551 11.91 kgrid 12 12 0 end setup phase data run phase input data convergence criterion 0.000500 end run phase dataReturn to Top
In addition, note that we have expanded our input notes on this system by changing the "title " keyword near the beginning of the file to "title3", and we have added two line of notes. This method can be used to have up to 9 lines of notes.
do setup do iters no force no relax setup data title3 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Bulk LDA hcp Ru: a0=5.025 bohr=2.659 A, c/a=1.580 (k=12x12x8) Example: hex cell needs special hex Brillouin Zone sample: "kgrid2" dimension of system (0=cluster ... 3=bulk) 2 primitive lattice vectors 5.0250 0.000000000 0.00 2.5125 4.351777654 0.00 0.0000 0.000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 2.5125 1.450592551 -11.91 2 1 0.0000 0.000000000 -7.94 3 1 2.5125 1.450592551 -3.97 4 1 0.0000 0.000000000 0.00 5 1 2.5125 1.450592551 3.97 6 1 0.0000 0.000000000 7.94 7 1 2.5125 1.450592551 11.91 kgrid2 12 12 0 end setup phase data run phase input data convergence criterion 0.000500 end run phase dataReturn to Top
We did not select spin polarization in this slab example, but in the general case, to invoke spin, one specifies a spin-polarized functional. All current DFT functionals are spin-capable. The valid choices include: LDA-SP, CAPZSP, PBE-SP, PW91SP, etc. If one specifies a spin polarized functional, additional input is *required* immediately following the functional. The keyword "spin polarization" with the net spin polarization must be given. The spin polarization is in units of excess electrons of majority spin, must be non-negative (it can be zero), but need not be an integer. For example, an LDA hydrogen atom (or a molecule with a single dangling bond)
functional LDA-SP spin polarization 1.0000will have a polarization of exactly one, i.e., one more electron of majority spin than minority spin.
do setup do iters no force no relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: specify fcnal as Perdew/Zunger param of Ceperley/Alder (=LDA) functional CAPZ dimension of system (0=cluster ... 3=bulk) 2 primitive lattice vectors 5.0250 0.000000000 0.00 2.5125 4.351777654 0.00 0.0000 0.000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 2.5125 1.450592551 -11.91 2 1 0.0000 0.000000000 -7.94 3 1 2.5125 1.450592551 -3.97 4 1 0.0000 0.000000000 0.00 5 1 2.5125 1.450592551 3.97 6 1 0.0000 0.000000000 7.94 7 1 2.5125 1.450592551 11.91 kgrid2 12 12 0 end setup phase data run phase input data convergence criterion 0.000500 end run phase dataReturn to Top
2, 3, 4, 6 = an N-fold rotation -2,-3,-4,-6 = an N-fold rotation followed by inversion -1 = an inversionNote that a reflection is equivalent to "-2", or a two-fold rotation plus inversion. The definitions in our example:
3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0specify a three-fold rotation around (0,0,1), i.e., the z-axis, and a rotation around the x-axis plus inversion, which is equivalent to a reflection through the y-z plane. The code will internally take these symmetry elements and generate a full symmetry group.
The code takes advantage of symmetry in two ways. First, it eliminates redundant symmetry-equivalent k-points in the Brillouin Zone sample, and reduces the sample to be in the irreducible BZ. This makes the size of the calculation smaller, and therefore faster. Second, if the calculation does forces and a relaxation, it will symmetrize the force calculation (in a grid-based calculation, numerical noise may cause the calculation to artificially break symmetry) and conserves symmetry in geometry updates during an energy minimization calculation/relaxation.
do setup do iters no force no relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: take advantage of hexagonal symmetry about 001 axis (symops). functional CAPZ dimension of system (0=cluster ... 3=bulk) 2 primitive lattice vectors 5.0250 0.000000000 0.00 2.5125 4.351777654 0.00 0.0000 0.000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 2.5125 1.450592551 -11.91 2 1 0.0000 0.000000000 -7.94 3 1 2.5125 1.450592551 -3.97 4 1 0.0000 0.000000000 0.00 5 1 2.5125 1.450592551 3.97 6 1 0.0000 0.000000000 7.94 7 1 2.5125 1.450592551 11.91 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data convergence criterion 0.000500 end run phase dataReturn to Top
do setup do iters no force no relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: insert periodic scaling factor (a=5.025), and scale coordinates dimension of system (0=cluster ... 3=bulk) 2 scaleu 5.025 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 0.5000 0.28867513459 -11.91 2 1 0.0000 0.00000000000 -7.94 3 1 0.5000 0.28867513459 -4.97 4 1 0.0000 0.00000000000 0.00 5 1 0.5000 0.28867513459 3.97 6 1 0.0000 0.00000000000 7.94 7 1 0.5000 0.28867513459 11.91 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data convergence criterion 0.000500 end run phase dataReturn to Top
Important: Note that the scaling modifies the atomic coordinates, but does NOT modify the non-periodic lattice vector length! This is intentional. The units of the cell vectors in non-periodic directions cannot be modified by the scaling functions.
do setup do iters no force no relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: insert z-scaling factor (c/a), and scale z-coordinates dimension of system (0=cluster ... 3=bulk) 2 scaleu 5.025 scalez 3.97 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 48.00 (NB: not scaled) grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 0.5000 0.28867513459 -3.0000 2 1 0.0000 0.00000000000 -2.0000 3 1 0.5000 0.28867513459 -1.0000 4 1 0.0000 0.00000000000 0.0000 5 1 0.5000 0.28867513459 1.0000 6 1 0.0000 0.00000000000 2.0000 7 1 0.5000 0.28867513459 3.0000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data convergence criterion 0.000500 end run phase dataReturn to Top
do setup do iters no force no relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: add various interesting scf options dimension of system (0=cluster ... 3=bulk) 2 scaleu 5.025 scalez 3.97 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 0.5000 0.28867513459 -3.0000 2 1 0.0000 0.00000000000 -2.0000 3 1 0.5000 0.28867513459 -1.0000 4 1 0.0000 0.00000000000 0.0000 5 1 0.5000 0.28867513459 1.0000 6 1 0.0000 0.00000000000 2.0000 7 1 0.5000 0.28867513459 3.0000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data iterations - maximum number of scf iterations allowed 35 temperature for occupations (Ry) 0.0030 blend ratio - initial blend of input/output potential in scf 0.30 convergence criterion 0.000500 end run phase dataReturn to Top
do setup do iters do force do relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: set commands to do atomic relaxation dimension of system (0=cluster ... 3=bulk) 2 scaleu 5.025 scalez 3.97 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 0.5000 0.28867513459 -3.0000 2 1 0.0000 0.00000000000 -2.0000 3 1 0.5000 0.28867513459 -1.0000 4 1 0.0000 0.00000000000 0.0000 5 1 0.5000 0.28867513459 1.0000 6 1 0.0000 0.00000000000 2.0000 7 1 0.5000 0.28867513459 3.0000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data temperature for occupations (Ry) 0.0030 blend ratio 0.30 convergence criterion 0.000500 end run phase dataReturn to Top
grelax (sets atoms 1,2,3 to be relaxed) 1 3 grelax (adds atoms 5,6,7 to set to be relaxed) 5 7would accomplish the same thing, relaxing atoms #1-3 and #5-7 while fixing all others (i.e.#4). While either can be used multiple times, they are mutually exclusive, and cannot both be used in the same input file.
do setup do iters do force do relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: modify atomic relaxation optimization parameters dimension of system (0=cluster ... 3=bulk) 2 scaleu 5.025 scalez 3.97 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 0.5000 0.28867513459 -3.0000 2 1 0.0000 0.00000000000 -2.0000 3 1 0.5000 0.28867513459 -1.0000 4 1 0.0000 0.00000000000 0.0000 5 1 0.5000 0.28867513459 1.0000 6 1 0.0000 0.00000000000 2.0000 7 1 0.5000 0.28867513459 3.0000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data temperature for occupations (Ry) 0.0030 blend ratio 0.30 convergence criterion 0.000500 geometry relaxation gsteps - restrict the number of geometries to relax 10 gconv - max force convergence criterion 0.0010 gfixed - fix atom 4 in place while relaxing everything else 4 4 end geometry relaxation end run phase dataReturn to Top
do setup do iters do force do relax setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: transform coordinates into lattice units dimension of system (0=cluster ... 3=bulk) 2 coordinates LATTICE scaleu 5.025 scalez 3.97 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector - converted to lattice units 1 1 0.333333333333 0.333333333333 -3.0000 2 1 0.000000000000 0.000000000000 -2.0000 3 1 0.333333333333 0.333333333333 -1.0000 4 1 0.000000000000 0.000000000000 0.0000 5 1 0.333333333333 0.333333333333 1.0000 6 1 0.000000000000 0.000000000000 2.0000 7 1 0.333333333333 0.333333333333 3.0000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data temperature for occupations (Ry) 0.0030 blend ratio 0.30 convergence criterion 0.000500 geometry relaxation gsteps - restrict the number of geometries to relax 10 gconv - max force convergence criterion 0.0010 gfixed - fix atom 4 in place while relaxing everything else 4 4 end geometry relaxation end run phase dataReturn to Top
For this Ru slab example, you would not want to do such a cell optimization as the cell parameters are determined by the bulk lattice parameter. This example is for illustration purposes only, to show how one would do a 2D cell optimization for a system where such an optimization might be desired, e.g., a single graphite sheet.
To invoke cell optimization, add "do cell" to the instructions at the beginning of the input. The optional cell section , beginning with "cell optimization" and ending with "end cell", allows some control over cell optimization. This is illustrated here by setting the unit cell convergence threshold (uc_conv) to a maximum stress of 0.01 x 10^2 N/m^2.
Important: Cell optimization requires:
do setup do iters do force do relax do cell setup data title2 Ru(0001) surface: 7-layer slab, unrelaxed cleaved bulk positions Example: turn on cell optimization (2D) dimension of system (0=cluster ... 3=bulk) 2 coordinates LATTICE primitive lattice vectors 5.0250 0.000000000 0.00 2.5125 4.351777654 0.00 0.0000 0.000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 0.333333333333 0.333333333333 -3.0000 2 1 0.000000000000 0.000000000000 -2.0000 3 1 0.333333333333 0.333333333333 -1.0000 4 1 0.000000000000 0.000000000000 0.0000 5 1 0.333333333333 0.333333333333 1.0000 6 1 0.000000000000 0.000000000000 2.0000 7 1 0.333333333333 0.333333333333 3.0000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data temperature for occupations (Ry) 0.0030 blend ratio 0.30 convergence criterion 0.000500 geometry relaxation gsteps - restrict the number of geometries to relax 10 gconv - max force convergence criterion 0.0010 gfixed - fix atom 4 in place while relaxing everything else 4 4 end geometry relaxation cell optimization uc_conv - stress convergence (in 10^2 N/m^2) 0.01 end cell end run phase dataReturn to Top
1 1 0.5000000000 0.2886751346 -2.9726158569
2 1 0.0000000000 0.0000000000 -2.0034384252
3 1 0.5000000000 0.2886751346 -1.0077494704
4 1 0.0000000000 0.0000000000 0.0000000000
5 1 0.5000000000 0.2886751346 1.0077319639
6 1 0.0000000000 0.0000000000 2.0033998706
7 1 0.5000000000 0.2886751346 2.9725643844
and gave a total energy for the relaxed cell of do setup do iters do force no relax setup data title2 Ru(0001) surface: 7-layer slab, fully relaxed clean surface Example: set up a clean substrate system dimension of system (0=cluster ... 3=bulk) 2 scaleu 5.025 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 48.00 grid dimensions 15 15 150 atom types 1 atom file ru.atm number of atoms in unit cell 7 atom, type, position vector 1 1 0.5000 0.28867513459 -11.80118 2 1 0.0000 0.00000000000 -7.95358 3 1 0.5000 0.28867513459 -4.00073 4 1 0.0000 0.00000000000 0.00000 5 1 0.5000 0.28867513459 4.00073 6 1 0.0000 0.00000000000 7.95358 7 1 0.5000 0.28867513459 11.80118 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data temperature for occupations (Ry) 0.0030 blend ratio 0.30 convergence criterion 0.000500 end run phase dataReturn to Top
A number of practical issues arise in constructing the calculation
associated with this physical picture. First, we must consider the
effect of the supercell approximation. If one puts adsorbates on
one surface of the slab, the total system, adsorbate plus substrate, will,
in general, have a net dipole. In a conventional supercell calculation,
the Coulomb potential at the surface is corrupted by dipole potentials
from the artificial periodic images of the slab. To avoid this problem,
practitioners will frequently cover both surfaces with adsorbates so that
the slab will have no net dipole, at the cost of a larger calculation.
In this code, this is NOT necessary as the code automatically and exactly
removes the artificial dipole arising from the supercell approximation
using the LMCC (Local Moment CounterCharge) method:
"Local electrostatic moments and periodic boundary conditions",
P.A. Schultz, Phys. Rev. B 60, 1551 (1999)
(which should be cited in any calculation for a polar surface).
Hence, we need only place adsorbates on one side of the slab.
We need an initial configuration for the CO on the surface. We assume for setting up this adsorption calculation that we have no helpful information (such as experimental data, or other theoretical results) for the various bond distances at the surface (Ru-CO RuC-O). For the initial C-O distance at the surface, we use the equilibrium bond distance computed for molecular CO within LDA: 2.15 bohr (=1.14 Angstrom). For the initial Ru-CO distance, we will use half the Ru-Ru distance (5.025/2=2.5 bohr) and half the C-O distance (2.15/2=1.1 bohr) for a total Ru-C distance of 3.6 bohr. The top Ru atom at the surface sits at z=11.80118, so that we will place the C at 11.80118+3.6=15.40 and our O at z=15.40+2.15=17.55 for the initial guess. We add two atom types, carbon and oxygen, for a total of three types, and the appropriate atom files, and add the C and O to our list of atoms (for a total of nine atoms) and their initial coordinates.
The final issue is adjustment of the supercell. After adding the CO in the above guess, the oxygen sits at z=+17.55 bohr but our supercell spans z=-24.0 to z=+24.0 (48.0/2 around z=0) so that the oxygen atom is only 6.45 bohr away from a boundary. This might pass the internal check in the code, but we would really like to have at least 9 bohr to a boundary and probably more, as the atoms might move toward vacuum in the course of a relaxation. Hence, we would like to have the supercell boundary at least at z=+28.0-30.0 to ensure that the density around the oxygen will decay before the supercell (vacuum) boundary. For this example we will choose to set the boundary at +29.12 bohr. Why such a "strange" number? Because this is an increase of 5.12 bohr which simply extends the grid used for the bare slab by an integral number of points (5.12/.32=16 grid points).
We could increase the cell size by 5.12 bohr on both sides of the slab to give to give a total repeat vector of 5.12+48.00+5.12=58.24, with the corresponding total grid of 16+150+16=182. However, this would be wasteful, as we do not need the extra space on the clean side of the slab, just on the adsorbed side. By default, the code puts the coordinate origin (z=0) in the center of the supercell, but the code allows the user to shift the default origin through the use of the "origin" keyword as illustrated below, which instructs the code to shift the supercell center to the indicated location. The shift we use has the net effect of adding all the increased repeat vector on the adsorbed side, keeping fixed the vacuum region on the clean side of the slab. The slab repeat is now 48.00+5.12=53.12, with a new grid dimension of 150+16=166. The offset also happens to be an integral number of grid intervals, so that the grids used in the clean slab and the adsorbed surface are in registry, i.e., the Ru atoms in the substrate have the identical orientation with respect to the regular grid they had in the smaller clean slab cell.
do setup
do iters
do force
no relax
setup data
title2
Ru(0001) relaxed 7-layer slab surface + (1x1) CO
Example: adding CO onto a relaxed Ru surface
dimension of system (0=cluster ... 3=bulk)
2
scaleu
5.025
primitive lattice vectors
1.0000 0.00000000000 0.00
0.5000 0.86602540378 0.00
0.0000 0.00000000000 53.12
grid dimensions
15 15 166
atom types
3
atom file
ru.atm
atom file
c.atm
atom file
o.atm
number of atoms in unit cell
9
atom, type, position vector
1 1 0.5000 0.28867513459 -11.80118
2 1 0.0000 0.00000000000 -7.95358
3 1 0.5000 0.28867513459 -4.00073
4 1 0.0000 0.00000000000 0.00000
5 1 0.5000 0.28867513459 4.00073
6 1 0.0000 0.00000000000 7.95358
7 1 0.5000 0.28867513459 11.80118
8 2 0.5000 0.28867513459 15.40
9 3 0.5000 0.28867513459 17.55
origin
0.0000 0.0000 2.56000
kgrid2
12 12 0
symops
2
definitions sym ops (3-fold rotate around 001, reflection plane normal 100)
3 0.0 0.0 1.0 0.0 0.0 0.0
-2 1.0 0.0 0.0 0.0 0.0 0.0
end setup phase data
run phase input data
temperature for occupations (Ry)
0.0030
blend ratio
0.30
convergence criterion
0.000500
end run phase data
Return to Top
do setup do iters do force no relax setup data title2 Ru(0001) relaxed 7-layer slab surface + (1x1) CO Example: aliasing atom types dimension of system (0=cluster ... 3=bulk) 2 scaleu 5.025 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 53.12 grid dimensions 15 15 166 atom types 3 atom file Ru = ru.atm atom file C.atm atom file /library/lda/O.atm number of atoms in unit cell 9 atom, type, position vector 1 Ru 0.5000 0.28867513459 -11.80118 2 Ru 0.0000 0.00000000000 -7.95358 3 Ru 0.5000 0.28867513459 -4.00073 4 Ru 0.0000 0.00000000000 0.00000 5 Ru 0.5000 0.28867513459 4.00073 6 Ru 0.0000 0.00000000000 7.95358 7 Ru 0.5000 0.28867513459 11.80118 8 C 0.5000 0.28867513459 15.40 9 O 0.5000 0.28867513459 17.55 origin 0.0000 0.0000 2.56000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data temperature for occupations (Ry) 0.0030 blend ratio 0.30 convergence criterion 0.000500 end run phase dataReturn to Top
do setup do iters do force do relax setup data title2 Ru(0001) relaxed 7-layer slab surface + (1x1) CO Example: applying an external electric field dimension of system (0=cluster ... 3=bulk) 2 functional LDA efield (Ry/bohr) 0.0 0.0 0.038893 scaleu 5.025 primitive lattice vectors 1.0000 0.00000000000 0.00 0.5000 0.86602540378 0.00 0.0000 0.00000000000 53.12 grid dimensions 15 15 166 atom types 3 atom file Ru = ru.atm atom file C.atm atom file /library/lda/O.atm number of atoms in unit cell 9 atom, type, position vector 1 Ru 0.5000 0.28867513459 -11.80118 2 Ru 0.0000 0.00000000000 -7.95358 3 Ru 0.5000 0.28867513459 -4.00073 4 Ru 0.0000 0.00000000000 0.00000 5 Ru 0.5000 0.28867513459 4.00073 6 Ru 0.0000 0.00000000000 7.95358 7 Ru 0.5000 0.28867513459 11.80118 8 C 0.5000 0.28867513459 15.40 9 O 0.5000 0.28867513459 17.55 origin 0.0000 0.0000 2.56000 kgrid2 12 12 0 symops 2 definitions sym ops (3-fold rotate around 001, reflection plane normal 100) 3 0.0 0.0 1.0 0.0 0.0 0.0 -2 1.0 0.0 0.0 0.0 0.0 0.0 end setup phase data run phase input data temperature for occupations (Ry) 0.0030 blend ratio 0.30 convergence criterion 0.000500 end run phase dataReturn to Top