Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable NEP interface #288

Draft
wants to merge 51 commits into
base: main
Choose a base branch
from

Conversation

naik-aakash
Copy link
Collaborator

@naik-aakash naik-aakash commented Dec 9, 2024

This PR addresses #54 by adding the necessary functions needed for fitting NEP models and testing on github CI (we will mock NEP fits as fitting explicitly requires GPU)

Changes

  • Add calorine as dependency in pyproject.toml
  • Grouped some installation commands in Docker file
  • Added flexibility to MLIPFitMaker (eg:- users can now change labels used for training data; change was needed because nep executable can only read files with .xyz extension and needs xyz file to have specific labels)
  • Add nep_fitting function in src/autoplex/fitting/common/utils.py
  • Add NEP as option in MLIPFitMaker
  • Add NEP as option in phonon and RSS workflows
  • Revert GPUMD install in the dockerfile (NEP model training only works with a GPU > thus redundant)
  • Simulate calls to nep using pytest fixtures (add mock_nep in conftest.py)
  • Add tests

@naik-aakash naik-aakash changed the title Add dependencies to enable NEP interface Enable NEP interface Dec 9, 2024
@naik-aakash naik-aakash marked this pull request as draft December 9, 2024 08:58
@QuantumChemist
Copy link
Collaborator

Can you wait a bit with this until #280 is done? 😃

@naik-aakash
Copy link
Collaborator Author

Can you wait a bit with this until #280 is done? 😃

Yeah ofcourse, it is not priority now and I already intended to do this after #280 is merged. Thus have only added dependencies no code yet.

@naik-aakash naik-aakash added documentation Improvements or additions to documentation enhancement New feature or request dependencies Pull requests that update a dependency file labels Dec 10, 2024
@naik-aakash naik-aakash self-assigned this Dec 14, 2024
Copy link
Collaborator

@QuantumChemist QuantumChemist left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see anything that needs to be improved 😃
Thank you also for making the part with the ref_names and the train/test file more flexible, as well as adding the mock_nep 👍🏻 💟

@@ -54,7 +55,7 @@ def initial_rss(
force_max: float | None = None,
force_label: str = "REF_forces",
pre_database_dir: str | None = None,
mlip_type: str = "GAP",
mlip_type: Literal["GAP", "J-ACE", "NEP", "NEQUIP", "M3GNET", "MACE"] = "GAP",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a very nice idea

Comment on lines +381 to +383
ref_force_name=self.ref_force_name,
ref_energy_name=self.ref_energy_name,
ref_virial_name=self.ref_virial_name,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for adding this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants