atomate2 icon indicating copy to clipboard operation
atomate2 copied to clipboard

[WIP] Add NEB, ApproxNEB jobs / workflows

Open esoteric-ephemera opened this issue 1 year ago • 1 comments

Adding NEB workflows and schemas for VASP / ASE / MLFF. This hopefully brings atomate2 to full parity with the feature set of atomate

@hmlli is leading the port of ApproxNEB flows for VASP

Very open to suggestions, particularly for document schema structure

Key updates:

  • Generic NEB schemas (one for single-barrier/hop NEB, one for combined pathways)
  • Different VASP run logic / makers / validators for NEB jobs
  • Parsing of VASP output handled by new NebTaskDoc class in emmet

To-do:

  • Better parsing of NEB outputs (collated into container doc with analysis of barrier)
  • ASE NEB optimizer
  • Subclass ASE NEB for MLFF
  • Tests

esoteric-ephemera avatar Oct 04 '24 23:10 esoteric-ephemera

Codecov Report

Attention: Patch coverage is 6.21019% with 589 lines in your changes missing coverage. Please review.

Project coverage is 4.21%. Comparing base (4244da9) to head (3f1653e). Report is 9 commits behind head on main.

Files with missing lines Patch % Lines
src/atomate2/common/jobs/approx_neb.py 0.00% 113 Missing :warning:
src/atomate2/vasp/jobs/approx_neb.py 0.00% 94 Missing :warning:
src/atomate2/vasp/jobs/neb.py 0.00% 86 Missing :warning:
src/atomate2/vasp/flows/approx_neb.py 0.00% 50 Missing :warning:
src/atomate2/ase/utils.py 20.00% 40 Missing :warning:
src/atomate2/ase/neb.py 0.00% 37 Missing :warning:
src/atomate2/common/flows/approx_neb.py 0.00% 32 Missing :warning:
src/atomate2/forcefields/neb.py 0.00% 30 Missing :warning:
src/atomate2/vasp/sets/approx_neb.py 0.00% 23 Missing :warning:
src/atomate2/common/jobs/neb.py 0.00% 22 Missing :warning:
... and 6 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #1007       +/-   ##
==========================================
- Coverage   72.82%   4.21%   -68.61%     
==========================================
  Files         187     197       +10     
  Lines       13637   14242      +605     
  Branches     1370    1455       +85     
==========================================
- Hits         9931     601     -9330     
- Misses       3161   13610    +10449     
+ Partials      545      31      -514     
Files with missing lines Coverage Δ
src/atomate2/ase/md.py 77.71% <100.00%> (+2.71%) :arrow_up:
src/atomate2/vasp/flows/electrode.py 0.00% <0.00%> (-90.00%) :arrow_down:
src/atomate2/vasp/jobs/base.py 0.00% <0.00%> (-77.78%) :arrow_down:
src/atomate2/common/schemas/neb.py 73.68% <73.68%> (ø)
src/atomate2/vasp/sets/core.py 0.00% <0.00%> (-82.07%) :arrow_down:
src/atomate2/utils/testing/vasp.py 0.00% <0.00%> (-79.85%) :arrow_down:
src/atomate2/vasp/run.py 0.00% <0.00%> (-39.35%) :arrow_down:
src/atomate2/common/jobs/neb.py 0.00% <0.00%> (ø)
src/atomate2/vasp/sets/approx_neb.py 0.00% <0.00%> (ø)
src/atomate2/forcefields/neb.py 0.00% <0.00%> (ø)
... and 7 more

... and 160 files with indirect coverage changes

codecov[bot] avatar Dec 12 '24 05:12 codecov[bot]

Hi @esoteric-ephemera,

Any news on this PR ? Is there anything left to be done or is it "just" (sometimes "just" is a lot of work) resolving conflicts and getting a review and merge by maintainers ?

davidwaroquiers avatar Jun 18 '25 08:06 davidwaroquiers

Just requires a new emmet-core release, which I can try to get started this week. Will try to get this sync'ed up with main and keep it moving, thanks for the reminder!

esoteric-ephemera avatar Jun 18 '25 15:06 esoteric-ephemera

Just requires a new emmet-core release, which I can try to get started this week. Will try to get this sync'ed up with main and keep it moving, thanks for the reminder!

Thanks! If there is anything in which you would need help, maybe we can dedicate some effort on our side.

davidwaroquiers avatar Jun 19 '25 07:06 davidwaroquiers

@JaGeo should be ready to merge in. There are a few simple tests of the workflows in the PR. From more extensive tests (especially of the VASP Approx / NEB) in our group, these seem to be performant. Avoiding adding more for now since these are longer-running flows

Over time, we may want to modify the document schema a bit (I've already found at least one spot where metadata could be improved) but I would lean towards merging in since these are only additions

@davidwaroquiers I'll release a new version after merging

esoteric-ephemera avatar Jul 03 '25 15:07 esoteric-ephemera

@gpetretto thanks for reviewing and testing!

JaGeo avatar Jul 03 '25 17:07 JaGeo

Thanks @gpetretto! Have drafted up the ASE NEB from endpoints maker, still needs to be incorporated with the forcefields. I'll get back to this next week

esoteric-ephemera avatar Jul 03 '25 22:07 esoteric-ephemera

@JaGeo should be ready to merge in. There are a few simple tests of the workflows in the PR. From more extensive tests (especially of the VASP Approx / NEB) in our group, these seem to be performant. Avoiding adding more for now since these are longer-running flows

Over time, we may want to modify the document schema a bit (I've already found at least one spot where metadata could be improved) but I would lean towards merging in since these are only additions

@davidwaroquiers I'll release a new version after merging

Hi @esoteric-ephemera

Thanks a lot for putting all of this together!

davidwaroquiers avatar Jul 04 '25 08:07 davidwaroquiers

@gpetretto @JaGeo I think I've addressed all comments - any objections to merging?

esoteric-ephemera avatar Aug 06 '25 09:08 esoteric-ephemera

Also @fraricci I've added the checks you suggested for NPTBerendsen, plus a test for correctly setting the MD kwargs

esoteric-ephemera avatar Aug 06 '25 10:08 esoteric-ephemera

@JaGeo noticed I had some typos in the MACE + explicit D3 calculator, fixed those, added a better test, and am going to merge this PR

esoteric-ephemera avatar Aug 11 '25 18:08 esoteric-ephemera

Sound good @esoteric-ephemera !

JaGeo avatar Aug 11 '25 18:08 JaGeo