ワンクリックで
general-property-units
Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Quantify prediction uncertainty of MACE MLIPs using committee (ensemble) models; flag high-uncertainty structures for DFT verification.
Compute phonon-limited carrier mobility and mode-resolved electron-phonon coupling in 2D materials from first principles with Quantum ESPRESSO and EPW.
GPU-accelerated batched inference for MACE, MatGL (TensorNet/M3GNet/CHGNet), and FairChem MLIPs using NValchemi, enabling parallel static, relax, and MD workflows across multiple structures simultaneously.
Extract structured synthesis procedures from a folder of PDFs using the LeMat-Synth GeneralSynthesisOntology schema, producing one JSON file per paper with per-material synthesis records.
Predict LC-MS/MS (MS2, tandem mass spectra) from SMILES via ICEBERG, a two-stage deep neural network. Outputs predicted m/z vs intensity spectrum, fragment ion SMILES, and a spectrum plot.
Match an experimental spectrum (1H NMR, 13C NMR, IR) against predicted or database reference spectra for candidate ranking and structure confirmation. Supports local catalog lookup, public database fallback, and pluggable similarity metrics.
| name | general-property-units |
| description | Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors. |
| category | ["general","machine-learning"] |
Provide a single authoritative reference for units of energy, forces, and stress across all MLIPs, DFT codes, and simulation tools used in this project, including the conversions applied internally.
All internal representations follow the ASE (Atomic Simulation Environment) convention:
| Quantity | Standard Unit | Notes |
|---|---|---|
| Energy | eV | Total energy of the system |
| Energy per atom | eV/atom | Used for MAE reporting and training labels |
| Forces | eV/Å | Negative gradient of energy w.r.t. position |
| Stress | eV/ų | Voigt notation, 6-component (xx, yy, zz, yz, xz, xy) |
All MLIP wrappers return predictions in ASE standard units through their ASE calculator interface:
| Model | Energy | Forces | Stress | Notes |
|---|---|---|---|---|
| MACE | eV | eV/Š| eV/ų | Native ASE units |
| CHGNet | eV | eV/Š| eV/ų | Native ASE units |
| UMA (FairChem) | eV | eV/Š| eV/ų | Native ASE units |
| M3GNet / TensorNet (MatGL) | eV | eV/Š| eV/ų | Native ASE units |
Training labels in training_data.json are stored in ASE standard units (eV, eV/Å, eV/ų). Conversions to trainer-specific units are handled automatically inside each wrapper:
| Trainer | Energy Input | Force Input | Stress Input | Internal Conversion |
|---|---|---|---|---|
| MACE | eV | eV/Å | eV/ų | None — trains in eV/ų |
| FairChem (UMA) | eV | eV/Å | eV/ų | None — trains in eV/ų |
| MatGL (CHGNet/M3GNet) | eV | eV/Å | GPa (converted) | eV/ų → GPa in _prepare_training_data |
[!IMPORTANT] MatGL is the only trainer that requires stress conversion. The conversion from eV/ų → GPa is performed automatically inside
MATGLWrapper._prepare_training_data(). Users should always provide stress labels in eV/ų.
Each MLIP trainer natively reports MAE in eV. All wrappers apply a ×1000 conversion to save MAE values in meV to training_history.json and plot axes in training_history.png, for human readability and consistent cross-model comparison:
| Trainer | Native Energy MAE | Native Force MAE | Native Stress MAE | Saved Unit |
|---|---|---|---|---|
| MACE | eV/atom | eV/Å | eV/ų | meV (×1000) |
| FairChem (UMA) | eV/atom | eV/Å | eV/ų | meV (×1000) |
| MatGL (CHGNet/M3GNet) | eV/atom | eV/Å | GPa → eV/ų | meV (×1000) |
The training_history.json keys and their units:
| Key | Unit |
|---|---|
energy_mae_train / energy_mae_val | meV/atom |
force_mae_train / force_mae_val | meV/Å |
stress_mae_train / stress_mae_val | meV/ų |
loss_train / loss_val | Dimensionless (weighted combination) |
[!NOTE] For MatGL stress: the trainer computes MAE in GPa internally. The wrapper converts back to eV/ų first, then multiplies by 1000 to get meV/ų, matching the other wrappers.
| Quantity | VASP Internal | VASP OUTCAR | Conversion to ASE Standard |
|---|---|---|---|
| Energy | eV | eV | None needed |
| Forces | eV/Å | eV/Å | None needed |
| Stress | kB (kilo-Bar) | kB (and GPa) | kB × 0.1 = GPa, then GPa × 0.0062415 = eV/ų |
[!NOTE] VASP stores stress internally in kB (kilo-Bar). The
vasprun.xmlparser in pymatgen returns stress in kB. The Atomate2 MCP tool applies the conversionkB → eV/ųautomatically whenconvert_units=True(default).
VASP reports stress with the opposite sign to the physics and ASE convention:
The sign flip is handled during VASP output parsing (e.g. in the atomate2 MCP tool, VASP stress is multiplied by -1 in addition to the unit conversion).
| From | To | Factor | ASE Code |
|---|---|---|---|
| GPa | eV/ų | 0.00624150913 | ase.units.GPa |
| eV/ų | GPa | 160.21766208 | 1.0 / ase.units.GPa |
| kB | GPa | 0.1 | — |
| kB | eV/ų | 0.000624150913 | 0.1 * ase.units.GPa |
| eV | kJ/mol | 96.4853 | ase.units.kJ / ase.units.mol |
| eV | kcal/mol | 23.0605 | ase.units.kcal / ase.units.mol |
| Å | Bohr | 1.8897259886 | 1.0 / ase.units.Bohr |
# Env: base-agent
from ase import units
# Stress conversions
stress_GPa = stress_eV_per_A3 / units.GPa # eV/ų → GPa
stress_eV_per_A3 = stress_GPa * units.GPa # GPa → eV/ų
stress_eV_per_A3 = stress_kB * 0.1 * units.GPa # kB → eV/ų
# Energy conversions
energy_kJ_per_mol = energy_eV * units.kJ / units.mol
energy_kcal_per_mol = energy_eV * units.kcal / units.mol
Author: Bowen Deng Contact: GitHub @learningmatter-mit