We shipped Ouro DFT (ABACUS), a general-purpose DFT property API with structure-keyed SCF caching. Electronic and magnetic endpoints share the same ground-state charge density, so SCF runs once and moments, MAE, DOS, and related properties reuse it.
This is a first sanity check for permanent-magnet screening: run the API on known magnets with ≤6 atoms/cell, compare predicted
Engine | ABACUS LCAO (PBE, DZP, Ry, -spacing ) |
Moments | Magnetic moments (collinear SCF + Mulliken) |
MAE | Magnetic anisotropy energy (TB2J, warm-started from collinear charge) |
Exchange / | TB2J Jij from collinear SCF + mean-field |
Cells | All ≤ 6 atoms (primitive Fe is 1) |
Structures on this team:
from the moments route vs typical experimental room-temperature values:
Material | Atoms | Exp. (T) | DFT (T) | Δ |
|---|---|---|---|---|
Fe bcc | 1 | 2.15 | 2.32 | +8% |
Co hcp | 2 | 1.82 | 1.63 | −11% |
FeCo B2 | 2 | ~2.4 | 2.22 | −7% |
FePt L1₀ | 2 | ~1.4 | 1.40 | ~0% |
MnBi | 4 | 0.78-0.90 | 0.91 | within range |
Ranking matches experiment: FeCo and Fe highest, MnBi lowest, FePt in between. Absolute is already usable for screening at these defaults.
TB2J MAE (hard − easy over {001,100,010}) vs literature uniaxial (cubic for Fe):
Material | Exp. (MJ/m³) | DFT MAE (MJ/m³) | Easy axis (DFT) | Exp. easy |
|---|---|---|---|---|
Fe bcc | ~0.05 () | 0.0002 | ~isotropic | cubic soft |
FeCo B2 | ~0 | 0.003 | ~isotropic | cubic soft |
Co hcp | ~0.45 | 0.44 | ⟨100⟩ | ⟨001⟩ |
MnBi | 1.2-1.8 (RT) | 0.71 | ⟨100⟩ | ⟨001⟩ (RT) |
FePt L1₀ | 6-10 | 18.0 | ⟨001⟩ ✓ | ⟨001⟩ |
What holds:
Soft vs hard separation works. Fe / FeCo sit near zero; Co / MnBi / FePt are clearly anisotropic.
Co magnitude matches experiment (0.44 vs 0.45 MJ/m³), but the predicted easy axis is basal rather than .
FePt is correctly uniaxial along , with MAE about 2× experimental. Fine for ranking, not for absolute .
MnBi is in the right order of magnitude but prefers the basal plane here.
Hardness from the MAE route ranks the same way: Fe/FeCo soft (), Co borderline, MnBi and FePt hard.
TB2J exchange on the same collinear SCF, with mean-field . This is an upper bound and usually overestimates experiment; the ranking is what matters for screening.
Material | Exp. (K) | MF (K) | (meV) | MF / exp |
|---|---|---|---|---|
Fe bcc | 1043 | 2151 | 278 | 2.1× |
Co hcp | 1388 | 1558 | 201 | 1.1× |
FeCo B2 | ~1250-1400 | 2253 | 291 | ~1.7× |
FePt L1₀ | ~750 | 868 | 112 | 1.2× |
MnBi | 630 | 892 | 115 | 1.4× |
Ranking matches the known magnets: FeCo and Fe highest, then Co, then MnBi / FePt. Absolute MF is high (especially Fe and FeCo), as expected for Heisenberg mean-field. Co and FePt are surprisingly close to experiment at these defaults.
This does not look like a simple reporting bug. Easy axis is , hard axis is , and MAE is hard − easy. FePt landing on ⟨001⟩ is a useful control: the direction labels and mapping are not systematically flipped.
The two mismatches have different explanations.
MnBi is expected at 0 K. Experiment is easy-plane below ~90 K and only becomes -axis after the spin reorientation (~90-140 K), driven largely by thermal expansion of . Fixed-cell DFT (and low- experiment) routinely prefer the basal plane. Comparing a 0 K MAE sign to room-temperature is the wrong comparison for MnBi, not evidence that the calculator inverted axes.
Co is the more interesting case. PBE/GGA usually gets -easy for hcp Co; LDA often flips the sign. We got the right magnitude with the wrong sign. That usually means the energy difference is tiny and sitting near a sign change (~60 µeV total here), not that min/max is backwards. Plausible contributors at these defaults:
coarse -mesh relative to how small the MAE is
DZP + modest cutoff vs denser PAW setups in the literature
fixed experimental (Co MAE sign is lattice-sensitive)
TB2J magnetic force theorem vs full SOC total-energy differences
So for screening: trust soft vs hard and FePt-like uniaxial ranking; treat absolute MJ/m³ and easy-axis sign as directional, especially for Mn-pnictides and for Co until we converge , cutoff, and (if needed) a total-energy SOC cross-check.
Moments:
Compute total and site-projected magnetic moments (Mulliken), including site charges and saturation magnetization when available. Useful for identifying magnetic sites, comparing ferro-/antiferromagnetic candidates, and estimating Ms.
Compute total and site-projected magnetic moments (Mulliken), including site charges and saturation magnetization when available. Useful for identifying magnetic sites, comparing ferro-/antiferromagnetic candidates, and estimating Ms.
Compute total and site-projected magnetic moments (Mulliken), including site charges and saturation magnetization when available. Useful for identifying magnetic sites, comparing ferro-/antiferromagnetic candidates, and estimating Ms.
Compute total and site-projected magnetic moments (Mulliken), including site charges and saturation magnetization when available. Useful for identifying magnetic sites, comparing ferro-/antiferromagnetic candidates, and estimating Ms.
Compute total and site-projected magnetic moments (Mulliken), including site charges and saturation magnetization when available. Useful for identifying magnetic sites, comparing ferro-/antiferromagnetic candidates, and estimating Ms.
MAE:
Estimate magnetic anisotropy energy (MAE) across magnetization directions. Useful for permanent-magnet screening and ranking how strongly a material prefers a particular easy axis.
Estimate magnetic anisotropy energy (MAE) across magnetization directions. Useful for permanent-magnet screening and ranking how strongly a material prefers a particular easy axis.
Estimate magnetic anisotropy energy (MAE) across magnetization directions. Useful for permanent-magnet screening and ranking how strongly a material prefers a particular easy axis.
Estimate magnetic anisotropy energy (MAE) across magnetization directions. Useful for permanent-magnet screening and ranking how strongly a material prefers a particular easy axis.
Estimate magnetic anisotropy energy (MAE) across magnetization directions. Useful for permanent-magnet screening and ranking how strongly a material prefers a particular easy axis.
Moments for : already good enough to rank candidates.
MAE for soft vs hard, and for confirming uniaxial -axis cases like FePt. Treat absolute MJ/m³ and easy-axis sign carefully (MnBi: 0 K vs RT; Co: converge before trusting the sign).
Exchange / mean-field for ranking ordering temperatures. Use the rank, not the absolute kelvin (MF overestimates, especially Fe / FeCo).
SCF cache works: MAE warm-started from moments charge; exchange reused the same collinear SCF where available.
Rare earths: SmCo₅ needs Sm pseudopotentials/orbitals in the Dojo set before RE magnets join this loop.
To try it: run a small CIF on Magnetic moments, then MAE on the same structure. The second call should reuse SCF.
On this page
ABACUS DFT (PBE/DZP) benchmark of five small-cell magnets: saturation magnetization and TB2J MAE against literature values.
Goal Build a comprehensive dataset of every viable rare-earth-free permanent magnet candidate on the Ouro platform, with full property coverage: saturation magnetization (Ms), thermodynamic stability (hull distance), Curie temperature (Tc), and magnetocrystalline anisotropy energy (MAE) where available. Why An action item from the Oliynyk Lab call (July 14, 2026) was compiling a large list of candidates to send for synthesis. The first attempt (dataset:019f67f7-ff4f-7202-81db-3aa36ab7fdda) was incomplete because the Python sandbox wasn't executing ouro-py properly. This quest does it right: programmatically fetch every CIF on the platform, inspect route actions on each file, and compile a properly structured dataset. Method Use ouro-py in the Python sandbox to: Fetch all file assets across all teams (filter for CIF files). Inspect each file's actions to determine which routes were run (Orb v3 relaxation, ALIGNN property prediction, MP hull distance, DFT Ms, DFT MAE, Curie temperature). Filter for RE-free magnetic compounds — containing Mn, Fe, Co, Ni, Cr with no rare-earth elements. Extract property data from route action results: Ms, hull distance (stability), Tc, MAE. Flag which properties are predicted vs experimental vs missing. Publish as a dataset with clear columns and provenance. Context Previous attempt: dataset — 46 candidates, but sandbox didn't run ouro-py so property extraction was incomplete. Curated 24-candidate set for Oliynyk: dataset, summary post. @mmoderwell is investigating why the sandbox wasn't working. If SDK limitations block progress, report back so the SDK can be upgraded.