Skip to content

Add methods on Material class for waste disposal rating / classification - #3366

Merged
eepeterson merged 8 commits into
openmc-dev:developfrom
paulromano:waste-classify
Apr 11, 2025
Merged

eepeterson merged 8 commits into
openmc-dev:developfrom
paulromano:waste-classify

Conversation

@paulromano

@paulromano paulromano commented Apr 6, 2025 •

Copy link
Copy Markdown
Contributor

Description

This PR adds waste_disposal_rating and waste_classification methods on the Material class that will provide the waste disposal rating (numeric value to be compared to 1.0) and the waste classification of a material based on the procedure and activity limits outlined in NRC regulations (10 CFR 61.55), respectively. Because the NRC regulations are missing many long-lived radionuclides that can be produced from fusion systems, for these applications there is a separate set of specific activity limits that have been recommended in a 1990 paper by Fetter et al.. A recent paper by Laila El-Guebaly mentions that the Fetter limits have been approved by the US Fusion Safety Standing Committee and recommends evaluating waste classification using both the NRC limits and Fetter limits. While the waste_classification method is specific to NRC regulations, you can use the waste_disposal_rating method to compute a rating for a material based on the Fetter limits. The waste_disposal_rating function also allows a user to pass a dictionary of specific activity limits in case there are other limits they want to use.

I should also note that I've added new option in the get_activity method to use units of Ci or Ci/m³ since the NRC regulations use limits in units of Ci/m³.

Checklist

  • I have performed a self-review of my own code
  • I have run clang-format (version 15) on any C++ source files (if applicable)
  • I have followed the style guidelines for Python source files (if applicable)
  • I have made corresponding changes to the documentation (if applicable)
  • I have added tests that prove my fix is effective or that my feature works (if applicable)

@paulromano
paulromano requested a review from eepeterson April 6, 2025 19:23
@paulromano

Copy link
Copy Markdown
Contributor Author

I should also add -- thanks to @eepeterson for sharing an initial version of a waste classification function based on the NRC regs 🙏

@gonuke

gonuke commented Apr 6, 2025 •

Copy link
Copy Markdown
Contributor

Suggestion: change the Fetter version to be one that takes a dictionary of limits and returns the waste disposal ratio.

There is some history of exploring different limits using this same model for different purposes. The Fetter limits can included as a dictionary available to all users.

ALARA includes a few different limits: https://github.com/svalinn/ALARA/tree/main/data

@eepeterson eepeterson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for putting this together so quickly @paulromano. Just a few small comments initially.

Comment thread openmc/material.py Outdated
Comment thread openmc/material.py Outdated
Comment thread openmc/material.py Outdated
@paulromano

Copy link
Copy Markdown
Contributor Author

Thanks @gonuke and @eepeterson for the reviews! Your comments have been addressed in the latest commit.

Comment thread openmc/material.py Outdated
@paulromano paulromano changed the title Add method on Material class for waste classification Add methods on Material class for waste disposal rating / classification Apr 7, 2025

@gonuke gonuke left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This looks good to me, but just one question on whether there are existing time constants.

Comment thread openmc/waste.py
@paulromano

Copy link
Copy Markdown
Contributor Author

@eepeterson Any further requests for changes or is this good to go?

@eepeterson eepeterson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

tiny typo but otherwise good to go

Comment thread openmc/waste.py Outdated
Comment thread openmc/waste.py Outdated
@jon-proximafusion

Copy link
Copy Markdown
Contributor

Is it worth adding other classification systems? Perhaps the IAEA limits could be used but I notice they are not as detailed as these ones you have used.

@jon-proximafusion

Copy link
Copy Markdown
Contributor

Just wondering as this PR adds units of Ci and Ci/m3 to the get_activity.

All the tests added are using get_activity with Ci/m3

Would it be worth adding one test with Ci units get_activity('Ci')

@gonuke

gonuke commented Apr 11, 2025

Copy link
Copy Markdown
Contributor

Is it worth adding other classification systems? Perhaps the IAEA limits could be used but I notice they are not as detailed as these ones you have used.

Seems like a good follow-on PR to me...

@shimwell shimwell left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for that extra test.

@paulromano

Copy link
Copy Markdown
Contributor Author

@jon-proximafusion I just added tests for Ci and Ci/m3 units. As far as the IAEA guidance, I agree with @gonuke that it would make a nice follow on PR. fwiw, I did skim through it but it wasn't immediately obvious to me where the limits are.

@shimwell

Copy link
Copy Markdown
Member

Yes agreed on the potential follow up PR. I can perhaps do that one. I just remember how we added dose coffiecients and then needed more libraries and we had to restructure the code to allow that. I think this is another feature that is likely to have additional waste definitions desired. Perhaps the french one for ITER would be nice. Follow up PR is good with me.

@eepeterson eepeterson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sorry for the delay, just needed a few minutes to sit down and double check all the limits. Only one correction.

Comment thread openmc/waste.py Outdated
Co-authored-by: Ethan Peterson <eepeterson3@gmail.com>

@eepeterson eepeterson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM - will merge when CI finishes

@eepeterson
eepeterson enabled auto-merge (squash) April 11, 2025 19:37
@eepeterson
eepeterson merged commit c1a4d43 into openmc-dev:develop Apr 11, 2025
@paulromano
paulromano deleted the waste-classify branch April 13, 2025 21:09
apingegno pushed a commit to apingegno/openmc that referenced this pull request May 7, 2026
…ion (openmc-dev#3366)

Co-authored-by: Ethan Peterson <eepeterson3@gmail.com>
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.

5 participants