Hello,
I'm modelling a DT generator in the center of a subcritical assembly, trying to determine fuel enrichments for different keff values.
You can see the geometry in the image below. Everything is graphite, apart from the fuel and there is a big graphite reflector above and below the core. The reflector really prologues the run time, I assume this is due to the long diffusion length, with neutrons spend a lot of time scattering around the graphite reflectors before leakage/absorption.
As keff gets higher the simulation time takes longer and eventually fails (before k=0.97) quoting “Insufficient neutron buffer size.” If I increase nbuf the simulations run, but very slowly and the relative CPU usage is about 600% for omp 10.
I have assumed that the time/memory issue is a result of neutrons scattering around the graphite reflector (the run time is substantially faster with a smaller reflector), so I’ve been messing with tcut (trial and error) to kill the neutrons scattering around in the reflector.
The results I've got seem counter intuitive. I assumed that, with a shorter cut off time, keff will be lower as neutrons in the reflector will be killed, artificially increasing leakage. But keff goes up with lower tcut values, see values below.
Fuel enrich tcut 1e1 (keff) tcut 2e1 (keff) tcut 3e1 (keff) tcut 4e1 (keff) tcut 5e1 (keff) No tcut (keff)
1.1 9.74E01 9.70E01 9.68E01 9.68E01 9.66E01 9.66E01
1.11 9.78E01 9.74E01 9.72E01 9.73E01 9.69E01 9.69E01
1.12 9.82E01 9.77E01 9.75E01 9.76E01 FAIL FAIL
1.13 9.85E01 9.81E01 9.79E01 9.79E01 FAIL FAIL
I was wondering if there was an explanation for this effect (is it Serpent or is it me)?
Also, could you offer some guidance on whether I am taking the correct approach to solving my problem? I'm aiming to get a good result with a shorter run time.
Kind regards,
Matthew
tcut for slow simulations with a lot of scattering
Re: tcut for slow simulations with a lot of scattering
Apologies, the tabs were removed in my makeshift table, probably easier in csv format.
Fuel enrich,tcut 1e1 (keff),tcut 2e1 (keff),tcut 3e1 (keff),tcut 4e1 (keff),tcut 5e1 (keff),No tcut (keff)
1.1,9.74E01,9.70E01,9.68E01,9.68E01,9.66E01,9.66E01
1.11,9.78E01,9.74E01,9.72E01,9.73E01,9.69E01,9.69E01
1.12,9.82E01,9.77E01,9.75E01,9.76E01,FAIL,FAIL
1.13,9.85E01,9.81E01,9.79E01,9.79E01,FAIL,FAIL
Fuel enrich,tcut 1e1 (keff),tcut 2e1 (keff),tcut 3e1 (keff),tcut 4e1 (keff),tcut 5e1 (keff),No tcut (keff)
1.1,9.74E01,9.70E01,9.68E01,9.68E01,9.66E01,9.66E01
1.11,9.78E01,9.74E01,9.72E01,9.73E01,9.69E01,9.69E01
1.12,9.82E01,9.77E01,9.75E01,9.76E01,FAIL,FAIL
1.13,9.85E01,9.81E01,9.79E01,9.79E01,FAIL,FAIL

 Posts: 434
 Joined: Fri Sep 07, 2012 1:43 pm
 Security question 1: No
 Security question 2: 92
Re: tcut for slow simulations with a lot of scattering
Hi Matthew,
I have some general comments on your problem.
1. I would imagine killing the neutrons in the reflector will have a significant effect on the results you are getting.
2. You can use time binning (see the option for set nps) in order to get population control applied to the neutron population to get a more constant simulation load, this should alleviate the problems with the neutron buffer size. With a small enough time binning you will be able to model even super promptcritical systems without problems.
3. The external source simulation mode does not include delayed neutron emission by default, so you'll have to switch it on manually (set delnu 1).
4. In timedependent / external source simulations one should be careful when talking about keffective, which is a parameter existing only in the keigenvalue mode of the transport equation, which is solved in the criticality source mode. For this kind of simulations it is often better to first figure out what you want to calculate (fission neutron production rate / external source rate OR neutron production / neutron loss OR something else?) and then calculate it manually using detectors. I've included below descriptions of some of the estimates given out by Serpent in external source simulations and how they are calculated in external source simulations.
Ville
ANA_KEFF = 1  <wgt0>/(<wgt1> + <wgt0>)
<wgt0> is the weight of the initial source particles.
<wgt1> equals the weight of all fission neutrons produced during the simulation.
As you can see, this is limited to values < 1.0.
COL_KEFF = 1  <wgt0>/(<nsf> + <wgt0>)
<wgt0> is as before
<nsf> is an estimate for the number of produced fission neutrons.
Again, the result is limited to values < 1.0.
IMP_KEFF and ABS_KEFF are the same estimate that are calculated by dividing the tallied fission neutron production with the tallied neutron loss (absorption + leakage).
ABS_KINF
Equal to IMP_KEFF, but the leakage term is dropped from the divisor.
ANA_EXT_K
(Neutron generation n+1 weight) / (Neutron generation n weight)
SRC_MULT = (<wgt1> + <wgt0>)/<wgt0>
where <wgt1> and <wgt0> are defined as previously.
I have some general comments on your problem.
1. I would imagine killing the neutrons in the reflector will have a significant effect on the results you are getting.
2. You can use time binning (see the option for set nps) in order to get population control applied to the neutron population to get a more constant simulation load, this should alleviate the problems with the neutron buffer size. With a small enough time binning you will be able to model even super promptcritical systems without problems.
3. The external source simulation mode does not include delayed neutron emission by default, so you'll have to switch it on manually (set delnu 1).
4. In timedependent / external source simulations one should be careful when talking about keffective, which is a parameter existing only in the keigenvalue mode of the transport equation, which is solved in the criticality source mode. For this kind of simulations it is often better to first figure out what you want to calculate (fission neutron production rate / external source rate OR neutron production / neutron loss OR something else?) and then calculate it manually using detectors. I've included below descriptions of some of the estimates given out by Serpent in external source simulations and how they are calculated in external source simulations.
Ville
ANA_KEFF = 1  <wgt0>/(<wgt1> + <wgt0>)
<wgt0> is the weight of the initial source particles.
<wgt1> equals the weight of all fission neutrons produced during the simulation.
As you can see, this is limited to values < 1.0.
COL_KEFF = 1  <wgt0>/(<nsf> + <wgt0>)
<wgt0> is as before
<nsf> is an estimate for the number of produced fission neutrons.
Again, the result is limited to values < 1.0.
IMP_KEFF and ABS_KEFF are the same estimate that are calculated by dividing the tallied fission neutron production with the tallied neutron loss (absorption + leakage).
ABS_KINF
Equal to IMP_KEFF, but the leakage term is dropped from the divisor.
ANA_EXT_K
(Neutron generation n+1 weight) / (Neutron generation n weight)
SRC_MULT = (<wgt1> + <wgt0>)/<wgt0>
where <wgt1> and <wgt0> are defined as previously.
Re: tcut for slow simulations with a lot of scattering
Thanks to both of you, this was really helpful!

 Posts: 32
 Joined: Thu Oct 04, 2018 7:53 am
 Security question 1: No
 Security question 2: 96
 Location: Tomsk, Russia
Re: tcut for slow simulations with a lot of scattering
1) Could You explain please, why ANA_EXT_K variable in .res file for my case consist of 20 values? Where can I find the description of each value in this variable.Ville Valtavirta wrote: ↑Tue Feb 21, 2017 2:51 pm3. The external source simulation mode does not include delayed neutron emission by default, so you'll have to switch it on manually (set delnu 1).
4. In timedependent / external source simulations one should be careful when talking about keffective, which is a parameter existing only in the keigenvalue mode of the transport equation, which is solved in the criticality source mode. For this kind of simulations it is often better to first figure out what you want to calculate (fission neutron production rate / external source rate OR neutron production / neutron loss OR something else?) and then calculate it manually using detectors. I've included below descriptions of some of the estimates given out by Serpent in external source simulations and how they are calculated in external source simulations.
Ville
ANA_KEFF = 1  <wgt0>/(<wgt1> + <wgt0>)
<wgt0> is the weight of the initial source particles.
<wgt1> equals the weight of all fission neutrons produced during the simulation.
As you can see, this is limited to values < 1.0.
COL_KEFF = 1  <wgt0>/(<nsf> + <wgt0>)
<wgt0> is as before
<nsf> is an estimate for the number of produced fission neutrons.
Again, the result is limited to values < 1.0.
IMP_KEFF and ABS_KEFF are the same estimate that are calculated by dividing the tallied fission neutron production with the tallied neutron loss (absorption + leakage).
ABS_KINF
Equal to IMP_KEFF, but the leakage term is dropped from the divisor.
ANA_EXT_K
(Neutron generation n+1 weight) / (Neutron generation n weight)
SRC_MULT = (<wgt1> + <wgt0>)/<wgt0>
where <wgt1> and <wgt0> are defined as previously.
upd. I Found some info from forum. So I'd like to left it in the my post:
Ville Valtavirta wrote: ↑Wed Nov 22, 2017 6:39 pmThe different values are for different generations:
The first value is W_{gen. 1}/W_{gen. 0}, i.e. the weight of the first produced neutron generation divided by the initial source weight.
The third value is W_{gen. 2}/W_{gen. 1} i.e. the weight of the second produced neutron generation divided by the weight of the weight of the first produced neutron generation.
Etc. all the way to W_{gen. 10}/W_{gen. 9}
Ville
2). So how one can control neutron generations? How to increase number of simulated k0,k1...ki neutron generations in one task?Jaakko Leppänen wrote: ↑Fri Jun 15, 2012 12:09 pmAlso the definition of keff is a bit different in external and criticality source modes. In criticality souce mode, keff is the eigenvalue of the calculation, and it also represents neutron balance (ratio of source and loss terms). In external source mode, keff is the multiplication factor of the source. The total number of neutrons N generated by source S is given by:
N = S + S*k0 + S*k0*k1 + S*k0*k1*k2 +...
If it is assumed that k0 = k1 = k2 = ... = k, the total number of neutrons is given by:
N = S/(1  k)
The k in this formula is what Serpent calculates as ANA_KEFF in external source mode. Generally the assumption that all k's are equal does not hold, especially if the source produces neutrons at high energy. For this reason Serpent also calculates the first 5 multiplication factors (variable ABS_EXT_K). The first value, k0, is the source multiplication factor that is printed in the output during the simulation.
Am I right that the last ANA_EXT_K W_{gen. 10}/W_{gen. 9} is the most correct value of k_source in comparison to k_eff in keigenvalue simulation in the same system?
Am I right that in external source mode ANA_KEFF value is something like the average value of ANA_EXT_K values of different neutron generations?
For example, I have a matrix of ANA_EXT_K values:
Code: Select all
4.51199E01 0.00293
8.94881E01 0.00142
9.43648E01 0.00289
9.51087E01 0.00212
9.50548E01 0.00307
9.52059E01 0.00522
9.45784E01 0.00209
9.44578E01 0.00355
9.45190E01 0.00447
9.52946E01 0.00303
2) What the physical meaning and mathematical approach to PROMPT_CHAIN_LENGTH variable?
3) Is there is some variable(s) that describe Importance of the 3.a) external source and 3.b) fission neutrons to fission reaction rate
Now I see a solution to my problem with hybrid external sourcesubcritical blanket, but it nessescary to increase the i of ki factors from N = S + S*k0 + S*k0*k1 + S*k0*k1*k2 +... to reach something like the steadystate system with external source in which neutrons will multiplicate with correct k. Am I right?
 Igor
 Jaakko Leppänen
 Site Admin
 Posts: 2202
 Joined: Thu Mar 18, 2010 10:43 pm
 Security question 2: 0
 Location: Espoo, Finland
 Contact:
Re: tcut for slow simulations with a lot of scattering
The number of generationwise multiplication factors is fixed to 10, but you can change the hard coded value by editing MAX_EXT_K_GEN in header.h.
Neutron multiplication in subcritical external source simulation is written as:
N = N0 + N0*k1 + N0*k1*k2 + N0*k1*k2*k3 ...
k1, k2, k3 ... are the values in ANA_EXT_K.
The ANA_KEFF in external source simulation is calculated by assuming that k1 = k2 = k3 = ... = k, in which case the series converges into:
N = N0*/(1  k) > k = 1  N/N0
So it's not exactly the average of ANA_EXT_K, but a value that approximates the total multiplication.
Neutron multiplication in subcritical external source simulation is written as:
N = N0 + N0*k1 + N0*k1*k2 + N0*k1*k2*k3 ...
k1, k2, k3 ... are the values in ANA_EXT_K.
The ANA_KEFF in external source simulation is calculated by assuming that k1 = k2 = k3 = ... = k, in which case the series converges into:
N = N0*/(1  k) > k = 1  N/N0
So it's not exactly the average of ANA_EXT_K, but a value that approximates the total multiplication.
 Jaakko