# 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
```python
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.
```python
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
```{toctree}
:maxdepth: 1
liquid
amorphous
short_range_order
medium_range_order
long_range_order
nanocrystalline
```
## 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.