AlanFord / ZapMeNot

Python library for simple point-kernel photon shielding analyses
GNU General Public License v3.0
10 stars 3 forks source link

ValueError: Photon energy is out of range when using "lead" as buildup_factor_material #14

Closed ThePeer closed 1 year ago

ThePeer commented 1 year ago

For some nuclides (alpha and beta emitters?) "ValueError: Photon energy is out of range" when using "lead" as buildup_factor_material. The issue does not appear when using e.g. "iron" as buildup_factor_material using same isotopes. The error can be replicated by modifying the test example as follows: from zap_me_not import model,source,shield,detector,material

sample_sink = model.Model()

create the source

a_source = source.PointSource(x=0, y=0, z=0) a_source.add_isotope_curies('Tc-99',2.1) a_source.add_isotope_curies('Cs-137',0.3) sample_sink.add_source(a_source)

define the location where the dose will be calculated

exposure_detector = detector.Detector(x=200, y=40, z=40) sample_sink.add_detector(exposure_detector)

define a shield and add it to the model

first_shield = shield.SemiInfiniteXSlab('lead', x_start=12, x_end=32.1) sample_sink.add_shield(first_shield)

define a second shield and add it to the model

second_shield = shield.SemiInfiniteXSlab('iron', x_start=32.1, x_end=33.1) sample_sink.add_shield(second_shield)

declare which shield material will be used for buildup factor calculations

buildup_factor_material = material.Material('lead') sample_sink.set_buildup_factor_material(buildup_factor_material)

(optionally) declare a meterial to fill all non-defined regions

sample_sink.set_filler_material('air')

calculate exposure in mR/hr

exposure = sample_sink.calculate_exposure() print('The exposure is ', exposure, ' mR/hr')

AlanFord commented 1 year ago

It appears that the buildup factor data for lead provided in ANSI/ANS 6.4.3 do not extend below 30 keV. Hence the low energy photons from Tc-99 are out of range for the lead buildup factor. Possible solutions to be evaluated in a patch will include extrapolating the buildup factors or using the lower energy data of the existing buildup factors. The former may be somewhat non-physical. The latter may be problematic if only low energy photons are present in the source.

AlanFord commented 1 year ago

The ANSI/ANS 6.4.3 lead buildup factor parameters at 30 keV have been extended for use down to 15 keV. This is consistent with general industry practice, given the data available in the ANSI standard.