Building Crystals and Slabs

In this tutorial we demonstrate the working of several tools that combined give you great flexibility to build periodic structures.

If you are not interested in periodic structures (for example, if you only use ADF), you can skip this tutorial.

The instruments at your disposal are:

  • The crystal structures tool CrystalTool.
  • The predefined crystal structures in the database (via the search field).
  • CIF file importer.
  • Crystal builder from space group information.
  • Super cell tool to enlarge the unit cell.
  • Slice tool to cut out slabs from any crystal.

To use these tools you need to use AMSinput in periodic mode. For example, by switching to the BAND mode, or by switching to DFTB or Mopac and next changing the periodicity.

See also

More information about modeling crystals and slabs in AMS: see the Crystals and Surfaces tutorial.

The Crystal Structures Tool

If you are lucky your crystal structure is already included in AMSinput. Most of the common structures are there. NaCl is one of them.

Start AMSinput and switch to BAND (or to DFTB, and switch the periodicity to ‘Bulk’)
Click on the snowflake-like pictogram CrystalTool on the toolbar.
Select a “Cubic” lattice and then NaCl
/scm-uploads/doc.2021/Tutorials/_images/StructureTool_SelectNaCl.png

Next a dialog pops up where you can change the parameters of the structure, such as lattice constants

/scm-uploads/doc.2021/Tutorials/_images/NaClDialog.png

In this case there is no need to change anything.

Click OK
View → Periodic → Repeat Unit Cells

You can adjust the details like lattice constants by hand. For example LiF: it has the same crystal structure as NaCl, but other elements and a different lattice constant, namely 4.02:

/scm-uploads/doc.2021/Tutorials/_images/LiFDialog.png
Open again the NaCl dialog
Change the lattice constant and the elements as shown
Click OK

The NaCl crystal structure will be replaced by the new LiF crystal structure.

Some crystal structures have more parameters.

Select “Tetragonal” and then “Rutile” from the snowflake tool
Click OK
/scm-uploads/doc.2021/Tutorials/_images/RutileDialog.png

As you can see, it has two lattice parameters that need to be specified. But now also the positions of the oxygens have a parameter “x”

After clicking ‘Ok’ your screen will look like this

/scm-uploads/doc.2021/Tutorials/_images/TiO2Rutile.png

The Crystal Structures Database

All crystal structures known to the crystal structures tool are also available via the search tool.

Just as you can search for a molecule, you can search for a crystal. So lets make NaCl again:

File → New
Click on the search icon, or press control or command - F
Type ‘NaCl’ (without the quotes)

You should get a couple of matches:

/scm-uploads/doc.2021/Tutorials/_images/SearchNaCl.png

Select the NaCl crystal result (not the molecule!):

Click on the ‘NaCl’ search result (in the Crystals section)

You now should have a NaCl crystal again.

/scm-uploads/doc.2021/Tutorials/_images/NaClFromSearch.png

Currently the structures of many simple crystals are included, as well as a few complex structure (optimized by MOPAC). The zeolite frameworks are also included as a starting point to make your zeolite structure.

Crystal builder (from space group information)

The structure database is very convenient but by necessity incomplete. A more powerful approach is to build 3D crystals from the space group information. Here we give an example on how to build TiO2 (Rutile) again, now from its space group.

Open the crystal builder:
Click on the snowflake tool and select “From Space Group”
/scm-uploads/doc.2021/Tutorials/_images/FromSpaceGroup.png

And the following window pops up

/scm-uploads/doc.2021/Tutorials/_images/CrystalBuilder.png

Rutile has the symmetry of space group 136

Enter 136 in the space group “Number” field, and press return (enter key on Windows).
/scm-uploads/doc.2021/Tutorials/_images/SpaceGroup136.png

Note how the Browser reflects the change and also how the “Name” and “Lattice” values change

Now set the two lattice parameters as below

/scm-uploads/doc.2021/Tutorials/_images/CrystalDialogLatticeConstants.png

We still need to define the atomic coordinates. For starters click on the plus below “Coordinates”

/scm-uploads/doc.2021/Tutorials/_images/Coords136_first.png

In a book on crystal structures you can find that Rutile has two sites occupied. The Ti atom is on the “a” site

Select the Ti atom and select the “a” site
/scm-uploads/doc.2021/Tutorials/_images/Coords136_Ti.png

The oxygens occupy the “f” site.

Click on the plus to add a site
Change the atom type to “O” and the site to “f”
/scm-uploads/doc.2021/Tutorials/_images/Coords136_O_initial.png

As you can see in the “Coords” column and the “Parameters” column, this site has an undetermined parameter “x”. (It represents a symmetry line for this space group.) In the book you can find that for TiO2 “x=0.3”.

Set “x” to 0.3

The final dialog looks like

/scm-uploads/doc.2021/Tutorials/_images/RutileFinalDialog.png
Press “Apply” and if that looks any good press “Close”
/scm-uploads/doc.2021/Tutorials/_images/RutileFinal.png

In the toolbar there is another tool that may be of use: the star button. Just like the similar button for molecules this button will try to detect the symmetry of your system and make small changes to adjust to perfect symmetry. It does this via spglib, see the help balloon for details.

Click the Symmetrize button (the star in the toolbar)

You already had perfect symmetry, so nothing much changes. The detected symmetry should be reported:

/scm-uploads/doc.2021/Tutorials/_images/RutileSpglib.png

You can view a larger part of the crystal and still see the unit cell clearly:

Right-click on the periodic display button (the 4 dots)
In the dialog that pops up type 2 in the top-left cell (other elements will follow)
Click OK
Use ctrl/cmd-J and ctrl/cmd-K to make neighbor cells more or less transparent (or use the menu commands in the View menu)

This will give you a view like this:

/scm-uploads/doc.2021/Tutorials/_images/RutileTransparent.png

Slicer: building slabs, transform primitive to conventional cell

The slicer is a very easy, yet powerful tool to make slabs from any crystal structure. In this example we build a three layer slab of the Cu(111) surface.

Select fcc from the “Cubic” crystals

The element and lattice constant are already correct for Cu.

/scm-uploads/doc.2021/Tutorials/_images/FccDialog.png
Press “OK” to generate the Cu lattice
View → Periodic → Repeat Unit Cells if needed
/scm-uploads/doc.2021/Tutorials/_images/CuLattice.png

Let us invoke the slicer tool to cut out the slab.

Click on the SliceTool slice tool, or select CrystalTool → Generate Slab.

The right side of the AMSinput window will show the Generate Slab options.

If you hold your mouse over the Miller indices fields, you should get a balloon that explains how to set the proper Miller indices. In this particular example we have the primitive unit cell of Cu, so first we need to convert to conventional unit cell.

Click on the Convert to Conventional Cell button.
Set the Miller indices to 1, 1, 1
Set the number of layers to 3
/scm-uploads/doc.2021/Tutorials/_images/Dialog111Cu.png
Press Generate Slab

The generated surface unit cell is in this case not the primitive surface unit cell, but a (2×2) surface supercell.

CrystalTool → Convert To Primitive Cell

You will see (from the top), if the PeriodicViewTool periodic view tool is activated,

/scm-uploads/doc.2021/Tutorials/_images/Cu111Top.png

You may want to rotate it or select View → View Direction → Along X-axis to convince yourself that it is a three layer slab.

/scm-uploads/doc.2021/Tutorials/_images/Cu111Side.png

Creating a supercell

Quite often you want to use a larger unit cell. You can do this for chains, slabs, and crystals, but we will demonstrate how it works for a slab.

We will continue to work with the 3-layer Cu slab:

Select the Edit → Crystal → Generate Super Cell… command

Thus invoking the Super Cell Tool

/scm-uploads/doc.2021/Tutorials/_images/SuperCellTool.png

Here you see how new lattice vectors are expressed in terms of old ones. Because we have a slab this is a 2x2 matrix.

Use the default (2 on the diagonal)
Press OK

and you get a bigger unit cell with three atoms per layer:

/scm-uploads/doc.2021/Tutorials/_images/Cu111S3.png
Close AMSinput