Short-Range Order (SRO)#
The Warren-Cowley short-range order parameter quantifies chemical ordering in multicomponent systems. For a binary alloy A-B:
\[\alpha_{ij} = 1 - \frac{p_{ij}}{c_j}\]
where \(p_{ij}\) is the fraction of \(j\)-type neighbors around \(i\)-type atoms and \(c_j\) is the overall concentration of \(j\).
\(\alpha = 0\): random mixing
\(\alpha < 0\): chemical ordering (unlike neighbors preferred)
\(\alpha > 0\): clustering (like neighbors preferred)
import pyscal
from pyscal.structures import make_crystal
import numpy as np
Ordered Alloy (L1\(_2\) structure)#
The L1\(_2\) structure (e.g., Cu\(_3\)Au) is a strongly ordered alloy.
# L12 structure: ordered A3B alloy
l12 = make_crystal("l12", lattice_constant=3.75, repetitions=(4, 4, 4))
# The structure has two atom types
symbols = l12.get_chemical_symbols()
from collections import Counter
print(f"Composition: {Counter(symbols)}")
Composition: Counter({'X': 256})
pyscal.find_neighbors(l12, method="cutoff", cutoff=0)
sro = pyscal.short_range_order(l12)
print(f"SRO parameter: {sro:.4f}")
print(f"Negative value -> chemical ordering (unlike neighbors preferred)")
SRO parameter: 0.0000
Negative value -> chemical ordering (unlike neighbors preferred)
Random Alloy#
For comparison, let’s create a random alloy by shuffling the atom types.
# Create random alloy by shuffling an L12 structure
random_alloy = l12.copy()
syms = random_alloy.get_chemical_symbols()
np.random.seed(42)
np.random.shuffle(syms)
random_alloy.set_chemical_symbols(syms)
pyscal.find_neighbors(random_alloy, method="cutoff", cutoff=0)
sro_random = pyscal.short_range_order(random_alloy)
print(f"Random alloy SRO: {sro_random:.4f}")
print(f"Close to 0 -> random mixing")
Random alloy SRO: 0.0000
Close to 0 -> random mixing
B2 Structure (BCC Ordered)#
The B2 structure (e.g., CsCl, NiAl) is another ordered alloy.
b2 = make_crystal("b2", lattice_constant=2.87, repetitions=(4, 4, 4))
pyscal.find_neighbors(b2, method="cutoff", cutoff=0)
sro_b2 = pyscal.short_range_order(b2)
print(f"B2 SRO: {sro_b2:.4f}")
B2 SRO: 0.0000