Skip to content

Adding strahlenschutzverordnung waste limits#3898

Open
shimwell wants to merge 2 commits intoopenmc-dev:developfrom
shimwell:adding-Strahlenschutzverordnung-waste-limits
Open

Adding strahlenschutzverordnung waste limits#3898
shimwell wants to merge 2 commits intoopenmc-dev:developfrom
shimwell:adding-Strahlenschutzverordnung-waste-limits

Conversation

@shimwell
Copy link
Member

@shimwell shimwell commented Mar 24, 2026

Summary

  • Add German Strahlenschutzverordnung (StrlSchV) 2018 Anlage 4 clearance limits as predefined options for Material.waste_disposal_rating()
  • Support 8 clearance pathways covering unrestricted release, landfill disposal, incineration, metal recycling, soil, and building rubble
  • Clearance values are compared in Bq/g units (German convention), extending the existing Ci/m³ support for NRC/Fetter limits

Details

The German radiation protection regulation (StrlSchV 2018, Anlage 4, Tabelle 1) defines nuclide-specific clearance values for releasing radioactive materials from regulatory control. A material passes clearance when the sum-of-fractions (activity/limit for each nuclide) is ≤ 1.0 — the same methodology already used by waste_disposal_rating() for NRC and Fetter limits.

This PR adds 8 predefined limit sets, each corresponding to a column in Anlage 4:

Limit name Pathway Column
StrlSchV_unrestricted Unrestricted clearance of solid/liquid substances 3
StrlSchV_metal_recycling Metal scrap recycling 14
StrlSchV_landfill_100 Landfill disposal, facility receiving ≤100 Mg/a 8
StrlSchV_landfill_1000 Landfill disposal, facility receiving ≤1000 Mg/a 10
StrlSchV_incineration_100 Incineration, facility receiving ≤100 Mg/a 9
StrlSchV_incineration_1000 Incineration, facility receiving ≤1000 Mg/a 11
StrlSchV_soil Soil surface clearance 7
StrlSchV_rubble Building rubble clearance (>1000 Mg/a) 6

Usage:

rating = mat.waste_disposal_rating(limits='StrlSchV_unrestricted')
breakdown = mat.waste_disposal_rating(limits='StrlSchV_metal_recycling', by_nuclide=True)

parse_strlschv.zip

The clearance values were extracted from the official German legal database (https://www.gesetze-im-internet.de/strlschv_2018/anlage_4.html). A parser script
(parse_strlschv.py) is attached to this PR for reproducibility and future updates to the regulation.

Note on + (daughter equilibrium) entries: Some nuclides in Anlage 4 are listed with a + suffix (e.g., Cs-137+), indicating that the clearance value accounts for short-lived daughter nuclides in secular equilibrium. Of the 91 +-only parents in the table, 47 have daughters that also appear as independent entries, which could lead to some degree of double-counting in the sum-of-fractions calculation. The daughter limits tend to be much less restrictive than the parent + limits, so their individual contributions to the sum are minor. A follow-up PR will address this by using the depletion chain file to identify and exclude daughter nuclides already covered by a parent's + clearance value. I want to add support for this but I don't want to make this PR to big, so I offer to follow this PR on this. I would also be happy to follow up this PR with a PR that moves Fetter and StrlSchV data to a datafile perhaps in the data folder.

Fixes # (issue)

Checklist

  • I have performed a self-review of my own code
    - [ ] I have run clang-format (version 18) 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)

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.

2 participants