How to simulate a uniform radiation field where the same surface flux exists

Hi, everyone.
I am a designer of radiation shielding structures. In the past, I used to focus on Experience based design and experimentation, and just started learning how to use Monte Carlo simulation to evaluate the shielding effect of complex structures.
I used point sources for radiation shielding capacity evaluation, but now the simulation object needs to be replaced with a shielded box with a special structure. I hope to eliminate the influence of the source location on the shielding effect, so as to evaluate the impact of some key dimensions on shielding effectiveness. Therefore, I want to construct a uniform radiation source within a certain space where the same surface flux exists, but I don’t know how to do it.
Does anyone know how to build the field with a known flux of φ and a photon energy of 1.25 MeV.
In addition, when evaluating the shielding effect of the shielding box, except the flux of the internal cavity, I also want to use more common standards such as Gy to make it easier for others to understand. However, the box is designed to hold electronic components, the dose is difficult to obtain. So I want to use air-kerma to measure the radiation intensity of a cavity. Is this a reasonable assumption? And as I know, in OpenMC has function openmc.data.dose_coefficients provides data to calculate flux as dose or air-kerma as dose. Can I calculate flux as air-kerma with OpenMC?

I tried to create such a uniform field using a thin spherical shell source, but I found that the flux would change with the size of tally. The counting result has been divided by the volume of tally. When the volume is less than half the size of the spherical source, the error is still acceptable, but when the volume increases further, the error becomes very large. Why is this phenomenon happening.

You can calculate a dose in OpenMC by applying an energy function filter to a flux tally. As you’ve pointed out, we have the openmc.data.dose_coefficients function which provides effective dose coefficients from ICRP-116, but if you have other dose coefficients you want to apply the procedure is basically the same:

dose_tally = openmc.Tally()
dose_tally.scores = ['flux']
multiplier = openmc.EnergyFunctionFilter(energies, values)
dose_tally.filters = [multiplier]

where energies and values are lists or numpy arrays of the energies and conversion coefficients. In the case where you’re using the ICRP-116 data, these are determined for you:

energies, values = openmc.data.dose_coefficients(...)

defining a sperical shell source should by no means result in constant flux inside I think?
However that would also depent on whether the angle to the normal is free, that is isotropic from all surface points.Next I ll try in mcnp…

I stand corrected: a spherical shell source with its normal defined inwards and isotropic angle distribution does indeed result in uniform flux within the sphere.
In mcnp setting the direction parameter in the source definition to -1 instead of using a isotropic angle AND surface normal=-1 resulted (of course) in a non uniform flux.