sd2" />

SHIELDOSE-2

Model API name: sd2

Calculates, for arbitrary proton and electron incident spectra, the dose absorbed in small volumes of different detector materials for planar and spherical aluminium shield geometries.

Version: v2


Model example


import matplotlib.pyplot as plt


from nom_client.nom_client import NoMClient

nom_client = NoMClient("SD2 model example")

sapre_model = nom_client.get_model('sapre')
sapre_model.set_params(orbitType="GEN")
sapre_result = nom_client.run_model(sapre_model)
print(sapre_result)

# Running trapped radiation model
ap8ae8_model = nom_client.get_model('ae8ap8')
ap8ae8_model.set_external_input(external_input_name="trajectory", external_input=sapre_result)
ap8ae8_results = nom_client.run_model(ap8ae8_model)
print(ap8ae8_results)

# Running GCR model
creme_96_gcr_model = nom_client.get_model('creme-96-gcr')
creme_96_gcr_model.set_external_input(external_input_name="trajectory", external_input=sapre_result)
creme_96_gcr_results = nom_client.run_model(creme_96_gcr_model)
print(creme_96_gcr_results)

# Running SEP model
sapphire_total_fluence_model = nom_client.get_model('sapphire-total-fluence')
sapphire_total_fluence_model.set_external_input(external_input_name="trajectory", external_input=sapre_result)
sapphire_total_fluence_results = nom_client.run_model(sapphire_total_fluence_model)
print(sapphire_total_fluence_results)

# Running SD2 model
sd2_model = nom_client.get_model('sd2')
sd2_model.set_external_input(external_input_name="trappedParticleSpectrum", external_input=ap8ae8_results)
sd2_model.set_external_input(external_input_name="solarParticleSpectrum", external_input=sapphire_total_fluence_results)
sd2_model.set_external_input(external_input_name="gcrSpectrum", external_input=creme_96_gcr_results)
sd2_model.set_params(detectorMaterial=1, shieldDepthValues=1,
                     userShieldDepths=[0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1, 1.5, 2,
                                       2.5, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20])
sd2_result = nom_client.run_model(sd2_model)
print(sd2_result)

# Explore results
dose_depth_curve = sd2_result.get_model_result_by_name(result_name="dose_depth_curve")
thickness = dose_depth_curve['thickness'].values
absorbed_dose = dose_depth_curve['absorbed_dose'].values

plt.rcParams['figure.figsize'] = [15, 10]
plt.rc('font', size=18)

plt.loglog(thickness.T, absorbed_dose.T, '-', linewidth=2.0, markersize=12.0,
           label=dose_depth_curve['source'].values.squeeze().T)


plt.title('Dose depth curve', fontsize=18)
plt.grid(True)
plt.legend(bbox_to_anchor=(0.95, 0.95), loc=1, borderaxespad=0., fancybox=True, fontsize=18, shadow=True)
plt.xlabel("Thickness (mm)")
plt.ylabel("Absorbed dose (rad(Si))")
plt.show()

         
Model references

No references