Date: 2026-05-10. Status: [DRAFT].
Schema:../../schemas/0.2.json.
v0.2 is an additive extension of v0.1: all v0.1 calculation kinds remain valid after changingspec: tm-spec/0.1tospec: tm-spec/0.2.
Every TM-Spec v0.2 document MUST include:
spec: tm-spec/0.2
kind: <Kind>
id: tm.<slug>.<YYYY-MM-DD>
schema_url: https://exopoiesis.github.io/tm-spec/0.2.json
The id is human-readable and stable enough for SI references. Persistent
archive identifiers (NOMAD entry id, DOI, Zenodo record) belong in
provenance.import_source or provenance.parents.
v0.2 keeps the v0.1 core sections:
structuredefectsmagneticenvironmentreactionscalculationworkflowresultssanityprovenanceThe original v0.1 workflow families are unchanged:
NEBCalculationUSCalculationMetaDynCalculationMDCalculationMLIPBenchmarkStructure, Defects, Magnetic,
Environment, Reaction, SanityReport, ProvenanceSee v0.1.md for the section-by-section narrative examples.
The machine contract is the v0.2 JSON Schema.
SinglePointCalculationSinglePointCalculation describes a single SCF/electronic-structure
calculation: energy, forces, stress, DOS, bands, charges, Bader analysis,
magnetic moments, or similar post-SCF results.
Required sections:
spec: tm-spec/0.2
kind: SinglePointCalculation
id: tm.nomad.example.2026-05-10
structure: { ... }
calculation: { ... }
results:
status: PRELIMINARY
sanity:
- { id: G05_scf_converged, rule: "SCF converged", pass: true }
provenance:
date: 2026-05-10
author: import@nomad
Optional results fields include:
energy_eVenergy_per_atom_eVforces_eV_per_A (path to artefact)max_force_eV_per_Astress_GPaband_gap_eVfermi_energy_eVmagmoms_final_uBpaper_quotablevalidated_bynotesOptional electronic_structure_analysis can record DOS, band structure,
band gap, charges, Fermi energy, and atomic magnetic moments.
RelaxCalculationRelaxCalculation describes a geometry optimisation as a single
trajectory, distinct from NEB (multiple endpoints) and MD (time
evolution).
Required additional section:
relax_protocol:
optimizer: BFGS
fmax_eV_per_A: 0.03
max_steps: 200
cell_relax: none
Required results.status; optional result fields include:
final_energy_eVfmax_achieved_eV_per_An_steps_actualconvergedfinal_structure_reffinal_volume_A3stress_GPapaper_quotablevalidated_bynotesv0.2 adds provenance.import_source for documents imported from external
archives. The bundled importer currently targets NOMAD Archive entries.
provenance:
date: 2026-05-10
author: import@nomad
import_source:
archive: nomad
entry_id: example-entry-id
upload_id: example-upload-id
url: https://nomad-lab.eu/prod/v1/gui/entry/id/example-entry-id
imported_at: 2026-05-10T12:00:00+00:00
importer: tm-spec import-nomad@0.2.0
raw_keys:
- results.material
- results.method.simulation.dft
- results.properties.energies.energy_total
compute:
host: nomad-archive
cost_usd: 0.0
Importers SHOULD preserve enough raw-key traceability for a human to audit the mapping from the source archive to TM-Spec.
tm-spec import-nomad <entry_id> --out imported.tm.yaml
tm-spec import-nomad-batch --query '{"results.method.method_name":"DFT"}' \
--limit 25 --out-dir imported/
Both commands use anonymous reads by default. NOMAD_API_TOKEN can be set
for authenticated/rate-limited environments.
0.1.json.0.2.json.spec
field.tm-spec/0.2 because v0.2 is an
additive superset.Reference implementation version 0.2.0 provides:
tm_spec.validatortm_spec.extracttm_spec.linttm_spec.sanity_filltm_spec.exporters.nomadtm_spec.importers.nomadtm_spec.cliThe spec text is intentionally concise; exact required/optional fields are defined by the JSON Schema and guarded by tests.