Hello everyone,
I’ve been reading lots of discussions about setting source strength and there are still several things I am having trouble fully understanding.
I’m modeling a 60Co irradiator with the aim of calculating dose all over an irradiated crate, but before applying any dose coefficient, I am calculating the flux so that I can compare with other Monte Carlo codes.
As 60Co mainly emits nearly 2 gamma rays per decay (E1=1.173 MeV, p1=0.9985 and E2=1.333 MeV, p2=0.999988), I first used openmc.stats.Discrete with ([E1, E2], [p1, p2]) to set source.energy, but I found out that probabilities were normalized and read as [~0.5, ~0.5] which isn’t correct. Then I defined 2 seperate sources that emit 1 gamma ray each, with the same initial activity but multiplied by p1 or p2 to set source.strength correctly. Also, there are about a hundred sources in my entire setup, that all have a different activity. All of them are defined twice, for each gammay ray.
How do I have to read associated flux tally results ? As I set source.strength for each source, I should finally get results in particle-cm/sec, and then divide them by the tally volume in order to get particle/cm^2-sec. Is that right ? Is there any added coefficient due to the fact I declared 2 separate sources for the 2 gammay rays ?
Thanks in advance,
Marin
Hi Marino, welcome to the community.
The source probability is the relative distribution of a sources particles that is why it normalized it as the tallies will always be in flux/particle. Same with source strength, but it is used to consider multiple sources relative to each other. Therefore, I believe either method you used would be correct as you just need to know the relative flux from each source at target location, if you keep each source as one with probabilities, the source strength will be approximately half the source strength of 2 sources with no probabilities. Ex. lets say from one source location to detector location you have an intensity of 0.4 (40% of particles pass through the detector volume), and from another source location you had an intensity of 0.3. If you defined source one using 1 source definition, a 0.49/0.51 probability similar to like you have, and a source intensity of 10, while the other source is the same probability but a source intensity of 20, the overall flux of each source is as follows (very rough calcs obviously for illustration purposes),
Source intensity * intensity at detector location * probability of one of the emitted radiation =
10* 0.4* 0.49
and
10* 0.4* 0.51
Whereas the other source location would be
20* 0.3* 0.49
and
20* 0.3* 0.51
If you had two sources at the same location to define a single source, with each having a probability of 1, and a source intensity multiplied by the probability to get an updated source intensity, you can see how the math becomes the same. The importance of it all is just find the intensity at the detector location relative to each other.
Normalization will still be from the activity of sources and can be completed in multiple ways depending on how you are collecting the results.
Hi Jarret,
Thank you for having taken the time to reply.
I think I understood now, but that now raises other problems. As I wrote in my first message, there are more than 100 sources in this irradiator, with different activities. You must also know that they can be placed among more than 300 available slots (in order to have control on dose distribution in the irradiated crate). Concerning the spatial mesh, it is not fully decided yet but it will easily reach hundreds of thousands volumes.
In my view, it seems pretty complicated to calculate the contribution of every source, in every single mesh volume, considering those sources all have different positions and activities.
What are the ways you suggested ? I’m for the moment only comparing flux obtained in each mesh volume between codes.
Thank you,
Marin
So I haven’t used OpenMC (i have for MCNP) for multiple sources like you are requiring, but when assigning source strength using
openmc.SourceBase.strength
And if you separate the sources like you did so that each of the resulting photons have their own source and equivalent activity, I believe normalization should be automatic. Like I said I haven’t done this on OpenMC, I would verify using 2 sources within the same simulation and 2 sources each in their own simulations and sum the normalized results of the two simulations and see if it equals the same result as the one simulation. If this doesn’t work for you, I would utilize the python api and write a script that swaps out sources between each run and then adds the results all together after normalization. This would not be too difficult if you are familiar with python.