Learning Objectives
By the end of this section, you will be able to:
- Define lattice vectors and explain how they generate an infinite lattice through integer linear combinations.
- Translate between lattice parameters () and full Cartesian vector representations.
- Distinguish between primitive cells, conventional cells, and the Wigner-Seitz cell, and explain when to use each one.
- Compute the volume of a unit cell using the scalar triple product .
- Write a correct VASP POSCAR file with either primitive or conventional lattice vectors and verify the cell volume.
- Explain why the Wigner-Seitz cell in reciprocal space is the first Brillouin zone, and why that matters for DFT k-point sampling.
Why this matters
The Big Picture
The Problem: Describing Infinite Order with Finite Information
A macroscopic crystal of table salt contains roughly atoms. Writing down every atom's position is impossible. Yet the structure has a beautiful regularity: if you stand at any sodium atom and look around, you see the exact same arrangement of chlorine and sodium neighbors, no matter which sodium atom you chose. This translational symmetry means we can describe the entire infinite crystal using just a few numbers.
The key insight, formalized by Auguste Bravais in 1850, is to separate the repeating pattern (the lattice) from what repeats (the basis). In the previous section we introduced this decomposition. Now we make the lattice side precise: three vectors define the repeat directions and distances, and the region they enclose — the unit cell — is the minimal "tile" that can be copied to fill all of space.
From Wallpaper to Crystals
Consider a wallpaper pattern. Two vectors in the plane define how the design repeats horizontally and diagonally. Given these two vectors and one copy of the motif, you can reconstruct the entire infinite wallpaper. A 3D crystal is the same idea with three vectors instead of two. The vectors tell you the "step size and direction" of each repeat, and the motif (the basis) is the group of atoms that gets stamped at every lattice point.
The choice of repeat vectors is not unique. You could describe the same wallpaper with different pairs of vectors, producing different-shaped tiles that all cover the plane perfectly. Some tiles are as small as possible (primitive), others are larger but more symmetric (conventional). Understanding this freedom — and knowing which choice is best for a given purpose — is the central theme of this section.
Lattice Vectors
A Bravais lattice is fully specified by three lattice vectors . These are three linearly independent vectors in such that every lattice point is located at:
Unpacking the Equation
Let us read this equation carefully, symbol by symbol:
- is the position vector of a lattice point, measured from some chosen origin. It is a vector in with units of length (typically angstroms, ).
- are the three lattice vectors (also called basis vectors of the lattice — not to be confused with the atomic basis). Each is a vector in . They define the shape and size of the repeating unit.
- are integers (positive, negative, or zero). They act as "step counters": take steps along , steps along , and steps along . The resulting position is a lattice point.
- denotes the set of all integers: . The requirement that is what makes the lattice discrete rather than continuous.
Linear independence
Geometric Intuition
Think of the lattice vectors as three "step instructions" in 3D space. Starting at the origin, step tells you how far and in what direction to walk to reach the nearest lattice point along the first direction. Similarly for and . By taking integer combinations of these steps, you visit every point of an infinite 3D grid. The grid might be orthogonal (like a cubic lattice), skewed (like a triclinic lattice), or anything in between.
Cartesian Components
In practice, we express each lattice vector as three Cartesian components. For example, the FCC primitive vectors for a material with lattice constant are:
For CdSe in the zinc blende structure with , each component evaluates to . These are exactly the vectors you write in a VASP POSCAR file (after dividing by the scaling factor).
Meanwhile, the conventional cubic vectors are simply:
Both sets of vectors describe the same infinite lattice, but the primitive set produces a smaller cell (fewer atoms, cheaper calculation).
Lattice Parameters
Instead of writing full Cartesian vectors, crystallographers often use six scalar lattice parameters to characterize the unit cell geometry:
- Three lengths: , , .
- Three angles:
| Angle | Definition | Between which vectors |
|---|---|---|
| α | Angle between a₂ and a₃ | a₂ ↔ a₃ |
| β | Angle between a₁ and a₃ | a₁ ↔ a₃ |
| γ | Angle between a₁ and a₂ | a₁ ↔ a₂ |
The angles are computed from the dot products: for example, .
Crystal Systems and Their Constraints
The 7 crystal systems impose specific constraints on these 6 parameters. A few key examples:
| Crystal System | Constraint | Free Parameters | Example |
|---|---|---|---|
| Cubic | a = b = c, α = β = γ = 90° | 1 (a) | NaCl, Si, CdSe(ZB) |
| Hexagonal | a = b ≠ c, α = β = 90°, γ = 120° | 2 (a, c) | GaN(W), graphite |
| Tetragonal | a = b ≠ c, α = β = γ = 90° | 2 (a, c) | TiO₂ rutile |
| Orthorhombic | a ≠ b ≠ c, α = β = γ = 90° | 3 (a, b, c) | BaTiO₃ (ortho) |
| Triclinic | No constraints | 6 | Many organic crystals |
For a cubic system, a single number suffices. For triclinic, all 6 parameters are independent. The fewer the constraints, the lower the symmetry.
VASP and lattice parameters
Lattice.from_parameters(a, b, c, alpha, beta, gamma) handles this conversion automatically.Explore how these 6 parameters define the shape of the unit cell in 3D. Select any of the 7 crystal systems to see its characteristic parallelepiped, or adjust the sliders to watch the cell morph continuously between systems:
3D Crystal System Explorer
Adjust lattice parameters to see how the 7 crystal systems differ in 3D
Interactive Lattice Vector Explorer
Adjust lattice parameters to see how the unit cell and tiling change
Now explore these lattice types in full 3D. Rotate the view to see how corner, body-center, and face-center atoms are arranged, and toggle between conventional and primitive cell representations:
3D Crystal Lattice Viewer
Rotate and zoom to explore SC, BCC, and FCC lattices in three dimensions
The Unit Cell
A unit cell is a region of space that, when translated by all lattice vectors, tiles the entire crystal without gaps or overlaps. Formally, it is a fundamental domain of the translation group generated by .
The Tiling Analogy
Think of a unit cell as a single tile on an infinite bathroom floor. The tile can be any shape that covers the floor with no gaps and no overlaps when you slide copies of it around (without rotating or reflecting). The simplest tile is the parallelepiped — the 3D analogue of a parallelogram — whose edges are the lattice vectors themselves. But there are infinitely many valid tile shapes for any given lattice.
Formal Properties
- Space-filling: copies of the cell, translated by for all integers , cover every point of exactly once.
- Integer lattice points: the cell contains an integer number of lattice points: 1 (primitive), 2 (body-centered), 4 (face-centered), or 2 (base-centered).
- Non-uniqueness: for any lattice, there are infinitely many valid unit cells. The choice depends on your purpose — minimal cost (primitive), maximum symmetry display (conventional), or maximum symmetry (Wigner-Seitz).
Key distinction: lattice vs basis
Volume of the Unit Cell
The volume of the parallelepiped spanned by three lattice vectors is given by the scalar triple product:
Geometric Meaning
This formula has a beautiful geometric interpretation in two stages:
- Cross product : this gives a vector perpendicular to both and , with magnitude equal to the area of the parallelogram they span. Think of it as the "base area" of the parallelepiped.
- Dot product with : this projects onto the perpendicular direction, giving the height of the parallelepiped. Area height = volume.
Step through this decomposition in 3D to see the base parallelogram, cross product vector, and height projection that combine to give the parallelepiped volume:
Unit Cell Volume: V = a₁·(a₂×a₃)
Step through the geometric meaning of the scalar triple product
Equivalently, the volume is the absolute value of the determinant of the lattice matrix:
Example: Simple Cubic
For a simple cubic lattice with lattice constant : the vectors are , , , so . For CdSe with , the conventional cube volume is .
Example: FCC Primitive Cell
For the FCC primitive vectors , , :
This is exactly of the conventional cubic volume, consistent with lattice points in the FCC conventional cell. For CdSe: .
Volume in Terms of Lattice Parameters
If you only know the six lattice parameters rather than the full vectors, the volume is:
For the cubic case (, all angles ), this simplifies to since all cosines are zero. For hexagonal (), it gives .
Primitive Cells
A primitive cell is the smallest unit cell that contains exactly one lattice point. It has the minimum possible volume for the given lattice:
where is the number of lattice points in the conventional cell.
Properties of Primitive Cells
- Minimal volume: contains exactly 1 lattice point per cell.
- Computationally efficient: fewest atoms means fastest DFT calculation.
- May hide symmetry: the parallelepiped shape often looks "tilted" and does not obviously display the crystal system's symmetry.
- Not unique: there are infinitely many valid primitive cells for any lattice. The Niggli cell is a standardized choice.
FCC Primitive Vectors and Cell
The FCC lattice has in the conventional cubic cell. Its standard primitive vectors are:
Each vector connects a corner of the conventional cube to the center of one of its faces. The resulting primitive cell is a rhombohedron (a parallelepiped with all edges equal and all face angles equal).
BCC Primitive Vectors and Cell
The BCC lattice has . Its primitive vectors are:
Each vector connects a corner of the cube to the body center. The primitive cell volume is .
Computational cost scaling
Primitive vs Conventional Cell Comparison
See how the same lattice can be described by different unit cells
Conventional Cells
A conventional cell is a larger unit cell chosen for convenience. It displays the full symmetry of the crystal system at the cost of containing multiple lattice points.
| Centering | Symbol | Z (lattice points) | V_conv / V_prim | Example |
|---|---|---|---|---|
| Primitive | P | 1 | 1 | Simple cubic |
| Body-centered | I (Innenzentriert) | 2 | 2 | BCC iron, W, Cr |
| Face-centered | F | 4 | 4 | FCC Cu, Al, CdSe(ZB) |
| Base-centered | C (or A, B) | 2 | 2 | Monoclinic base-centered |
Why Use Conventional Cells?
- Symmetry is visually obvious: a cube for cubic, a hexagonal prism for hexagonal. Primitive cells often hide this symmetry in a skewed parallelepiped.
- Database compatibility: the ICSD, Materials Project, and AFLOW all report conventional cells by default. Comparing your structure to databases requires matching conventions.
- Supercell construction: building a supercell is trivial with orthogonal conventional vectors. With primitive FCC vectors, the same supercell requires careful matrix manipulation.
- Defect modeling: to study a vacancy, substitution, or interface, you typically need a supercell. Starting from the conventional cell keeps the geometry intuitive.
The trade-off
The Wigner-Seitz Cell
The Wigner-Seitz (WS) cell is a special primitive cell with a remarkable property: it has the full point-group symmetry of the lattice. It is constructed by a purely geometric recipe:
- Pick a lattice point as the origin.
- Draw line segments from the origin to all neighboring lattice points.
- Construct the perpendicular bisector plane of each segment.
- The smallest enclosed region around the origin — the intersection of all the half-spaces — is the Wigner-Seitz cell.
Mathematically, the WS cell is the Voronoi cell of the origin: the set of all points in space that are closer to the origin than to any other lattice point:
Properties of the Wigner-Seitz Cell
- It is a primitive cell: contains exactly 1 lattice point, has volume .
- It has the full point-group symmetry of the lattice (unlike generic primitive cells that may look asymmetric).
- It is always convex.
- It is unique for a given lattice (unlike parallelepiped primitive cells).
WS Cells for Common Lattices
| Lattice | WS Cell Shape | Faces | Point Group |
|---|---|---|---|
| Simple Cubic | Cube | 6 squares | O_h (m3m) |
| BCC | Truncated octahedron | 8 hexagons + 6 squares | O_h (m3m) |
| FCC | Rhombic dodecahedron | 12 rhombuses | O_h (m3m) |
| Hexagonal | Hexagonal prism | 2 hexagons + 6 rectangles | D_6h (6/mmm) |
The Brillouin zone connection
Wigner-Seitz Cell Construction
Step through the geometric recipe for constructing the WS cell
The 2D construction above generalizes to 3D. Explore the actual Wigner-Seitz cell shapes for cubic lattices — the cube (SC), truncated octahedron (BCC), and rhombic dodecahedron (FCC) — and step through the 3D construction:
3D Wigner-Seitz Cell Viewer
Explore the 3D Wigner-Seitz cells for SC, BCC, and FCC lattices
Real-World Examples
Example 1: X-Ray Diffraction and the Unit Cell
When X-rays hit a crystal, the diffraction pattern encodes the unit cell geometry. The positions of diffraction peaks give the lattice parameters, while their intensities encode the atomic basis. A powder X-ray diffraction (PXRD) experiment on CdSe zinc blende yields peaks at specific angles. From the peak positions, we extract the d-spacings using Bragg's law , and from the d-spacings we determine the lattice parameter . For cubic systems, the relationship is .
Example 2: Choosing Cells for Defect Calculations
To model a single Mn dopant substituting for Cd in CdSe, you need a supercell large enough that the periodic images of the defect do not interact. A typical choice is a supercell of the conventional cell (216 atoms) or a supercell of the primitive cell (128 atoms). The primitive-cell supercell has fewer atoms and is cheaper, but the conventional-cell supercell has a cleaner geometry that makes it easier to analyze the defect's local environment.
Example 3: Strain Analysis from Lattice Parameters
When a thin film of GaN is grown on a sapphire substrate, the mismatch in lattice parameters causes strain. The in-plane parameter is compressed or stretched to match the substrate, while the out-of-plane parameter changes in response (Poisson effect). By measuring both and via X-ray diffraction and comparing to the bulk values, you can quantify the biaxial strain: .
Example 4: Nanoparticle Size from Peak Broadening
For nanocrystalline CdSe quantum dots, the X-ray diffraction peaks are broadened. The Scherrer equation relates peak width to crystallite size: , where is the full width at half maximum (FWHM) in radians and . This is a direct application of lattice periodicity: fewer repeat units means broader peaks.
Modern Computing and Materials Informatics
Why Crystallography Is the Language of Periodic Matter
Every atom-scale simulation of a solid must deal with periodicity. The unit cell is the computational box: atoms inside it are explicitly simulated, and periodic boundary conditions replicate it infinitely. This is not an approximation — a perfect crystal really is infinite repetition of a finite motif. The unit cell is the natural "quantum of crystal structure."
DFT and k-Point Sampling
In density functional theory (DFT), Bloch's theorem says that electronic wave functions in a periodic potential can be written as , where has the periodicity of the lattice. The -points live in the first Brillouin zone — the Wigner-Seitz cell of the reciprocal lattice. A smaller primitive cell means a larger Brillouin zone, but you solve the Schrödinger equation with fewer atoms per k-point. This is the fundamental trade-off:
| Cell Type | Atoms | BZ Size | k-Points Needed | Cost per k-Point | Total Cost |
|---|---|---|---|---|---|
| Primitive FCC | 2 | Large | More | Cheap (N³ ∝ 8) | Lower |
| Conventional FCC | 8 | Small (1/4) | Fewer (1/4) | Expensive (N³ ∝ 512) | Higher |
The primitive cell wins: although you need 4x more k-points, each is 64x cheaper, giving a net 16x advantage.
Machine Learning for Crystal Structure Prediction
Modern ML models for materials discovery must encode crystal structure as input features. The lattice parameters and atomic positions within the unit cell are the raw ingredients. Several approaches exist:
- Graph Neural Networks (GNNs): atoms are nodes, bonds are edges. The lattice vectors define periodic boundary conditions that determine which atoms are neighbors across cell boundaries.
- Symmetry-aware representations: models like CGCNN, MEGNet, and M3GNet use lattice vectors to compute interatomic distances correctly under periodic boundaries. Getting the lattice vectors wrong means wrong distances and wrong predictions.
- Generative models: diffusion models for crystal structure generation (like CDVAE) must learn to generate valid lattice vectors alongside atomic positions. The 6 lattice parameters are part of the model's output.
High-Throughput Screening
Databases like the Materials Project contain over 150,000 computed crystal structures. Each entry specifies the lattice vectors and atomic positions — exactly the POSCAR format we discuss below. Automated workflows use pymatgen to convert between primitive and conventional cells, compute volumes, and identify space groups. Understanding lattice vectors and unit cells is essential for navigating and using these databases.
Molecular Dynamics and Structure Factors
In molecular dynamics (MD) simulations, the simulation box is a unit cell with periodic boundary conditions. The structure factor — the Fourier transform of the pair correlation function — directly reflects the lattice geometry. Sharp Bragg peaks appear at reciprocal lattice points , where are the reciprocal lattice vectors (Chapter 3). Computing from an MD trajectory is a standard way to verify that the simulated crystal has the expected structure.
VASP Connection: The POSCAR File
The POSCAR file is where you translate crystallographic knowledge into VASP input. It encodes the lattice vectors, atomic species, and positions — everything we have discussed in this section. Let us walk through a complete example using the primitive FCC cell of CdSe zinc blende.
Verifying the Cell Volume
Always verify the cell volume from your POSCAR. The primitive FCC cell with should have:
VASP prints the cell volume in the OUTCAR file (search for "volume of cell"). If your OUTCAR volume does not match this expectation, your lattice vectors are wrong.
Conventional vs primitive POSCAR
Building Structures Programmatically
For production work, writing POSCAR files by hand is error-prone. Use pymatgen to build, verify, and convert structures programmatically:
Common POSCAR Mistakes
| Mistake | Symptom | Fix |
|---|---|---|
| Wrong scaling factor | Nonsensical volume, unphysical bond lengths | Check that scale × vectors gives the correct a |
| Species order mismatch with POTCAR | Calculation runs but gives wrong energies, magnetization | Verify that line 6 matches the POTCAR concatenation order |
| Cartesian vs Direct mismatch | Atoms placed at wrong positions; may crash or give huge forces | If positions are fractional, use Direct. If in Å, use Cartesian |
| Wrong number of atoms | Missing atoms or extra atoms | Count carefully; sum on line 7 must match number of position lines |
| Using conventional cell when primitive suffices | Calculation is Z³ times more expensive than necessary | Convert to primitive cell with pymatgen or AFLOW |
Summary
This section made the abstract lattice concrete through vectors, cells, and volumes:
- Lattice vectors generate the entire lattice through integer linear combinations . They are equivalently described by six lattice parameters .
- The unit cell is the parallelepiped spanned by the lattice vectors. Its volume is , computable as a determinant.
- A primitive cell contains exactly 1 lattice point and has the minimum volume. It is the most computationally efficient choice for DFT.
- A conventional cell is larger (Z = 2 for I, 4 for F) but displays full symmetry and matches database conventions.
- The Wigner-Seitz cell is the unique primitive cell with full point-group symmetry. Its reciprocal-space counterpart is the first Brillouin zone — the domain where electronic band structures and phonon dispersions live.
- In VASP, the POSCAR file encodes the lattice vectors and atomic positions. Choosing primitive vs conventional cells dramatically affects computational cost ( scaling).
- In modern computing, lattice vectors and unit cells appear everywhere: DFT k-point sampling, ML crystal representations, MD simulation boxes, and high-throughput materials databases.
In the next section, we will enumerate all possible lattice types: the 7 crystal systems and the 14 Bravais lattices, establishing the complete classification of translational symmetry in three dimensions.