Glossary

Disorder regimes

Liquid : A structure with only nearest-neighbour correlations enforced. No grain construction; atoms are placed randomly and relaxed with weak angle springs.

Amorphous : Short-range order limited to the first nearest-neighbour shell. Constructed from very small grains (~6 Å) with heavy broadening.

Short-range order (SRO) : Correlations extend out to ~3 visible maxima in the pair correlation function. Constructed from small grains (~10 Å).

Medium-range order (MRO) : Correlations extend to 4-5 visible maxima. Constructed from grains of ~13 Å.

Long-range order (LRO) : Larger grains (~18 Å) extend correlations further (8-10 Å range).

Nanocrystalline : Grains filling the box with sharp crystalline peaks. Grain size determines the crystallite domain size (e.g. 10 Å, 20 Å nanocrystalline).

Three-body distribution

g3 : Rooted three-body distribution. A 4D histogram g3[type, r01, r02, phi] counting triplets of atoms (centre and two neighbours) by their two radial distances and bond angle.

Triplet type

Species combination of a rooted triplet, written as centre | neigh1 neigh2. For SiC:

Si | Si Si, Si | Si C, Si | C C, C | C C, C | C Si, C | Si Si.

g2 : Pair distribution. A 2D histogram g2[species_pair, r] counting all atomic pairs by their interatomic distance.

Reduced g3 : Density-normalised g3, approaching 1.0 in the random limit. Computed as g3 / (A * r01^2 * r02^2 * sin(phi)).

Coordination shell target

pair_peak : Mean nearest-neighbour distance for each species pair, extracted from the reference crystal.

pair_inner, pair_outer : Inner and outer radial boundaries of the first coordination shell.

pair_hard_min : Absolute minimum distance (hard-core overlap prevention).

coordination_target (K)

Expected number of neighbours of a given species around each centre species. For Si diamond:

K_Si-Si = 4. For SiC zincblende: K_Si-C = K_C-Si = 4, K_Si-Si = K_C-C = 0.

angle_mode_deg : Most probable bond angle for each triplet type in the reference crystal.

angle_enabled_mask : Per-triplet bool array that controls whether shell_relax installs an angle spring for that triplet type. Bond-distance springs are always installed (independent of this mask). Used to silence multi-modal cases (cuboctahedral SrO₁₂ in SrTiO₃, whose O-Sr-O distribution is spread over 60°/90°/120°/180° so picking one mode distorts the others). Toggled via with_angle_triplets() / without_angle_triplets().

Grain construction

grain_size : Diameter of crystalline grains in Å. Smaller grains give fewer visible shells in g3.

crystalline_fraction : Volume fraction filled by crystalline grains. The rest is amorphous fill. 1.0 = all grains, 0.0 = all random.

Voronoi cell : Region of space closer to one grain seed than any other. The supercell box is partitioned into one Voronoi cell per seed.

Grain boundary : Region between adjacent grains where atoms belong to different rotations of the reference crystal. Overlaps occur here and are removed.

Shell relaxation

bond_weight : Spring strength for bond distances in the relaxation.

angle_weight : Spring strength for bond angles.

repulsion_weight : Strength of the short-range repulsive force.

hard_core_scale : Multiplier for the minimum bond distance wall. Values below 1.0 allow shorter bonds (softer wall).

nonbond_push_scale : Multiplier for the non-bonded clearance distance. Values below 1.0 give broader 2nd shells.

displacement_sigma : Gaussian displacement (Å) applied to grain atoms before relaxation.

k_restraint : Spring constant of the optional position-restraint term \(\tfrac{1}{2} k_\text{restraint} \sum_i \lVert \mathbf r_i - \mathbf r_i^{(0)} \rVert^2\) that tethers atoms to their starting positions during shell_relax. 0 disables the term and reproduces unrestrained relaxation; large values pin the structure.

Orientation refinement

amplitudes_deg : Schedule of rotation amplitudes (degrees) the SO(3) coordinate search walks through. Default (30, 15, 5, 2): the largest step lets a misaligned grain escape its starting basin, the smallest step locks in the chosen orientation.

trials_per_amplitude_per_grain : Number of random rotations sampled per (amplitude, grain). Default 50. The best-scoring trial is accepted if it beats the current orientation by more than score_cutoff_factor.

cost_function : "pair_distance" (default, topology-free, sub-millisecond per trial) or "bond_angle" (rebuilds bond + triplet topology per trial; usually not worth the slowdown).

score_cutoff_factor : Acceptance threshold for the per-trial score relative to the current baseline. Higher values accept more aggressively.

Composite shell targets

Composite shell target : A single CoordinationShellTarget produced by CoordinationShellTarget.from_targets({key: target, ...}) that stacks two or more per-chemistry targets into one object with a widened species axis. Used for phase blends (sp²/sp³ carbon, potential SiO₂/Si₃N₄ mixes) where atoms share an atomic number but want different local coordination.

Virtual species : A species slot in a composite shell target. Each virtual species carries its own row of coordination_target, pair_peak, angle_mode_deg, etc. Multiple virtual species can share an atomic number (e.g. sp²_C and sp³_C both have Z=6).

grain_sources : The generate(..., grain_sources=[{atoms, species_offset,   weight}, ...]) kwarg that assigns each Voronoi grain a reference crystal by weight. species_offset is the virtual-species index each atom from that grain receives; the relaxer consults it via Supercell._atom_shell_species_index.

atom_species_index : Optional generate(atom_species_index=...) override; a (num_atoms,) array of virtual-species indices. Used when the caller wants to assign virtual species directly rather than letting grain_sources do it.