A gallery of real crystal structures¶
You’ll learn: the one shared pattern behind vibe-qc’s real-crystal example set, nine structure types, each run at RHF, B3LYP (Becke, Axel D. (1993). *Density-functional thermochemistry. III. The role of exact exchange.* Journal of Chemical Physics, **98**(7), 5648–5652. doi:[10.1063/1.464913](https://doi.org/10.1063/1.464913), Stephens, P. J., Devlin, F. J., et al. (1994). *Ab Initio Calculation of Vibrational Absorption and Circular Dichroism Spectra Using Density Functional Force Fields.* Journal of Physical Chemistry, **98**(45), 11623–11627. doi:[10.1021/j100096a001](https://doi.org/10.1021/j100096a001)), and PBE (Perdew, John P., Burke, Kieron, and Ernzerhof, Matthias (1996). *Generalized Gradient Approximation Made Simple.* Physical Review Letters, **77**(18), 3865–3868. doi:[10.1103/PhysRevLett.77.3865](https://doi.org/10.1103/PhysRevLett.77.3865)), so you can adapt any of them as a starting point for your own material.
This page is a map, not a derivation: for a full first-principles
walkthrough of why periodic Gaussian-basis SCF needs pob-TZVP
(Peintinger, Michael F., Vilela Oliveira, Daniel, and Bredow, Thomas (2013). *Consistent Gaussian basis sets of triple-zeta valence with polarization quality for solid-state calculations.* Journal of Computational Chemistry, **34**(6), 451–459. doi:[10.1002/jcc.23153](https://doi.org/10.1002/jcc.23153)), IBZ
k-mesh reduction, and how to read band structure/DOS/orbital cubes off
the result, see Why solid-state calculations use
pob-TZVP and the deep single-system walkthrough,
Solid-state walkthrough: LiH rocksalt with
pob-TZVP. This page instead surveys the
other nine real structures in
examples/periodic/,
which have no tutorial coverage today, and shows the pattern once so you
don’t have to read all ~27 nearly-identical scripts to find it.
The nine structures¶
Each has its own directory under examples/periodic/ with RHF,
RKS-B3LYP, and RKS-PBE variants sharing the pattern above (lattice
parameters below are the actual values each script’s CELL_ANG uses -
verified by reading the scripts, not looked up separately):
Structure |
Type |
Cell (Å) |
Basis |
|---|---|---|---|
Diamond cubic carbon |
cubic a = 3.567 |
pob-TZVP |
|
Diamond cubic silicon |
cubic a = 5.431 |
pob-TZVP |
|
Rocksalt (NaCl-type) |
cubic a = 5.64 |
pob-TZVP |
|
Rocksalt (NaCl-type) |
cubic a = 4.21 (2-atom primitive) |
pob-TZVP + a separate sto-3g Γ target |
|
FCC solid neon |
cubic a = 4.43 |
pob-TZVP |
|
α-quartz |
trigonal, a = 4.9134, c = 5.4052 |
pob-TZVP |
|
Rutile |
tetragonal, a = 4.5937, c = 2.9587 |
pob-TZVP |
|
Wurtzite |
hexagonal, a = 3.2495, c = 5.2069 |
pob-TZVP |
|
α-corundum, space group R-3c (#167) |
hexagonal, a = 4.7589, c = 12.991 |
sto-3g (RHF only) |
(LiH-rocksalt also lives in this directory with the same three-method
pattern, but gets its own deep walkthrough, see Solid-state
walkthrough: LiH rocksalt with pob-TZVP
instead of repeating it here.)
What the structure types imply¶
The nine entries are not an arbitrary list: they span the crystal systems and bonding types a periodic Gaussian code has to get right, and each structure’s symmetry tells you in advance what the calculation can and cannot show.
Diamond (C, Si), space group \(Fd\bar 3m\), is a face-centred cubic lattice with a two-atom basis in which every atom sits on a site of tetrahedral (\(T_d\)) point symmetry. Covalent \(sp^3\) bonding, no ionic charge transfer by symmetry, and an indirect gap: the valence-band maximum is at \(\Gamma\) but the conduction-band minimum lies along \(\Gamma\)-\(X\), so a band plot that stops at \(\Gamma\) overestimates the gap. The atomic forces vanish identically by symmetry, so only the lattice constant can relax.
Rocksalt (NaCl, MgO, LiH), \(Fm\bar 3m\), is two interpenetrating fcc lattices with every ion on an octahedral (\(O_h\)) site. It is the textbook ionic case: the Madelung constant is 1.7476, the Coulomb lattice sum is conditionally convergent and must be handled by Ewald summation (Ewald, Paul Peter (1921). *Die Berechnung optischer und elektrostatischer Gitterpotentiale.* Annalen der Physik, **369**(3), 253-287. doi:[10.1002/andp.19213690304](https://doi.org/10.1002/andp.19213690304); Madelung constants), and the forces again vanish by symmetry. Because the primitive cell has two atoms, the conventional cubic cell of eight holds four primitive cells; MgO ships both.
fcc neon, \(Fm\bar 3m\) with one atom per primitive cell (the shipped scripts use the four-atom conventional cubic cell, so their k-meshes are correspondingly smaller), is a closed-shell van der Waals solid: at the HF and semilocal-DFT levels shown here it is bound only weakly or not at all, since dispersion is missing, so it is a test of the machinery (one atom, high symmetry, a tiny irreducible wedge) rather than of the physics.
Alpha-quartz (SiO2), \(P3_2 21\), is trigonal and chiral, with corner-sharing SiO4 tetrahedra and internal coordinates that are not fixed by symmetry: the Si-O bond length and the Si-O-Si angle can relax, so forces are non-zero and a fixed-geometry single point is a single point, not an equilibrium. The three-fold axis is also why a Gamma-centred k-mesh is required (an off-Gamma Monkhorst-Pack shift breaks the trigonal symmetry;
KPoints.monkhorst_packrefuses it; Monkhorst, Hendrik J. and Pack, James D. (1976). *Special points for Brillouin-zone integrations.* Physical Review B, **13**(12), 5188–5192. doi:[10.1103/PhysRevB.13.5188](https://doi.org/10.1103/PhysRevB.13.5188)).Rutile (TiO2), \(P4_2/mnm\), is tetragonal with a free oxygen coordinate \(u\); the two lattice parameters and \(u\) together set the Ti-O distances. Ti\(^{4+}\) has an empty \(3d\) shell, so the gap is a charge-transfer gap from O \(2p\) to Ti \(3d\) and the semilocal functionals underestimate it.
Wurtzite (ZnO), \(P6_3mc\), is hexagonal and polar: it has no inversion centre, so a spontaneous polarisation is allowed along \(c\), the internal parameter \(u\) is free, and the Zn \(3d\) band sits only a few eV below the valence-band maximum where semilocal DFT places it too high. It also needs a Gamma-centred mesh.
Corundum (Al2O3), \(R\bar 3c\), is rhombohedral (built here in the hexagonal setting with 30 atoms) with two free internal coordinates and the largest cell of the set; it is the reason the script builds the structure from space group and Wyckoff positions rather than by hand.
In short: the cubic structures test Ewald sums, k-mesh convergence and symmetry reduction with no internal degrees of freedom; the trigonal, tetragonal and hexagonal ones add free internal coordinates (and therefore real forces), polarity, and the Gamma-centred-mesh requirement.
Two structures don’t quite follow the plain pattern above:
MgO-rocksaltadditionally ships a CRYSTAL14 side-by-side comparison:MgO-rocksalt-RHF-pobtzvp-mp8-gdf.pybuilds the same 2-atom FCC primitive cell CRYSTAL14 uses internally and runs it on an8x8x8k-mesh through the native multi-k GDF backend end to end, reporting the SCF energy, HOMO/LUMO gap, and IBZ-expansion metadata. A matching.d12CRYSTAL14 input and aREADME-crystal14-parity.mdsit in the same directory for the actual parity comparison.Al2O3-corundumuses ASE’s (Larsen, Ask Hjorth, Mortensen, Jens Jørgen, et al. (2017). *The atomic simulation environment - a Python library for working with atoms.* Journal of Physics: Condensed Matter, **29**(27), 273002. doi:[10.1088/1361-648X/aa680e](https://doi.org/10.1088/1361-648X/aa680e))ase.spacegroup.crystalto build the 12 Al + 18 O conventional cell from the space group and Wyckoff parameters directly (R-3c, a = 4.7589 Å, c = 12.991 Å, from Springer Materials entrysd_1400479) rather than hand-listing atom positions, worth a look if you want to build a structure from its space group instead of pasting fractional coordinates by hand. It also only has an RHF/sto-3g variant, no B3LYP/PBE siblings.
Adapting one for your own material¶
The fastest path to a new structure: copy the closest existing script
(same structure type, if one matches), replace CELL_ANG and
ATOM_DATA with your own lattice and basis, and keep everything else.
If your basis isn’t pob-TZVP-covered for an element you need, see Why
solid-state calculations use pob-TZVP
for when a molecular basis is still safe to use instead.
Next¶
Why solid-state calculations use pob-TZVP for the basis theory these scripts all depend on.
Solid-state walkthrough: LiH rocksalt with pob-TZVP for the deep single-system version of this pattern: k-mesh convergence, band structure, DOS, and orbital cubes.
Choosing a periodic method for GDF vs. BIPOLE vs. GPW/GAPW, if Γ-point GDF isn’t the right route for your system.