Skip to content

Aqueous Iron Chloride Oxidation States#360

Merged
ElliottKasoar merged 26 commits intoddmms:mainfrom
PKourtis:oxidation_states_clean
Apr 28, 2026
Merged

Aqueous Iron Chloride Oxidation States#360
ElliottKasoar merged 26 commits intoddmms:mainfrom
PKourtis:oxidation_states_clean

Conversation

@PKourtis
Copy link
Copy Markdown
Contributor

@PKourtis PKourtis commented Feb 11, 2026

Pre-review checklist for PR author

PR author must check the checkboxes below when creating the PR.

Summary

Benchmarks how well models capture the different oxidation states of Iron.

Main tests compares the O-Fe RDFs of Fe+2 and Fe+3 by running 20ps NVT MD for Fe 2Cl and Fe 3Cl ions in water.

Linked issue

Resolves #264

Progress

  • Calculations
  • Analysis
  • Application
  • Documentation

Testing

Tested on mp0-b3, currently running omol-0 MD.

New decorators/callbacks

Added new option to the plot_scatter decorator to remove markers from the plots.

@alinelena alinelena added lr new benchmark Proposals and suggestions for new benchmarks labels Feb 11, 2026
Copy link
Copy Markdown
Collaborator

@ElliottKasoar ElliottKasoar left a comment

Choose a reason for hiding this comment

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

Thanks for this! I need to test is properly, but from a first pass of the code it looks great!

I know they're relatively small, but are you happy for me to upload the data start files to the S3 bucket, just to slim things down?

Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py Outdated
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py
Comment thread ml_peg/analysis/physicality/oxidation_states/analyse_oxidation_states.py Outdated
Comment thread ml_peg/analysis/physicality/oxidation_states/metrics.yml Outdated
Comment thread ml_peg/analysis/physicality/oxidation_states/metrics.yml
Comment thread ml_peg/analysis/utils/decorators.py Outdated
Comment thread ml_peg/models/models.yml
Comment thread pyproject.toml Outdated
Comment thread uv.lock
Comment thread ml_peg/calcs/physicality/oxidation_states/data/Fe2Cl_start.xyz Outdated
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py Outdated
@ElliottKasoar
Copy link
Copy Markdown
Collaborator

I think the plot titles/axes aren't quite working.

Since the plots are unique to each model, it would also be nice to include the model name somewhere in the title, if possible.

image

@PKourtis PKourtis force-pushed the oxidation_states_clean branch from 9bba7fa to fb343dc Compare February 19, 2026 13:25
@ElliottKasoar ElliottKasoar force-pushed the oxidation_states_clean branch from 642ad10 to b8e9dc4 Compare March 12, 2026 18:25
Copy link
Copy Markdown
Collaborator

@ElliottKasoar ElliottKasoar left a comment

Choose a reason for hiding this comment

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

Thanks again for this, @PKourtis!

I've rebased and tidied up a little, plus less a couple of suggestions, mainly

Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py Outdated
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py Outdated
Comment thread uv.lock
Copy link
Copy Markdown
Collaborator

@ElliottKasoar ElliottKasoar left a comment

Choose a reason for hiding this comment

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

Just wanted to flag that I get warning:

NPT: Setting the center-of-mass momentum to zero (was 8.8567 -10.9324 6.12114)

I think this is unavoidable with the standard ASE NPT (now known as MelchionnaNPT in ASE, although still referred to just as NPT in janus-core).

This seems to have been around for a while (since at least ASE 3.22), so I don't think the behaviour should be too unexpected, just wanted to check in case there's a reason the input has a non-zero momentum before this.

@PKourtis PKourtis force-pushed the oxidation_states_clean branch from f51e36e to c81facd Compare April 16, 2026 15:44
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py Outdated
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py Outdated
Copy link
Copy Markdown
Collaborator

@ElliottKasoar ElliottKasoar left a comment

Choose a reason for hiding this comment

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

Thanks for addressing all the suggestions, @PKourtis!

Other than the tiny docstring fixes, I think the final thing is just adding some sort of documentation.

We can merge this can come back to it if you have no time right now, but if we could do it all together it would be great, otherwise it's easy to lose track of things.

Comment thread docs/source/user_guide/benchmarks/physicality.rst Outdated
Comment thread docs/source/user_guide/benchmarks/physicality.rst Outdated
Comment thread ml_peg/calcs/physicality/oxidation_states/calc_oxidation_states.py Outdated
@PKourtis PKourtis force-pushed the oxidation_states_clean branch from ee65b53 to 59054a7 Compare April 28, 2026 11:27
Copy link
Copy Markdown
Collaborator

@ElliottKasoar ElliottKasoar left a comment

Choose a reason for hiding this comment

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

Looks great, thank you again for all the work, @PKourtis!

@ElliottKasoar ElliottKasoar merged commit 2f37b43 into ddmms:main Apr 28, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lr new benchmark Proposals and suggestions for new benchmarks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Aqueous Iron Chloride Oxidation States Benchmark

3 participants