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 electron/ion subtables for SpinerEOS and EOSPAC backends #459

Merged
merged 22 commits into from
Feb 10, 2025

Conversation

Yurlungur
Copy link
Collaborator

@Yurlungur Yurlungur commented Jan 31, 2025

PR Summary

This MR is in support of partial ionization and is a follow up to #444 . Here we provide the ability to request tabulated electron and ion equations of state from the sesame database either through SpinerEOS or EOSPAC backends. To do so, I add a new enum

enum class TableSplit {Total, ElectronOnly, IonCold };

which can be passed into the tabulated EOS constructors. Total is the previous behavior and is the default. ElectronOnly is the electron EOS and IonCold is the ion. As before, EOS calls are in terms of ion mass density and either electron or ion temperature. Unlike Zpslit, the ionization fraction is implicit in the model. A given electron temperature automatically implies some ionization fraction. It doesn't need to be passed in.

To enable the electron or ion tables for SpinerEOS, you must also enable them in sesame2spiner by setting

ionization = true

for that material. This will trigger sesame2spiner to interpolate the relevant sub-tables, as well as the total. This is an addition not a replacement. Total tables are still available with ionization=true.

PR Checklist

  • Adds a test for any bugs fixed. Adds tests for new features.
  • Format your changes by using the make format command after configuring with cmake.
  • Document any new features, update documentation for changes made.
  • Make sure the copyright notice on any files you modified is up to date.
  • After creating a pull request, note it in the CHANGELOG.md file.
  • LANL employees: make sure tests pass both on the github CI and on the Darwin CI

If preparing for a new release, in addition please check the following:

  • Update the version in cmake.
  • Move the changes in the CHANGELOG.md file under a new header for the new release, and reset the categories.
  • Ensure that any when='@main' dependencies are updated to the release version in the package.py

@Yurlungur Yurlungur added enhancement New feature or request clean-up Changes that don't affect code execution but make the code cleaner labels Jan 31, 2025
@Yurlungur Yurlungur self-assigned this Jan 31, 2025
@Yurlungur
Copy link
Collaborator Author

While I was at it, I also finally updated sesame2spiner to use vectorized eospac calls, improving performance significantly. A long-overdue change.

Copy link
Collaborator

@jhp-lanl jhp-lanl left a comment

Choose a reason for hiding this comment

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

Looks good

Copy link
Collaborator

@pdmullen pdmullen left a comment

Choose a reason for hiding this comment

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

LGTM! My only comment is, would it be helpful identifying in the docs which subtable corresponds to what SESAME table number?

@Yurlungur
Copy link
Collaborator Author

Done. will merge as soon as tests pass.

@Yurlungur Yurlungur merged commit 129b49f into main Feb 10, 2025
8 checks passed
@Yurlungur Yurlungur deleted the jmm/split-tables branch February 10, 2025 23:34
@Yurlungur Yurlungur mentioned this pull request Feb 13, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clean-up Changes that don't affect code execution but make the code cleaner enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants