Skip to content

Adding material decay gamma dose#3647

Closed
shimwell wants to merge 10 commits intoopenmc-dev:developfrom
shimwell:adding-material-decay-gamma-dose
Closed

Adding material decay gamma dose#3647
shimwell wants to merge 10 commits intoopenmc-dev:developfrom
shimwell:adding-material-decay-gamma-dose

Conversation

@shimwell
Copy link
Copy Markdown
Member

@shimwell shimwell commented Nov 20, 2025

Description

This PR adds a simplified gamma dose for a material. This allows users to find the dose at a distance from a gamma emitting material.

In this implementation I sample the gammas but I would be interested knowing if there is a way to do this without sampling the gammas.

The user can provide a distance from the material to get dose in pSv or the distance is assumed to be at the surface of a sphere of the material.

@tokasamwin and @samha-pf I think this feature will make comparing activated materials easier.

Fixes # (issue)

Checklist

  • I have performed a self-review of my own code
  • 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)

@GuySten
Copy link
Copy Markdown
Contributor

GuySten commented Nov 20, 2025

You can avoid sampling in the special (but very common) case of a discrete gamma distribution.

Comment thread openmc/material.py Outdated
# Get dose coefficients for isotropic geometry
energy_bins, dose_coeffs = openmc.data.dose_coefficients(
particle="photon",
geometry="ISO"
Copy link
Copy Markdown
Contributor

@vitmog vitmog Nov 21, 2025

Choose a reason for hiding this comment

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

@shimwell Would not it be better to use instead the antero-posterior geometry

Suggested change
geometry="ISO"
geometry="AP"

as the conservative one for safety analysis purposes?

My doubt is based on the two following aspects. Firstly, the particle field produced by a point source in vacuum is definitely mono-directional rather than isotropic. Secondly, for any location from outside of even an areal or convex volumetric source region, the direction function will be something intermediate between $\Phi^p_{\Omega}(\mathbf{\Omega}) = C/|\mathbf{\Omega} \cdot \mathbf{d}_s|$ (on source boundary) and mono-directional $\Phi^s_{\Omega}(\mathbf{\Omega}) = C \delta(\mathbf{d}_s)$ (far away from source), where $\mathbf{d}_s$ is the source surface normal vector to the location. Thus, for such as quite common practical cases the flux distribution will be closer to the mono-direction case.

On the other hand, isotropic flux can be only obtained for a some surrounded by source(-es) location, but the distance parameter seems being not applicable in this case.

I hope this discussion helps but please excuse me if I misunderstood the solved problem.

Best regards,
Vitaly

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Thanks for the comments.

For ISO vs AP. I have no preference, we can change this to AP. Perhaps this can be exposed as a user argument if people want to change it further.

I have not understood fully the other point. However I am keen to remove the distance parameter. Are you able to suggest code edits that make this possible?

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.

At the second point, I just meant that the "ISO" value conflicts in meaning with the distance parameter because isotropic irradiation is impossible as moving away from the source. It is almost the same as the first point.

About suggestion, I regretfully cannot suggest a change of the algorithm without clear understatement of the problem context. From my practice, such a comparison of activated materials can be used for the comparison of required shielding parameters. But that cannot be done satisfactory without a solution of some transport problem with consideration of at least the source and shield materials.

There are big (and often principal) differences between the "outside dose rate per source gamma" energy dependencies for a bare laboratory point source, some activated steel element inside a concrete cask, and the same activated steel element inside a lead cask. For example, the cobalt-60 gamma radiation fraction of contribution to the total dose can be low in comparison with other steel activation product nuclides, but behind more than just several centimeters thick steel shield it always absolutely predominates and the simple weighting of the source spectra with dose coefficients for non-collided radiation does not provide any useful information.

Copy link
Copy Markdown
Member Author

@shimwell shimwell Nov 21, 2025

Choose a reason for hiding this comment

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

Thanks for the comments
I have changed to AP and proposed some extra description to the doc string to inform users it is an approximation

@yrrepy
Copy link
Copy Markdown
Contributor

yrrepy commented Nov 21, 2025

re: I would be interested knowing if there is a way to do this without sampling the gammas.

Can't we use Gamma-Ray Dose Constants to do that?
(been thinking about it myself, and I think they'd be super useful for rapid evals)
https://www.nrc.gov/docs/ML1121/ML11210B521.pdf page 10
http://www.iem-inc.com/information/tools/gamma-ray-dose-constants
https://www.osti.gov/servlets/purl/1607209 <--- these guys use ICRP116 and AP
https://www.osti.gov/biblio/6246345

This way it depends solely on the nuclide inventories.

@shimwell
Copy link
Copy Markdown
Member Author

shimwell commented Nov 21, 2025

re: I would be interested knowing if there is a way to do this without sampling the gammas.

Can't we use Gamma-Ray Dose Constants to do that? (been thinking about it myself, and I think they'd be super useful for rapid evals) https://www.nrc.gov/docs/ML1121/ML11210B521.pdf page 10 http://www.iem-inc.com/information/tools/gamma-ray-dose-constants https://www.osti.gov/servlets/purl/1607209 <--- these guys use ICRP116 and AP https://www.osti.gov/biblio/6246345

This way it depends solely on the nuclide inventories.

This is super interesting, shall we put this in as a separate alternative PR. Could also be nice to compare answers for each option. I do really like your proposed idea, I guess it would be super quick to calculate. It looks like these Gamma-Ray Dose Constants use a distance of 1m.

@shimwell
Copy link
Copy Markdown
Member Author

You can avoid sampling in the special (but very common) case of a discrete gamma distribution.

Thanks for this suggestion, I have had a go at this.

Comment thread openmc/material.py Outdated
@yrrepy
Copy link
Copy Markdown
Contributor

yrrepy commented Nov 21, 2025

I've create an 'issue' feature request for this
I think you can change the distance and mass, just need data on air attenuation.

re: I would be interested knowing if there is a way to do this without sampling the gammas.
Can't we use Gamma-Ray Dose Constants to do that? (been thinking about it myself, and I think they'd be super useful for rapid evals) https://www.nrc.gov/docs/ML1121/ML11210B521.pdf page 10 http://www.iem-inc.com/information/tools/gamma-ray-dose-constants https://www.osti.gov/servlets/purl/1607209 <--- these guys use ICRP116 and AP https://www.osti.gov/biblio/6246345
This way it depends solely on the nuclide inventories.

This is super interesting, shall we put this in as a separate alternative PR. Could also be nice to compare answers for each option. I do really like your proposed idea, I guess it would be super quick to calculate. It looks like these Gamma-Ray Dose Constants use a distance of 1m.

Copy link
Copy Markdown
Contributor

@vitmog vitmog left a comment

Choose a reason for hiding this comment

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

To close this review: my minor suggestion was implemented. Thanks for your attention @shimwell.

UPD. I am sorry for this irrelevant to the thread comment, I just tried to close the accidentally opened review.

@shimwell
Copy link
Copy Markdown
Member Author

shimwell commented Mar 2, 2026

#3700 is getting merged 🎉 so we can close this PR

@shimwell shimwell closed this Mar 2, 2026
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