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

[WIP] Support general ASE Calculator for general MLIP MD simulations #738

Closed
wants to merge 4 commits into from

Conversation

chiang-yuan
Copy link
Contributor

Summary

Given that some of the popular MLIPs lean on ASE Calculator, this PR aims to add ASE Calculator support for MD simulations in a similar manner to #134 and #489. The design is similar to existing forcefield but allows user to pass any subclass of ASE Calculator and run various of dynamics supported by ASE MD module.

The design should be kept general and abstract so that we can avoid code duplication and won't need to add more ASE-based MLIPs in the future. This actually makes more sense than the existing relaxation implementation where most of them run ASE calculator as Relaxer at the bottom level. By doing so we can also ensure that all the MLIPs fairly run on the same settings of dynamics .

TODO

  • Add support for temperature and pressure schedules (T/P ramp, non-linear temperature schedule, shear external pressure, etc.)
  • For NPT ensemble, add mask and dyn.set_fraction_traceless(0)
  • Custodian and ASEJob
  • MultiMDMaker
  • test

Checklist

Work-in-progress pull requests are encouraged, but please put [WIP] in the pull request
title.

Before a pull request can be merged, the following items must be checked:

  • Code is in the standard Python style.
    The easiest way to handle this is to run the following in the correct sequence on
    your local machine. Start with running ruff and ruff format on your new code. This will
    automatically reformat your code to PEP8 conventions and fix many linting issues.
  • Doc strings have been added in the Numpy docstring format.
    Run ruff on your code.
  • Type annotations are highly encouraged. Run mypy to
    type check your code.
  • Tests have been added for any new functionality or bug fixes.
  • All linting and tests pass.

Note that the CI system will run all the above checks. But it will be much more
efficient if you already fix most errors prior to submitting the PR. It is highly
recommended that you use the pre-commit hook provided in the repository. Simply run
pre-commit install and a check will be run prior to allowing commits.

@JaGeo
Copy link
Collaborator

JaGeo commented Feb 22, 2024

I just want to mention this pull request here #722 as it is very much related.

@chiang-yuan
Copy link
Contributor Author

Ahhh okay sorry I didn’t look into the current PR. Will coordinate with @esoteric-ephemera then.

@chiang-yuan
Copy link
Contributor Author

Duplicate of #722

@utf
Copy link
Member

utf commented Mar 28, 2024

@chiang-yuan are you able to look at #722 and let me know if this PR captures everything you wanted to achieve here?

If so, can this be closed?

@chiang-yuan
Copy link
Contributor Author

@utf yes I have added the code in #722 instead of this one, so this could be closed

@utf utf closed this Apr 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants