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?
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 = sp.keff.nominal_value
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.