Strontium titanate

Strontium titanate (SrTiO₃) is the archetypal cubic perovskite (a = 3.913 Å) with three distinct sublattices: Sr at the cube corners (12-coordinated by O), Ti at the body centre (6-coordinated by O, forming a TiO₆ octahedron), and each O bridging two Ti along a linear backbone while being surrounded by four Sr. Every panel below renders the translucent orange TiO₆ octahedra, the motif whose preservation across the disorder ladder drives everything else.

Overview

All six regimes at an orthogonal 40 × 40 × 40 Å supercell, rotating in sync. Drag any panel to orbit manually.

g(r) per regime overlaid on a single axis. The dropdown below the plot switches between the six species pairs (Sr-Sr, Sr-Ti, Sr-O, Ti-Ti, Ti-O, O-O):

Reference crystal

from ase.io import read
atoms_ref = read('structures/SrTiO3.cif')   # 1 Sr + 1 Ti + 3 O

Supercell

SrTiO₃ has two real chemical bonds: short covalent Ti–O (1.96 Å, the TiO₆ octahedron) and longer ionic Sr–O (2.77 Å, the SrO₁₂ cuboctahedron). The Sr–Sr / Ti–Ti / Sr–Ti peaks at a = 3.91 Å are pure lattice separations through the bonded bridge atoms. Since 2026-05 the auto-filter in CoordinationShellTarget.from_atoms zeroes those lattice-artefact pairs automatically (any pair whose pair_peak is not the smallest in either its row or column), so the explicit with_bonded_species_pairs(...) chain below is redundant but harmless. The angle whitelist is still required: the SrO₁₂ cuboctahedron is multi-modal (60° / 90° / 120° / 180°), so no single-target Sr-centred angle spring would converge.

import tricor as tc

shell_target = (
    tc.CoordinationShellTarget.from_atoms(atoms_ref, phi_num_bins=90)
    .with_bonded_species_pairs([('Ti', 'O'), ('Sr', 'O')])
    .with_angle_triplets([('Ti', 'O', 'O'), ('O', 'Ti', 'Ti')])
)

cell = tc.Supercell.from_atoms(
    atoms_ref,
    cell_dim_angstroms=(40, 40, 40),
    r_max=10, r_step=0.1, phi_num_bins=90,
    rng_seed=42,
)
cell.generate(shell_target, grain_size=None)  # liquid; see regime pages

The second line, with_angle_triplets(...), silences every Sr-centered angle spring (and every triplet involving Sr as a neighbour). Reason: SrO₁₂ is geometrically identical to the Cu-FCC cuboctahedron, so the O-Sr-O distribution is quadri-modal at 60°/90°/120°/180° and picking any one mode would strain the others. The Cu FCC regime ladder handles this the same way (angle_weight = 0, all angles dropped); SrTiO₃ does it per-triplet so the TiO₆ octahedron’s single-mode 90° and the Ti-O-Ti 180° backbone angles can still be enforced.

The Sr atoms are held in place by 12 Sr-O bond-distance springs each, not by an angle spring. Combined with the repulsion wall this is sufficient to preserve the SrO₁₂ geometry under relaxation.

Disorder regimes

Preset summary

Regime

num_steps

grain_size (Å)

bond_weight

angle_weight

repulsion_weight

displacement_sigma

liquid

200

-

0.10

0.0

1.0

0.020

amorphous

300

-

0.50

0.4

1.1

0.008

short-range order

350

14.0

1.0

0.7

1.2

0.005

medium-range order

400

22.0

1.0

0.7

1.2

0.002

long-range order

450

28.0

1.0

0.7

1.2

0.0015

nanocrystalline

500

35.0

1.0

0.7

1.2

0.001

SRO through NC share the same bond + angle weights (1.0 / 0.7, the FIRE sweet spot for SrTiO₃ at this density). The order ladder is built by progressively growing the grain (14 → 22 → 28 → 35 Å) and the relaxation budget (350 → 400 → 450 → 500 steps) while tightening displacement_sigma (0.005 → 0.001). Pushing weights past 1.0 / 0.7 saturates and then reduces the count of detected TiO₆ octahedra by 20–30 % — the angle springs over-constrain and conflict with the remaining cuboctahedral O-Sr-O modes.

hard_core_scale=1.10 (shared) enforces a ~1.65 Å minimum Ti-O separation (below the 1.96 Å Ti-O bond but well above 1.5 Å) and a ~3.7 Å minimum Sr-Sr / Ti-Ti separation that lets the cuboctahedral SrO₁₂ network re-form during FIRE. Dropping the wall to 1.0 cuts the octahedra count 5–10 ×. nonbond_push_scale=0.75 (shared) keeps the second-shell gap clean.

The Ti-centred 90° (O-Ti-O) and 180° (Ti-O-Ti) angle springs hold the TiO₆ octahedra together; the Sr-centred cuboctahedron is held by its 12 Sr-O bond-distance springs alone (the explicit with_angle_triplets([('Ti','O','O'), ('O','Ti','Ti')]) whitelist silences every Sr-centred angle, since the O-Sr-O distribution is quadri-modal at 60° / 90° / 120° / 180°).

The benchmark ladder (rng seed 42, 40 Å cell, 0.18 / 18° octahedra detector, 1026 Ti atoms) walks ≈ 1 (amorphous) → 107 (SRO) → 266 (MRO) → 360 (LRO) → 490 (NC) detected TiO₆ octahedra, a monotonic 0 % → 48 % progression.