diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index f41dd9214ea44f973074c687e247fcbb1e26dd4f..730aca2b244f5e93e4dcf8d35384c97ac653723e 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -49,7 +49,7 @@ jobs: env: PREFECT_API_KEY: ${{ secrets.PREFECT_API_KEY }} PREFECT_API_URL: ${{ secrets.PREFECT_API_URL }} - run: pytest -vra -n 5 --basetemp=./.pytest_temp tests + run: pytest -vra -n 5 --dist=loadscope tests - name: Squash commits and trial push to Hugging Face if: github.event_name == 'pull_request' @@ -75,7 +75,6 @@ jobs: # Setup LFS git lfs fetch git lfs checkout - # git config lfs.allowincompletepush true # Push to temporary branch on Hugging Face git push -f https://HF_USERNAME:$HF_TOKEN@huggingface.co/spaces/atomind/mlip-arena HEAD:refs/heads/$TRIAL_BRANCH diff --git a/.gitignore b/.gitignore index af4e52819e617863c32f56c876989f2628cc7b84..125b29977c7d1fcd4b66fb3556b90829ff0e99b8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ *.extxyz *.traj mlip_arena/tasks/*/ -examples/ +benchmarks/ lab/ manuscripts/ datasets/ diff --git a/examples/bzo/dft.ipynb b/benchmarks/bzo/dft.ipynb similarity index 100% rename from examples/bzo/dft.ipynb rename to benchmarks/bzo/dft.ipynb diff --git a/examples/bzo/pbe/mode-1.npy b/benchmarks/bzo/pbe/mode-1.npy similarity index 100% rename from examples/bzo/pbe/mode-1.npy rename to benchmarks/bzo/pbe/mode-1.npy diff --git a/examples/bzo/pbe/phonopy_params.yaml b/benchmarks/bzo/pbe/phonopy_params.yaml similarity index 100% rename from examples/bzo/pbe/phonopy_params.yaml rename to benchmarks/bzo/pbe/phonopy_params.yaml diff --git a/examples/c2db/ALIGNN.parquet b/benchmarks/c2db/ALIGNN.parquet similarity index 100% rename from examples/c2db/ALIGNN.parquet rename to benchmarks/c2db/ALIGNN.parquet diff --git a/examples/c2db/CHGNet.parquet b/benchmarks/c2db/CHGNet.parquet similarity index 100% rename from examples/c2db/CHGNet.parquet rename to benchmarks/c2db/CHGNet.parquet diff --git a/examples/c2db/M3GNet.parquet b/benchmarks/c2db/M3GNet.parquet similarity index 100% rename from examples/c2db/M3GNet.parquet rename to benchmarks/c2db/M3GNet.parquet diff --git a/examples/c2db/MACE-MP(M).parquet b/benchmarks/c2db/MACE-MP(M).parquet similarity index 100% rename from examples/c2db/MACE-MP(M).parquet rename to benchmarks/c2db/MACE-MP(M).parquet diff --git a/examples/c2db/MACE-MPA.parquet b/benchmarks/c2db/MACE-MPA.parquet similarity index 100% rename from examples/c2db/MACE-MPA.parquet rename to benchmarks/c2db/MACE-MPA.parquet diff --git a/examples/c2db/MatterSim.parquet b/benchmarks/c2db/MatterSim.parquet similarity index 100% rename from examples/c2db/MatterSim.parquet rename to benchmarks/c2db/MatterSim.parquet diff --git a/examples/c2db/ORBv2.parquet b/benchmarks/c2db/ORBv2.parquet similarity index 100% rename from examples/c2db/ORBv2.parquet rename to benchmarks/c2db/ORBv2.parquet diff --git a/examples/c2db/SevenNet.parquet b/benchmarks/c2db/SevenNet.parquet similarity index 100% rename from examples/c2db/SevenNet.parquet rename to benchmarks/c2db/SevenNet.parquet diff --git a/examples/c2db/analysis.ipynb b/benchmarks/c2db/analysis.ipynb similarity index 100% rename from examples/c2db/analysis.ipynb rename to benchmarks/c2db/analysis.ipynb diff --git a/examples/c2db/c2db-confusion_matrices.pdf b/benchmarks/c2db/c2db-confusion_matrices.pdf similarity index 100% rename from examples/c2db/c2db-confusion_matrices.pdf rename to benchmarks/c2db/c2db-confusion_matrices.pdf diff --git a/examples/c2db/c2db-f1_bar.pdf b/benchmarks/c2db/c2db-f1_bar.pdf similarity index 100% rename from examples/c2db/c2db-f1_bar.pdf rename to benchmarks/c2db/c2db-f1_bar.pdf diff --git a/examples/c2db/c2db.db b/benchmarks/c2db/c2db.db similarity index 100% rename from examples/c2db/c2db.db rename to benchmarks/c2db/c2db.db diff --git a/examples/c2db/copy.parquet b/benchmarks/c2db/copy.parquet similarity index 100% rename from examples/c2db/copy.parquet rename to benchmarks/c2db/copy.parquet diff --git a/examples/c2db/run.py b/benchmarks/c2db/run.py similarity index 100% rename from examples/c2db/run.py rename to benchmarks/c2db/run.py diff --git a/examples/eos_alloy/run_Fe-Ni-Cr.ipynb b/benchmarks/eos_alloy/run_Fe-Ni-Cr.ipynb similarity index 100% rename from examples/eos_alloy/run_Fe-Ni-Cr.ipynb rename to benchmarks/eos_alloy/run_Fe-Ni-Cr.ipynb diff --git a/examples/eos_bulk/CHGNet.parquet b/benchmarks/eos_bulk/CHGNet.parquet similarity index 100% rename from examples/eos_bulk/CHGNet.parquet rename to benchmarks/eos_bulk/CHGNet.parquet diff --git a/examples/eos_bulk/CHGNet_processed.parquet b/benchmarks/eos_bulk/CHGNet_processed.parquet similarity index 100% rename from examples/eos_bulk/CHGNet_processed.parquet rename to benchmarks/eos_bulk/CHGNet_processed.parquet diff --git a/examples/eos_bulk/M3GNet.parquet b/benchmarks/eos_bulk/M3GNet.parquet similarity index 100% rename from examples/eos_bulk/M3GNet.parquet rename to benchmarks/eos_bulk/M3GNet.parquet diff --git a/examples/eos_bulk/M3GNet_processed.parquet b/benchmarks/eos_bulk/M3GNet_processed.parquet similarity index 100% rename from examples/eos_bulk/M3GNet_processed.parquet rename to benchmarks/eos_bulk/M3GNet_processed.parquet diff --git a/examples/eos_bulk/MACE-MP(M).parquet b/benchmarks/eos_bulk/MACE-MP(M).parquet similarity index 100% rename from examples/eos_bulk/MACE-MP(M).parquet rename to benchmarks/eos_bulk/MACE-MP(M).parquet diff --git a/examples/eos_bulk/MACE-MP(M)_processed.parquet b/benchmarks/eos_bulk/MACE-MP(M)_processed.parquet similarity index 100% rename from examples/eos_bulk/MACE-MP(M)_processed.parquet rename to benchmarks/eos_bulk/MACE-MP(M)_processed.parquet diff --git a/examples/eos_bulk/MACE-MPA.parquet b/benchmarks/eos_bulk/MACE-MPA.parquet similarity index 100% rename from examples/eos_bulk/MACE-MPA.parquet rename to benchmarks/eos_bulk/MACE-MPA.parquet diff --git a/examples/eos_bulk/MACE-MPA_processed.parquet b/benchmarks/eos_bulk/MACE-MPA_processed.parquet similarity index 100% rename from examples/eos_bulk/MACE-MPA_processed.parquet rename to benchmarks/eos_bulk/MACE-MPA_processed.parquet diff --git a/examples/eos_bulk/MatterSim.parquet b/benchmarks/eos_bulk/MatterSim.parquet similarity index 100% rename from examples/eos_bulk/MatterSim.parquet rename to benchmarks/eos_bulk/MatterSim.parquet diff --git a/examples/eos_bulk/MatterSim_processed.parquet b/benchmarks/eos_bulk/MatterSim_processed.parquet similarity index 100% rename from examples/eos_bulk/MatterSim_processed.parquet rename to benchmarks/eos_bulk/MatterSim_processed.parquet diff --git a/examples/eos_bulk/ORBv2.parquet b/benchmarks/eos_bulk/ORBv2.parquet similarity index 100% rename from examples/eos_bulk/ORBv2.parquet rename to benchmarks/eos_bulk/ORBv2.parquet diff --git a/examples/eos_bulk/ORBv2_processed.parquet b/benchmarks/eos_bulk/ORBv2_processed.parquet similarity index 100% rename from examples/eos_bulk/ORBv2_processed.parquet rename to benchmarks/eos_bulk/ORBv2_processed.parquet diff --git a/examples/eos_bulk/SevenNet.parquet b/benchmarks/eos_bulk/SevenNet.parquet similarity index 100% rename from examples/eos_bulk/SevenNet.parquet rename to benchmarks/eos_bulk/SevenNet.parquet diff --git a/examples/eos_bulk/SevenNet_processed.parquet b/benchmarks/eos_bulk/SevenNet_processed.parquet similarity index 100% rename from examples/eos_bulk/SevenNet_processed.parquet rename to benchmarks/eos_bulk/SevenNet_processed.parquet diff --git a/examples/eos_bulk/analyze.py b/benchmarks/eos_bulk/analyze.py similarity index 100% rename from examples/eos_bulk/analyze.py rename to benchmarks/eos_bulk/analyze.py diff --git a/examples/eos_bulk/eSEN.parquet b/benchmarks/eos_bulk/eSEN.parquet similarity index 100% rename from examples/eos_bulk/eSEN.parquet rename to benchmarks/eos_bulk/eSEN.parquet diff --git a/examples/eos_bulk/eSEN_processed.parquet b/benchmarks/eos_bulk/eSEN_processed.parquet similarity index 100% rename from examples/eos_bulk/eSEN_processed.parquet rename to benchmarks/eos_bulk/eSEN_processed.parquet diff --git a/examples/eos_bulk/plot.py b/benchmarks/eos_bulk/plot.py similarity index 100% rename from examples/eos_bulk/plot.py rename to benchmarks/eos_bulk/plot.py diff --git a/examples/eos_bulk/preprocessing.py b/benchmarks/eos_bulk/preprocessing.py similarity index 100% rename from examples/eos_bulk/preprocessing.py rename to benchmarks/eos_bulk/preprocessing.py diff --git a/examples/eos_bulk/run.py b/benchmarks/eos_bulk/run.py similarity index 100% rename from examples/eos_bulk/run.py rename to benchmarks/eos_bulk/run.py diff --git a/examples/eos_bulk/summary.csv b/benchmarks/eos_bulk/summary.csv similarity index 100% rename from examples/eos_bulk/summary.csv rename to benchmarks/eos_bulk/summary.csv diff --git a/examples/eos_bulk/summary.tex b/benchmarks/eos_bulk/summary.tex similarity index 100% rename from examples/eos_bulk/summary.tex rename to benchmarks/eos_bulk/summary.tex diff --git a/examples/mof/CHGNet.pkl b/benchmarks/mof/CHGNet.pkl similarity index 100% rename from examples/mof/CHGNet.pkl rename to benchmarks/mof/CHGNet.pkl diff --git a/examples/mof/M3GNet.pkl b/benchmarks/mof/M3GNet.pkl similarity index 100% rename from examples/mof/M3GNet.pkl rename to benchmarks/mof/M3GNet.pkl diff --git a/examples/mof/MACE-MP(M).pkl b/benchmarks/mof/MACE-MP(M).pkl similarity index 100% rename from examples/mof/MACE-MP(M).pkl rename to benchmarks/mof/MACE-MP(M).pkl diff --git a/examples/mof/MACE-MPA.pkl b/benchmarks/mof/MACE-MPA.pkl similarity index 100% rename from examples/mof/MACE-MPA.pkl rename to benchmarks/mof/MACE-MPA.pkl diff --git a/examples/mof/MatterSim.pkl b/benchmarks/mof/MatterSim.pkl similarity index 100% rename from examples/mof/MatterSim.pkl rename to benchmarks/mof/MatterSim.pkl diff --git a/examples/mof/ORBv2.pkl b/benchmarks/mof/ORBv2.pkl similarity index 100% rename from examples/mof/ORBv2.pkl rename to benchmarks/mof/ORBv2.pkl diff --git a/examples/mof/classification/M3GNet.pkl b/benchmarks/mof/classification/M3GNet.pkl similarity index 100% rename from examples/mof/classification/M3GNet.pkl rename to benchmarks/mof/classification/M3GNet.pkl diff --git a/examples/mof/classification/MACE-MP(M).pkl b/benchmarks/mof/classification/MACE-MP(M).pkl similarity index 100% rename from examples/mof/classification/MACE-MP(M).pkl rename to benchmarks/mof/classification/MACE-MP(M).pkl diff --git a/examples/mof/classification/MACE-MPA.pkl b/benchmarks/mof/classification/MACE-MPA.pkl similarity index 100% rename from examples/mof/classification/MACE-MPA.pkl rename to benchmarks/mof/classification/MACE-MPA.pkl diff --git a/examples/mof/classification/MatterSim.pkl b/benchmarks/mof/classification/MatterSim.pkl similarity index 100% rename from examples/mof/classification/MatterSim.pkl rename to benchmarks/mof/classification/MatterSim.pkl diff --git a/examples/mof/classification/ORBv2.pkl b/benchmarks/mof/classification/ORBv2.pkl similarity index 100% rename from examples/mof/classification/ORBv2.pkl rename to benchmarks/mof/classification/ORBv2.pkl diff --git a/examples/mof/classification/SevenNet.pkl b/benchmarks/mof/classification/SevenNet.pkl similarity index 100% rename from examples/mof/classification/SevenNet.pkl rename to benchmarks/mof/classification/SevenNet.pkl diff --git a/examples/mof/classification/analysis.ipynb b/benchmarks/mof/classification/analysis.ipynb similarity index 100% rename from examples/mof/classification/analysis.ipynb rename to benchmarks/mof/classification/analysis.ipynb diff --git a/examples/mof/classification/classification.py b/benchmarks/mof/classification/classification.py similarity index 100% rename from examples/mof/classification/classification.py rename to benchmarks/mof/classification/classification.py diff --git a/examples/mof/classification/input.pkl b/benchmarks/mof/classification/input.pkl similarity index 100% rename from examples/mof/classification/input.pkl rename to benchmarks/mof/classification/input.pkl diff --git a/examples/mof/classification/mof-misclassification_margin.pdf b/benchmarks/mof/classification/mof-misclassification_margin.pdf similarity index 100% rename from examples/mof/classification/mof-misclassification_margin.pdf rename to benchmarks/mof/classification/mof-misclassification_margin.pdf diff --git a/examples/mof/golddac.ipynb b/benchmarks/mof/golddac.ipynb similarity index 100% rename from examples/mof/golddac.ipynb rename to benchmarks/mof/golddac.ipynb diff --git a/examples/mof/structures/Al-MIL53.cif b/benchmarks/mof/structures/Al-MIL53.cif similarity index 100% rename from examples/mof/structures/Al-MIL53.cif rename to benchmarks/mof/structures/Al-MIL53.cif diff --git a/examples/mof/structures/CALF20.cif b/benchmarks/mof/structures/CALF20.cif similarity index 100% rename from examples/mof/structures/CALF20.cif rename to benchmarks/mof/structures/CALF20.cif diff --git a/examples/mof/structures/HKUST-1.cif b/benchmarks/mof/structures/HKUST-1.cif similarity index 100% rename from examples/mof/structures/HKUST-1.cif rename to benchmarks/mof/structures/HKUST-1.cif diff --git a/examples/mof/structures/MOF-5.cif b/benchmarks/mof/structures/MOF-5.cif similarity index 100% rename from examples/mof/structures/MOF-5.cif rename to benchmarks/mof/structures/MOF-5.cif diff --git a/examples/mof/structures/SIFSIX-3-Cu.cif b/benchmarks/mof/structures/SIFSIX-3-Cu.cif similarity index 100% rename from examples/mof/structures/SIFSIX-3-Cu.cif rename to benchmarks/mof/structures/SIFSIX-3-Cu.cif diff --git a/examples/mof/structures/UiO-66.cif b/benchmarks/mof/structures/UiO-66.cif similarity index 100% rename from examples/mof/structures/UiO-66.cif rename to benchmarks/mof/structures/UiO-66.cif diff --git a/examples/mof/structures/ZIF-7.cif b/benchmarks/mof/structures/ZIF-7.cif similarity index 100% rename from examples/mof/structures/ZIF-7.cif rename to benchmarks/mof/structures/ZIF-7.cif diff --git a/examples/mof/structures/ZIF-8.cif b/benchmarks/mof/structures/ZIF-8.cif similarity index 100% rename from examples/mof/structures/ZIF-8.cif rename to benchmarks/mof/structures/ZIF-8.cif diff --git a/examples/mof/structures/Zn-MOF-74.cif b/benchmarks/mof/structures/Zn-MOF-74.cif similarity index 100% rename from examples/mof/structures/Zn-MOF-74.cif rename to benchmarks/mof/structures/Zn-MOF-74.cif diff --git a/examples/mof/structures/dac/CFA-1-OH(Zn).cif b/benchmarks/mof/structures/dac/CFA-1-OH(Zn).cif similarity index 100% rename from examples/mof/structures/dac/CFA-1-OH(Zn).cif rename to benchmarks/mof/structures/dac/CFA-1-OH(Zn).cif diff --git a/examples/mof/structures/dac/NbOFFIVE-1-Ni.cif b/benchmarks/mof/structures/dac/NbOFFIVE-1-Ni.cif similarity index 100% rename from examples/mof/structures/dac/NbOFFIVE-1-Ni.cif rename to benchmarks/mof/structures/dac/NbOFFIVE-1-Ni.cif diff --git a/examples/mof/structures/dac/SGU-29.cif b/benchmarks/mof/structures/dac/SGU-29.cif similarity index 100% rename from examples/mof/structures/dac/SGU-29.cif rename to benchmarks/mof/structures/dac/SGU-29.cif diff --git a/examples/mof/structures/dac/SIFSIX-18-Ni-beta.cif b/benchmarks/mof/structures/dac/SIFSIX-18-Ni-beta.cif similarity index 100% rename from examples/mof/structures/dac/SIFSIX-18-Ni-beta.cif rename to benchmarks/mof/structures/dac/SIFSIX-18-Ni-beta.cif diff --git a/examples/mof/structures/dac/SIFSIX-3-Cu.cif b/benchmarks/mof/structures/dac/SIFSIX-3-Cu.cif similarity index 100% rename from examples/mof/structures/dac/SIFSIX-3-Cu.cif rename to benchmarks/mof/structures/dac/SIFSIX-3-Cu.cif diff --git a/examples/mof/structures/dac/TIFSIX-3-Ni.cif b/benchmarks/mof/structures/dac/TIFSIX-3-Ni.cif similarity index 100% rename from examples/mof/structures/dac/TIFSIX-3-Ni.cif rename to benchmarks/mof/structures/dac/TIFSIX-3-Ni.cif diff --git a/examples/mof/structures/dac/en-Mg2(dobpdc).cif b/benchmarks/mof/structures/dac/en-Mg2(dobpdc).cif similarity index 100% rename from examples/mof/structures/dac/en-Mg2(dobpdc).cif rename to benchmarks/mof/structures/dac/en-Mg2(dobpdc).cif diff --git a/examples/mof/structures/flue_gas/Al-PyrMOF.cif b/benchmarks/mof/structures/flue_gas/Al-PyrMOF.cif similarity index 100% rename from examples/mof/structures/flue_gas/Al-PyrMOF.cif rename to benchmarks/mof/structures/flue_gas/Al-PyrMOF.cif diff --git a/examples/mof/structures/flue_gas/CALF20.cif b/benchmarks/mof/structures/flue_gas/CALF20.cif similarity index 100% rename from examples/mof/structures/flue_gas/CALF20.cif rename to benchmarks/mof/structures/flue_gas/CALF20.cif diff --git a/examples/mof/structures/flue_gas/MIL-120.cif b/benchmarks/mof/structures/flue_gas/MIL-120.cif similarity index 100% rename from examples/mof/structures/flue_gas/MIL-120.cif rename to benchmarks/mof/structures/flue_gas/MIL-120.cif diff --git a/examples/mof/structures/flue_gas/MIL-96(Al).cif b/benchmarks/mof/structures/flue_gas/MIL-96(Al).cif similarity index 100% rename from examples/mof/structures/flue_gas/MIL-96(Al).cif rename to benchmarks/mof/structures/flue_gas/MIL-96(Al).cif diff --git a/examples/mof/structures/flue_gas/MUF-16.cif b/benchmarks/mof/structures/flue_gas/MUF-16.cif similarity index 100% rename from examples/mof/structures/flue_gas/MUF-16.cif rename to benchmarks/mof/structures/flue_gas/MUF-16.cif diff --git a/examples/mof/structures/flue_gas/UTSA-16.cif b/benchmarks/mof/structures/flue_gas/UTSA-16.cif similarity index 100% rename from examples/mof/structures/flue_gas/UTSA-16.cif rename to benchmarks/mof/structures/flue_gas/UTSA-16.cif diff --git a/examples/mof/structures/flue_gas/ZnH-MFU-4l.cif b/benchmarks/mof/structures/flue_gas/ZnH-MFU-4l.cif similarity index 100% rename from examples/mof/structures/flue_gas/ZnH-MFU-4l.cif rename to benchmarks/mof/structures/flue_gas/ZnH-MFU-4l.cif diff --git a/examples/mof/structures/general/Fe-MOF-74.cif b/benchmarks/mof/structures/general/Fe-MOF-74.cif similarity index 100% rename from examples/mof/structures/general/Fe-MOF-74.cif rename to benchmarks/mof/structures/general/Fe-MOF-74.cif diff --git a/examples/mof/structures/general/HKUST-1.cif b/benchmarks/mof/structures/general/HKUST-1.cif similarity index 100% rename from examples/mof/structures/general/HKUST-1.cif rename to benchmarks/mof/structures/general/HKUST-1.cif diff --git a/examples/mof/structures/general/MIL53(Al).cif b/benchmarks/mof/structures/general/MIL53(Al).cif similarity index 100% rename from examples/mof/structures/general/MIL53(Al).cif rename to benchmarks/mof/structures/general/MIL53(Al).cif diff --git a/examples/mof/structures/general/MOF-177.cif b/benchmarks/mof/structures/general/MOF-177.cif similarity index 100% rename from examples/mof/structures/general/MOF-177.cif rename to benchmarks/mof/structures/general/MOF-177.cif diff --git a/examples/mof/structures/general/MOF-5.cif b/benchmarks/mof/structures/general/MOF-5.cif similarity index 100% rename from examples/mof/structures/general/MOF-5.cif rename to benchmarks/mof/structures/general/MOF-5.cif diff --git a/examples/mof/structures/general/UiO-66.cif b/benchmarks/mof/structures/general/UiO-66.cif similarity index 100% rename from examples/mof/structures/general/UiO-66.cif rename to benchmarks/mof/structures/general/UiO-66.cif diff --git a/examples/mof/structures/general/ZIF-8.cif b/benchmarks/mof/structures/general/ZIF-8.cif similarity index 100% rename from examples/mof/structures/general/ZIF-8.cif rename to benchmarks/mof/structures/general/ZIF-8.cif diff --git a/examples/mof/widom-insertion.ipynb b/benchmarks/mof/widom-insertion.ipynb similarity index 100% rename from examples/mof/widom-insertion.ipynb rename to benchmarks/mof/widom-insertion.ipynb diff --git a/examples/stability/plot.ipynb b/benchmarks/stability/plot.ipynb similarity index 100% rename from examples/stability/plot.ipynb rename to benchmarks/stability/plot.ipynb diff --git a/examples/stability/pressure.ipynb b/benchmarks/stability/pressure.ipynb similarity index 100% rename from examples/stability/pressure.ipynb rename to benchmarks/stability/pressure.ipynb diff --git a/examples/stability/temperature.ipynb b/benchmarks/stability/temperature.ipynb similarity index 100% rename from examples/stability/temperature.ipynb rename to benchmarks/stability/temperature.ipynb diff --git a/examples/vacancy_migration/Table-A1-fcc.csv b/benchmarks/vacancy_migration/Table-A1-fcc.csv similarity index 100% rename from examples/vacancy_migration/Table-A1-fcc.csv rename to benchmarks/vacancy_migration/Table-A1-fcc.csv diff --git a/examples/vacancy_migration/Table-A2-hcp.csv b/benchmarks/vacancy_migration/Table-A2-hcp.csv similarity index 100% rename from examples/vacancy_migration/Table-A2-hcp.csv rename to benchmarks/vacancy_migration/Table-A2-hcp.csv diff --git a/examples/vacancy_migration/analysis.py b/benchmarks/vacancy_migration/analysis.py similarity index 100% rename from examples/vacancy_migration/analysis.py rename to benchmarks/vacancy_migration/analysis.py diff --git a/benchmarks/vacancy_migration/run.py b/benchmarks/vacancy_migration/run.py new file mode 100644 index 0000000000000000000000000000000000000000..4678d4d4392b25c24094f078e40449402952c3ee --- /dev/null +++ b/benchmarks/vacancy_migration/run.py @@ -0,0 +1,167 @@ +import pickle +from functools import partial +from pathlib import Path + +from ase import Atoms +from prefect import Task, flow, task +from prefect.client.schemas.objects import TaskRun +from prefect.results import ResultRecord +from prefect.states import State + +from mlip_arena.models import REGISTRY, MLIPEnum +from mlip_arena.tasks.eos import run as EOS +from mlip_arena.tasks.neb import run_from_endpoints as NEB +from mlip_arena.tasks.vacancy_migration.input import get_fcc_pristine, get_hcp_pristine + +MP_API_KEY = None + +test_models = ["MACE-MP(M)", "MatterSim", "ORBv2", "CHGNet", "M3GNet", "SevenNet"] + + +def save_to_pickle( + tsk: Task, run: TaskRun, state: State, crystal: str +): + result = run.state.result(raise_on_failure=False) + + pristine = result["pristine"] + calculator_name = result["calculator_name"] + calculator_name = calculator_name.name if isinstance(calculator_name, MLIPEnum) else calculator_name + + family_path = Path(REGISTRY[calculator_name]["family"]) + family_path.mkdir(parents=True, exist_ok=True) + + with open(family_path / f"{calculator_name}-{crystal}-{pristine.get_chemical_formula()}.pkl", "wb") as f: + pickle.dump(result, f) + + # with open(family_path / f"{crystal}-{pristine.get_chemical_formula()}.json", 'w') as f: + # json.dump(result, f) + +@task +def calculate_vacancy_migration( + pristine: Atoms, + istart: int, + iend: int, + calculator_name: MLIPEnum | str, + optimizer: str, + criterion: dict = {} +): + + eos = EOS.with_options(refresh_cache=True, persist_result=True)( + atoms=pristine, + calculator_name=calculator_name, + optimizer=optimizer, + criterion=criterion, + concurrent=False, + ) + + if isinstance(eos, ResultRecord): + eos = eos.result + + if isinstance(eos, dict): + pristine = eos["atoms"] + else: + return eos + + atoms = pristine.copy() + del atoms[istart] + start = atoms.copy() + + atoms = pristine.copy() + del atoms[iend] + end = atoms.copy() + + + neb = NEB.with_options(refresh_cache=True, persist_result=True)( + start, end, n_images=7, + calculator_name=calculator_name, + optimizer=optimizer, + criterion=criterion, + relax_end_points=True + ) + + e_defect = 0.5 * (neb["images"][0].get_potential_energy() + neb["images"][-1].get_potential_energy()) + e_pristine = pristine.get_potential_energy() + + e_vacform = e_defect - (len(neb["images"][0]) / len(pristine)) * e_pristine + + e_vacmig = neb["barrier"][0] + asymmetry = abs(neb["barrier"][1] / e_vacmig) + + # TODO: temporary solution to pickling problem of mattersim + pristine.calc = None + for image in neb["images"]: + image.calc = None + eos["atoms"].calc = None + + return { + "pristine": pristine, + "calculator_name": calculator_name, + "e_vacform": e_vacform, + "e_vacmig": e_vacmig, + "asymmetry": asymmetry, + "neb": neb, + "eos": eos + } + +@flow(persist_result=True, result_serializer="pickle") +def run_fcc(): + + futures = [] + for atoms in get_fcc_pristine(MP_API_KEY): + for model in MLIPEnum: + if model.name not in test_models: + continue + try: + result = calculate_vacancy_migration.with_options( + refresh_cache=True, persist_result=True, + on_completion=[partial(save_to_pickle, crystal="fcc")] + )( + pristine=atoms, + istart=0, + iend=1, + calculator_name=model, + optimizer="BFGS", + criterion=dict(fmax=0.05, steps=500), + ) + except Exception: + continue + futures.append(result) + + return futures + # wait(futures) + # return [f.result(raise_on_failure=False) for f in futures if f.state.is_completed()] + +@flow(persist_result=True, result_serializer="pickle") +def run_hcp(): + futures = [] + for i, atoms in enumerate(get_hcp_pristine(MP_API_KEY)): + if i <= 30: + continue + for model in MLIPEnum: + if model.name not in test_models: + continue + try: + result = calculate_vacancy_migration.with_options( + refresh_cache=True, persist_result=True, + on_completion=[partial(save_to_pickle, crystal="hcp")] + )( + pristine=atoms, + istart=0, + iend=1, + calculator_name=model, + optimizer="BFGS", + criterion=dict(fmax=0.05, steps=500), + ) + # calculator_name = model.name if isinstance(model, MLIPEnum) else model + + # family_path = Path(REGISTRY[calculator_name]['family']) + # family_path.mkdir(parents=True, exist_ok=True) + # with open(family_path / f"{'hcp'}-{atoms.get_chemical_formula()}.pkl", 'wb') as f: + # pickle.dump(result, f) + except Exception: + continue + futures.append(result) + + return futures + # wait(futures) + # return [f.result(raise_on_failure=False) for f in futures if f.state.is_completed()] diff --git a/examples/wbm_ev/ALIGNN.parquet b/benchmarks/wbm_ev/ALIGNN.parquet similarity index 100% rename from examples/wbm_ev/ALIGNN.parquet rename to benchmarks/wbm_ev/ALIGNN.parquet diff --git a/examples/wbm_ev/ALIGNN_processed.parquet b/benchmarks/wbm_ev/ALIGNN_processed.parquet similarity index 100% rename from examples/wbm_ev/ALIGNN_processed.parquet rename to benchmarks/wbm_ev/ALIGNN_processed.parquet diff --git a/examples/wbm_ev/CHGNet.parquet b/benchmarks/wbm_ev/CHGNet.parquet similarity index 100% rename from examples/wbm_ev/CHGNet.parquet rename to benchmarks/wbm_ev/CHGNet.parquet diff --git a/examples/wbm_ev/CHGNet_processed.parquet b/benchmarks/wbm_ev/CHGNet_processed.parquet similarity index 100% rename from examples/wbm_ev/CHGNet_processed.parquet rename to benchmarks/wbm_ev/CHGNet_processed.parquet diff --git a/examples/wbm_ev/M3GNet.parquet b/benchmarks/wbm_ev/M3GNet.parquet similarity index 100% rename from examples/wbm_ev/M3GNet.parquet rename to benchmarks/wbm_ev/M3GNet.parquet diff --git a/examples/wbm_ev/M3GNet_processed.parquet b/benchmarks/wbm_ev/M3GNet_processed.parquet similarity index 100% rename from examples/wbm_ev/M3GNet_processed.parquet rename to benchmarks/wbm_ev/M3GNet_processed.parquet diff --git a/examples/wbm_ev/MACE-MP(M).parquet b/benchmarks/wbm_ev/MACE-MP(M).parquet similarity index 100% rename from examples/wbm_ev/MACE-MP(M).parquet rename to benchmarks/wbm_ev/MACE-MP(M).parquet diff --git a/examples/wbm_ev/MACE-MP(M)_processed.parquet b/benchmarks/wbm_ev/MACE-MP(M)_processed.parquet similarity index 100% rename from examples/wbm_ev/MACE-MP(M)_processed.parquet rename to benchmarks/wbm_ev/MACE-MP(M)_processed.parquet diff --git a/examples/wbm_ev/MACE-MPA.parquet b/benchmarks/wbm_ev/MACE-MPA.parquet similarity index 100% rename from examples/wbm_ev/MACE-MPA.parquet rename to benchmarks/wbm_ev/MACE-MPA.parquet diff --git a/examples/wbm_ev/MACE-MPA_processed.parquet b/benchmarks/wbm_ev/MACE-MPA_processed.parquet similarity index 100% rename from examples/wbm_ev/MACE-MPA_processed.parquet rename to benchmarks/wbm_ev/MACE-MPA_processed.parquet diff --git a/examples/wbm_ev/MatterSim.parquet b/benchmarks/wbm_ev/MatterSim.parquet similarity index 100% rename from examples/wbm_ev/MatterSim.parquet rename to benchmarks/wbm_ev/MatterSim.parquet diff --git a/examples/wbm_ev/MatterSim_processed.parquet b/benchmarks/wbm_ev/MatterSim_processed.parquet similarity index 100% rename from examples/wbm_ev/MatterSim_processed.parquet rename to benchmarks/wbm_ev/MatterSim_processed.parquet diff --git a/examples/wbm_ev/ORBv2.parquet b/benchmarks/wbm_ev/ORBv2.parquet similarity index 100% rename from examples/wbm_ev/ORBv2.parquet rename to benchmarks/wbm_ev/ORBv2.parquet diff --git a/examples/wbm_ev/ORBv2_processed.parquet b/benchmarks/wbm_ev/ORBv2_processed.parquet similarity index 100% rename from examples/wbm_ev/ORBv2_processed.parquet rename to benchmarks/wbm_ev/ORBv2_processed.parquet diff --git a/examples/wbm_ev/SevenNet.parquet b/benchmarks/wbm_ev/SevenNet.parquet similarity index 100% rename from examples/wbm_ev/SevenNet.parquet rename to benchmarks/wbm_ev/SevenNet.parquet diff --git a/examples/wbm_ev/SevenNet_processed.parquet b/benchmarks/wbm_ev/SevenNet_processed.parquet similarity index 100% rename from examples/wbm_ev/SevenNet_processed.parquet rename to benchmarks/wbm_ev/SevenNet_processed.parquet diff --git a/examples/wbm_ev/analyze.py b/benchmarks/wbm_ev/analyze.py similarity index 100% rename from examples/wbm_ev/analyze.py rename to benchmarks/wbm_ev/analyze.py diff --git a/examples/wbm_ev/eSEN.parquet b/benchmarks/wbm_ev/eSEN.parquet similarity index 100% rename from examples/wbm_ev/eSEN.parquet rename to benchmarks/wbm_ev/eSEN.parquet diff --git a/examples/wbm_ev/eSEN_processed.parquet b/benchmarks/wbm_ev/eSEN_processed.parquet similarity index 100% rename from examples/wbm_ev/eSEN_processed.parquet rename to benchmarks/wbm_ev/eSEN_processed.parquet diff --git a/examples/wbm_ev/eqV2(OMat).parquet b/benchmarks/wbm_ev/eqV2(OMat).parquet similarity index 100% rename from examples/wbm_ev/eqV2(OMat).parquet rename to benchmarks/wbm_ev/eqV2(OMat).parquet diff --git a/examples/wbm_ev/eqV2(OMat)_processed.parquet b/benchmarks/wbm_ev/eqV2(OMat)_processed.parquet similarity index 100% rename from examples/wbm_ev/eqV2(OMat)_processed.parquet rename to benchmarks/wbm_ev/eqV2(OMat)_processed.parquet diff --git a/examples/wbm_ev/run.py b/benchmarks/wbm_ev/run.py similarity index 100% rename from examples/wbm_ev/run.py rename to benchmarks/wbm_ev/run.py diff --git a/examples/wbm_ev/summary.csv b/benchmarks/wbm_ev/summary.csv similarity index 100% rename from examples/wbm_ev/summary.csv rename to benchmarks/wbm_ev/summary.csv diff --git a/examples/wbm_ev/summary.tex b/benchmarks/wbm_ev/summary.tex similarity index 100% rename from examples/wbm_ev/summary.tex rename to benchmarks/wbm_ev/summary.tex diff --git a/examples/wbm_structures.db b/benchmarks/wbm_structures.db similarity index 100% rename from examples/wbm_structures.db rename to benchmarks/wbm_structures.db diff --git a/serve/ranks/eos_bulk.py b/serve/ranks/eos_bulk.py index 962ce83e1be52606c40efe3ed0e5788b07b6519e..c2ed1d9f1574afd4a9c8d8e07ee2d6bd51e21680 100644 --- a/serve/ranks/eos_bulk.py +++ b/serve/ranks/eos_bulk.py @@ -3,7 +3,7 @@ from pathlib import Path import pandas as pd import streamlit as st -DATA_DIR = Path("examples/eos_bulk") +DATA_DIR = Path("benchmarks/eos_bulk") table = pd.read_csv(DATA_DIR / "summary.csv") diff --git a/serve/ranks/wbm_ev.py b/serve/ranks/wbm_ev.py index 95e4359bde727ca2d456edd11582f3149632060d..0e3a29606dd801cfe64ae096df5d285957ef0372 100644 --- a/serve/ranks/wbm_ev.py +++ b/serve/ranks/wbm_ev.py @@ -3,7 +3,7 @@ from pathlib import Path import pandas as pd import streamlit as st -DATA_DIR = Path("examples/wbm_ev") +DATA_DIR = Path("benchmarks/wbm_ev") table = pd.read_csv(DATA_DIR / "summary.csv") diff --git a/serve/tasks/eos_bulk.py b/serve/tasks/eos_bulk.py index e901a1d13d0cf822eae345a715a228b04f94a801..1a9b8eb0b1a21c1aad3a4699bfccfc1940c958bd 100644 --- a/serve/tasks/eos_bulk.py +++ b/serve/tasks/eos_bulk.py @@ -10,7 +10,7 @@ from scipy import stats from mlip_arena.models import REGISTRY as MODELS -DATA_DIR = Path("examples/eos_bulk") +DATA_DIR = Path("benchmarks/eos_bulk") st.markdown(""" # Equation of state (EOS) diff --git a/serve/tasks/wbm_ev.py b/serve/tasks/wbm_ev.py index a292ba1893ed8a48df2e2e1397fad40936f8ece7..c68b35b5a2f5281683571996053a94b924a7722b 100644 --- a/serve/tasks/wbm_ev.py +++ b/serve/tasks/wbm_ev.py @@ -10,7 +10,7 @@ from scipy import stats from mlip_arena.models import REGISTRY as MODELS -DATA_DIR = Path("examples/wbm_ev") +DATA_DIR = Path("benchmarks/wbm_ev") st.markdown(""" # Energy-volume scans