Code

AtomisticSkills mat-elasticity

An AtomisticSkills skill: elastic constants and moduli from a strained cell.

openmaterials.ai / codes / AtomisticSkills mat-elasticity

mat-elasticity: the elastic tensor of a crystal from strained cells

An AtomisticSkills skill that strains a cell, reads the stress from a machine-learned potential and fits the 21 elastic constants by least squares through matcalc.

What it is and how it works

Stress response to small strains

The skill applies normal strains of 0.5% and 1% and shear strains of 3% and 6%, each with both signs, to the relaxed cell. The potential gives each deformed cell's stress and ElasticityCalc fits the Voigt tensor C_ij.

Potentials with stress labels

The skill loads MACE, MatGL or FAIRChem wrappers. It asks for models trained with stress labels on OMAT or MatPES, such as MACE-OMAT-0-small, since the fit uses stresses.

Relaxed-ion or clamped-ion

By default ions relax in each deformed cell at fixed shape, giving the relaxed-ion constants experiment measures. --no-relax_deformed gives stiffer clamped-ion ones.

Moduli and derived properties

Bulk and shear moduli as Voigt, Reuss and Hill averages, Young's modulus and Poisson ratio from the VRH pair, the anisotropy index, Debye temperature and Born stability.

Inputs and outputs

Input is a CIF or POSCAR and a model name. Output is elasticity_results.json with the 6x6 tensor in GPa, the moduli, the fit residual and directional Young's moduli.

Moduli under load

--pressure relaxes cell and ions against a hydrostatic load in GPa, then reports stress-strain coefficients about that loaded reference, not the zero-pressure cell.

What people do with it

fcc Cu with MACE-OMAT-0-small

The worked example expects a bulk modulus of 130 to 145 GPa, a shear modulus of 45 to 55 GPa and a Poisson ratio of 0.33 to 0.36, against measured 137 GPa, 48 GPa and 0.34. Cu example README

How it is used

  1. Relax the cell

    calculate_elasticity.py reads a CIF or POSCAR and relaxes it to a stress-free reference.

  2. Apply strains

    Normal strains of 0.5% and 1% and shear strains of 3% and 6%, both signs, by default.

  3. Compute stresses

    The potential evaluates each deformed cell, ions re-minimised at fixed cell by default.

  4. Fit and report

    Least squares gives C_ij. elasticity_results.json holds tensor, VRH moduli and residual.

What AtomisticSkills mat-elasticity is, how it works and what it is used for, from the papers listed as sources. Every number links to its paper.Poster pageDownload the poster (PNG, 1920 x 1080)

What AtomisticSkills mat-elasticity is

mat-elasticity is one of the AtomisticSkills, packaged calculations an agent can call. It wraps matcalc's ElasticityCalc: the cell is strained, the stresses are computed with the chosen potential (the skill loads MACE, MatGL or FAIRChem), and the elastic tensor follows. From it the skill reports the bulk, shear and Young's moduli in the Voigt-Reuss-Hill average and the Poisson ratio. On the map it serves those five quantities.

In more detail

Stress-strain fit about a relaxed reference

The skill relaxes the input cell first, since elastic constants are defined about zero stress. matcalc's ElasticityCalc then builds deformed cells with pymatgen's DeformedStructureSet, at normal strains of plus or minus 0.5% and 1% and shear strains of plus or minus 3% and 6% by default. The potential returns a stress per cell and a least-squares regression gives the tensor. With symmetry off, all 21 independent components are fitted. The skill re-minimises the ions in each deformed cell at fixed shape, the relaxed-ion constants the Materials Project and atomate2 compute. matcalc alone defaults to clamped-ion, stiffer by 1.4% on the bulk and 7.5% on the shear modulus of Pnma CaMgSi.

Derived quantities and where hand calculations go wrong

Beyond the VRH averages the script reports the universal anisotropy index A^U = 5 G_V/G_R + B_V/B_R - 6, which needs the Voigt and Reuss bounds kept separate. Directional Young's moduli come from the compliance tensor along [100], [010] and [001] and over all directions, since for CaMgSi the stiffest direction lies about 40 degrees off a in the a-c plane and is 13% stiffer than the stiffest axis. Sound velocities and the Debye temperature follow the Anderson relation with a harmonic-cube mean over the three acoustic branches. Christoffel eigenvalues give the branch velocities along a chosen direction, and the eigenvalues of C_ij give Born stability.

Interfaces and environment

The skill runs through the project's venv/run launcher, in the mlip environment for MACE and MatGL models and in fairchem for FairChem or UMA models. matcalc returns bulk and shear moduli in eV/A^3 and the script converts to GPa with 160.2176634 GPa per eV/A^3. The script computes Young's modulus E = 9BG/(3B+G) and Poisson ratio nu = (3B-2G)/(6B+2G) from the VRH moduli. fmax defaults to 0.1 eV/A. matcalc accepts one threshold for both relaxation stages, so on the relaxed-ion path the script hands it the smaller of --fmax and --deformed_fmax, 1e-4 eV/A by default. Residual forces in a deformed cell would contaminate the fitted stress.

What it computes on the map

5 quantities, drawn by tier with the data flow between them. Dashed boxes are intermediate quantities. Select one for its formula and the other codes that compute it.

Open the full mapShare this submap
Embed this submap
<iframe src="https://openmaterials.ai/m/c56731602651/0000000000000000ec?embed=1" title="AtomisticSkills mat-elasticity on the OpenMaterials map" width="100%" height="480" loading="lazy" style="border:1px solid #EBEBEB;border-radius:6px"></iframe>

Each quantity with the interface the representation records.

  • BulkModulusmatcalc ElasticityCalc bulk_modulus_vrh (B_VRH), GPaGPa
  • ElasticConstantsmatcalc ElasticityCalc elastic_tensor (Voigt 6x6), GPaGPa
  • PoissonRationu = (3B-2G)/(6B+2G) over the VRH modulidimensionless
  • ShearModulusmatcalc ElasticityCalc shear_modulus_vrh (G_VRH), GPaGPa
  • YoungsModulusE = 9BG/(3B+G) over the VRH moduli, GPaGPa

References

No curated reference list yet. The citations recorded on the map representation are listed under How to cite.

How to cite

B. Deng, B. Li, M. Cox, et al., Harnessing AtomisticSkills for Agentic Atomistic Research (2026), arXiv:2605.24002 (mat-elasticity skill)

doi.org/10.48550/arXiv.2605.24002