K-eff problem with two different geometry

Hello everyone, i obtained the same k-eff in this two geometry:
-The first is with 24 control road (in this file:
24BC.ipynb (388.8 KB))
-The second with 18 control road (in :
18BC.ipynb (497.4 KB))

Why the k-eff are all in the same in all way?

can someone could help me please T-T , it’s a very important project and it doesn’t work

Hi Fandresena, welcome to the openmc forum,
I think some cell regions are overlapping with your core model, so you can make it simpler, such as by defining a complete set of core regions and making the radial reflector exclude those regions. You can also choose which region to be excluded from your outer neutron shielding. That’s what will make your model look cleaner and more manageable.

core = (Gcyl | Dech | co1 | co2 | cells_region | he_region | cold_reg)

plan_dessus2 = openmc.ZPlane(z0 =1225)
plan_bas2 = openmc.ZPlane(z0 =-525)
cyl_ref = openmc.ZCylinder(r = 275)
cyl_lim = openmc.ZCylinder(r = 285,boundary_type ='vacuum')

cyl_refl_reg = -plan_dessus2 & -cyl_ref & +plan_bas2
refl_reg = cyl_refl_reg & ~core
isol_reg = ~cyl_refl_reg & ~cells_region # to infinity

reflect = openmc.Cell(fill =graphite_refl, region =refl_reg)
isolat = openmc.Cell(fill =isolateur, region =isol_reg)
reflect.temperature = 600

Also, since the control rod and SAS/KLAK columns are commonly filled with helium during the operation, you can fill those cells with helium coolant

        reg = -p1 & +p2 & -p3 & +p4 & +plan_finbc & -plan_dessus1
        # cell = openmc.Cell(region=reg)
        cell = openmc.Cell(fill=caloporteur_f, region=reg)
        cell.temperature=600

Also, sorry I cant do the simulation on my side since our PC are currently in used.

Hi, thanks for your help i try it and you are right in cells overlaping. Another questions in POST-PROCESSING, with the following tallies:
tallyforSourceCalculation = openmc.Tally(name=‘SourceCalculation’)
tallyforSourceCalculation.filters = [cellfilter]
tallyforSourceCalculation.scores = [
‘flux’,
‘fission’,
‘nu-fission’,
‘kappa-fission’,
‘fission-q-recoverable’,
‘heating’
]
when trying:
sp = openmc.StatePoint(‘statepoint.200.h5’)

— keff

keff = sp.keff.nominal_value

— Source tally

source_tally = sp.get_tally(name=‘SourceCalculation’)

value_fission = source_tally.mean[0,0,source_tally.get_score_index(‘fission’)]
value_nufission = source_tally.mean[0,0,source_tally.get_score_index(‘nu-fission’)]
value_kappa = source_tally.mean[0,0,source_tally.get_score_index(‘kappa-fission’)]

nu = value_nufission / value_fission
kappa = value_kappa / value_fission

eV_to_J = 1.602176634e-19
power_model = 250e6 # 250 MW

source_multiplier = (power_model/(kappaeV_to_J))(nu/keff)
fissions_per_second = value_fission * source_multiplier

print(“Fissions par seconde :”, fissions_per_second)

Firstly why did we do this before:
nu = value_nufission / value_fission
kappa = value_kappa / value_fission
Why didn’t we use the result in value_nufission and value_kappa

And if i try to normalize heating, I must do :
value_heating = source_tally.mean[0,0,source_tally.get_score_index(‘heating’)]
heating = value_heating/value_fission
heating_norm = power_model/(heating*eV_to_J)

I need to clarify that the source calculation tally I added to the notebook was only applicable for the fission system, since I assume that the power generation of the core being modeled was mainly induced by fission.

about,

Firstly why did we do this before:
nu = value_nufission / value_fission
kappa = value_kappa / value_fission
Why didn’t we use the result in value_nufission and value_kappa

Since I used nu-fission and kappa-fission score in my calculation, which was a product of nubar and kappa multiplied by fission rate, to find nu-bar and kappa, I need to divide both values by fission rate.

Then, about your approach to calculate the source by dividing the thermal power by heating-local tally, you don’t need to divide the score by fission before, because the value of heating local already has a unit of eV/source. If you divide that value by the fission rate, you need to add the fission term, such as multiplying by the fraction of nu/keff to correct for the number of neutrons produced and the multiplication factor of the core model being developed.
You will find that the sources are quite similar when using the Power/(direct value of LocalHeating tally x eV_to_J), and the Power/(local heating x eV_to_J) * (nu/keff)
You can see the details in the documentation, Normalization of Tally Results

And another question, when we normalize, for example here in a power= 250MW, and after obtaining the value of fission_per_second: this value is the necessary number of fission to produce 250 MW?

I think the physical meaning of the power/energy per fission is how many fissions are needed to achieve that amount of power if the power just came from fission. In reality, the thermal power could also come from the fission fragment carrying portion of energy from fission or other radiation, such as gamma rays, either prompt or through a decay process, interacting with materials. On the other hand, the tool was solving various physical phenomena with a specific method, which made us need to make sure that the calculated version of “energy per fission” was defined as the total energy being generated through fission. Besides, other reactions could also generate thermal power, such as capture reaction, making the energy generated by the core not only come from fission but also from other types of reactions.

Also, you need to know that the source needed for tally normalization is not the rate of fission, but the number of particles becoming the source for the system. With OpenMC, you can follow the documentation that uses the “local-heating” score to find the energy being generated for each source, then divide the power by this score to get the source. Another approach is also described in the documentation. Some of the discussion in forum also mention other approach, such as a system with non fissile material but the radioisotope decay (activity) known.

What if I takes the difference beetween kappa-fission and heating-local, what should i do?

Most of the time, I get a higher heating local compared to kappa because the heating local also accounts for other reactions contributing to heat. I tried other scores to compare, such as

kappa fission, 193.620 MeV per fission
fission Q recoverable, 194.246 MeV per fission
heating local, 201.021 MeV per fission
heating (neutron only), 181.234 MeV per fission
I haven't checked the heating caused by photon

Since almost all values were close to the classic 200MeV energy per fission of U235, I think you could use them. The only difference is that when you use a higher energy per fission, such as one from heating local, you will get a slightly lower source value to use for tally normalization. That will lower your reaction rate and neutron flux slightly.

I try to obtain the number of fission per second, so i think that with kappa-fission, i can obtain it and with heating local i can explain in the project that all the thermal energy whom we obtained inside the reactor is not only by the fission but also with some other reaction.

I think that would have worked, but, just to clarify, the unit could be confusing when you try to find the reaction rate.
In general, the core thermal power in energy/sec will be equal to SIG fission[cm-1] × flux[#/cm2-sec] × core volume [cm3] × kappa [energy/#].

In your case, the fission reaction rate with units of #fission reaction/sec will come from SIG fission × flux × core volume. So you need to find the kappa [energy/#], and divide the core power by kappa to find the fission rate with unit of #fission reaction/sec.

But, in monte carlo, without normalizing factor, the tally scores mostly have the unit of something/source. i.e., the flux score is a product of flux [#/cm2-sec]/source [#/sec] * volume [cm3], so the flux score unit will be flux-cm for each source. To find the flux, you need to multiply the tally value by the source [#/sec] and divide it by the region volume.

For the kappa fission score, it was a product of SIG fission [cm-1] × flux[#/cm2-sec]/source[#/sec] × core volume [cm3] × kappa [energy/#], which is energy/sec per each source. So dividing power by kappa fission score will only get you a source value based on kappa, not the actual fission rate.

You can compare that to power divided by kappa using kappa [energy/#] that was a product of dividing kappa fission score by fission score. The fission score was a product of SIG fission [cm-1] × flux[#/cm2-sec]/source[#/sec] × core volume [cm3] with unit of #fission/sec per source, or simply multiply the fission score tally by the source.

Hello, sorry for this questions? like you told, i should have approximately the same value but i didn’t have this :


the program are in the following files : 12BC.ipynb (517.8 KB)
Another question, it is possible to have the heating_per second to?

Hi fandresena,
Just to make sure, is the fk it the normalization factor produced by your core power/kappa fission score [kappa*fissionrate], while the fhl is for the product of core power/heating local score [heatinglocal rate]?

If you compare the kappa fission score to the heating local score, which one is higher? Most of the time, in my case, the heating local score was higher than kappa fission but not that much because most of the energy comes from fission in my case. The slight difference comes from the heating induced by other interactions besides the fission reaction. This makes the normalization factor come from the kappa fission score, higher than the one from heating local, but if you check the total core power, there is slight difference since both normalization factor came from the same approach, f = power divide by energy/source (either energy come from kappa fission or energy from heating local).

Then, by multiplying the fission score to the normalization, in my case, the fission rate produced by kappa fission normalization factor will be higher since it assumes that the whole core power is produced only by the fission reaction with kappa energy for each fission. When utilizing the normalization factor from local heating, the fission rate will be lower since the normalization factor is lower compared to the normalization factor from kappa fission.

one think I also notice in my case scenario that the heating score has a substantially lower value compared to the heating local score and kappa fission score, and I think it comes from the energy being tallied with the heating score only accounting for the neutron heating without gamma heating, which only activates when we do the coupled neutron & photon calculation. But in general, I didn’t use the heating score and only compared the kappa fission score to the heating local score.

Another question, it’s not false in my programm to extract the energy of one fission by:
Fissionkappa= value_kappa/value_fission and
Fissionhl = value_heat_loc/ value_fission?
-And how to obtain the power in MWth from heating or heating/local because the f factor is in source/s ?

By dividing the kappa fission score by the fission score, you will get the kappa value in eV.
But when you divide the heating local score by the fission score, you are getting the average local heating per fission, with the same unit of eV.
So, both will have the physical meaning of energy per fission, but from 2 different approaches, one with kappa and one with heating local.

To get the core thermal power, you can multiply the heating local score [energy/source] with your source or normalization factor (F), which has the unit of source/sec.
the product will have the unit of energy/source * source/sec = energy/sec = power.

In another correction, you was giving me how to plot the flux and other, but i actually have this problem with the program:

in this file:
demaka.ipynb (737.5 KB)
What are the reason of this error?

Hi Fandresena, sorry for the late response.
Actually, I cant check your model since you use your own triso random position that I didnt have /home/fandresena/Data_pos/postriso.dat, but if I use your old model, the meshplotter script could work.

If you had a hard time on the mesh plotter, I recommend that you try the openmc_regular_mesh_plotter.

I tried that for your kappa XZ in the notebook, or you could also check examples from the github.

I also check for the heating local score on your notebook

24BC.ipynb (1.6 MB)

Thanks for your explanation. Excuse me for this stupid question: what is the best way to approac the number of fission per second between kappa-fission and heating -local? And wen we have the number of fission? this number corresponds to the fission of U-235 or include thefission by the transmutation of U-238 to Pu-239?

I think you can use the heating local score to find the source for normalization, because heating local accounts for heating that comes from other interactions, not only from fission. By this approach, the source will consistently be lower compared with the kappa fission score or fission q recoverable.

Then, to find the fission reaction rate (fission/sec), you can multiply the fission tally by the source. The proper method to get the fission rate is by using the fission tally score. There is a difference in the fission rate compared to the source for normalization.

Regarding which fission contributed from U235, Pu239, and other HM isotopes, I think you could try to use the nuclide filter on your fission tally. I haven’t tried that feature, but you could double-check the value, because the fission tally should be a sum of fission coming from each heavy metal isotopes, whether it was fast fission of fertile material, or integral fission of fissile material.

And for plotting the distribution of heating (W/cm3) in the core?