Skip to content

Add Ti64 and diamond phonon benchmarks#391

Open
7radians wants to merge 12 commits into
ddmms:mainfrom
7radians:phonons_ti_c
Open

Add Ti64 and diamond phonon benchmarks#391
7radians wants to merge 12 commits into
ddmms:mainfrom
7radians:phonons_ti_c

Conversation

@7radians

Copy link
Copy Markdown

Pre-review checklist for PR author

Summary

This PR adds two new bulk-crystal phonon benchmarks with Dash app integration:

Ti-6Al-4V (Ti64) phonons (bulk_crystal/ti64_phonons)

  • Calc: Runs a CASTEP-referenced phonon suite across 10 Ti64 configurations (hcp/hex + bcc variants). For each model/case it relaxes the structure (LBFGS) then computes:
    • dispersion on a high-symmetry k-path,
    • DOS/PDOS on a dense mesh,
    • optional thermo/free-energy curves for a defined subset of cases.
      Raw outputs are written to outputs/<model>/ as <case>.npz + <case>.json.
  • Analysis: Produces per-model metrics.json plus:
    • ti64_phonons_metrics_table.json (Dash table)
    • ti64_phonons_interactive.json (interactive scatter)
      Metrics include dispersion RMSE (mean/max), ω_avg MAE, and ΔF per-atom at 0 K / 2000 K for TP-enabled cases.
  • App: Adds a Dash app that reuses shared callback builders to provide:
    • table → ω_avg scatter (ref vs pred),
    • scatter selection → rendered dispersion + DOS preview from calc artifacts.

Diamond phonons (bands-only) (bulk_crystal/diamond_phonons)

  • Calc: Computes phonopy force constants and band dispersions for diamond for each model and writes FORCE_CONSTANTS + band.yaml under outputs/<model>/. The phonon band path is taken directly from the DFT reference NPZ (dft_band.npz) so predictions match the exact reference q-path.
  • Analysis: Loads the DFT reference bands (cm⁻¹ → THz), loads each model’s band.yaml, sorts bands per q-point and reports Band MAE + Band RMSE (THz). Writes:
    • diamond_phonons_bands_table.json
    • diamond_phonons_bands_interactive.json
  • App: Adds a Dash app that shows metric scatter plots and a per-model dispersion preview panel rendered from band.yaml with optional DFT overlay (RSCAN).

Linked issue

Resolves #297

Progress

  • Calculations
  • Analysis
  • Application
  • Documentation

Testing

Tested both benchmarks on:

  • mace-mp-0a
  • mace-mp-0b3
  • mace-mpa-0
  • mace-omat-0
  • mace-matpes-r2scan
  • orb-v3-consv-inf-omat
  • pet-mad

New decorators/callbacks

  • No new callbacks/decorators required (reuses existing table/scatter decorators and shared callback builders).

@ElliottKasoar ElliottKasoar added the new benchmark Proposals and suggestions for new benchmarks label Mar 2, 2026
@joehart2001

joehart2001 commented Apr 21, 2026

Copy link
Copy Markdown
Collaborator

Hey @7radians, have you had a look at adding the thermal conductivity and Grüneisen parameter? would be good to get those in! For the calc, analysis etc, i think we will have a look at writing some more general stuff that you can use, as many people want to look at phonons in some shape or form. will update you on the progress of that

@joehart2001

Copy link
Copy Markdown
Collaborator

Hey @7radians ive now made a PR for the phonon calc in a simpler way than what i showed you originally. it would be great to match this, but for your application we won't need the multiple workers. let me know if you need any help!

@7radians

7radians commented Jun 4, 2026

Copy link
Copy Markdown
Author

Hey @joehart2001, all done, phonons refactored and Gruneisen + thermal conductivity added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new benchmark Proposals and suggestions for new benchmarks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Ti64 and diamond phonon benchmarks

3 participants