Fatal error in function ProcessXSData

Report any suspected bugs and unexpected behavior here
Post Reply
Tatidis
Posts: 5
Joined: Thu Jan 10, 2019 1:28 pm
Security question 1: No
Security question 2: 19

Fatal error in function ProcessXSData

Post by Tatidis » Thu Jan 10, 2019 2:57 pm

I'm trying to use two ACE-files with two energy groups. The ACE-files run on MCNP6.2 and give the expected results, and they run on Serpent 1.1.7 but no neutrons are scattered from the fast group to the thermal group. I have tried to upgrade to Serpent 2.1.29 to solve this problem, but I receive the error message:
Processing cross sections and ENDF reaction laws...


***** Thu Jan 10 12:49:12 2019:

- MPI task = 0
- OpenMP thread = 0
- RNG parent seed = 1547120952

Fatal error in function ProcessXSData:

Reaction is first in list

Simulation aborted.

User avatar
Jaakko Leppänen
Site Admin
Posts: 2054
Joined: Thu Mar 18, 2010 10:43 pm
Security question 2: 0
Location: Espoo, Finland
Contact:

Re: Fatal error in function ProcessXSData

Post by Jaakko Leppänen » Fri Jan 11, 2019 7:11 pm

What do you mean by ACE files with two energy groups?
- Jaakko

Tatidis
Posts: 5
Joined: Thu Jan 10, 2019 1:28 pm
Security question 1: No
Security question 2: 19

Re: Fatal error in function ProcessXSData

Post by Tatidis » Sun Jan 13, 2019 12:32 pm

Serpent 1.1.7 was used to determine all the cross sections from 1e-11MeV to 0.625e-6 MeV, and from 0.625e-6 MeV to 20MeV. Now want to rerun the simulation with these values of the cross sections in my ACE-file.

User avatar
Jaakko Leppänen
Site Admin
Posts: 2054
Joined: Thu Mar 18, 2010 10:43 pm
Security question 2: 0
Location: Espoo, Finland
Contact:

Re: Fatal error in function ProcessXSData

Post by Jaakko Leppänen » Tue Jan 15, 2019 10:29 am

So you are writing new ACE files with two-group cross sections produced by Serpent?
- Jaakko

Tatidis
Posts: 5
Joined: Thu Jan 10, 2019 1:28 pm
Security question 1: No
Security question 2: 19

Re: Fatal error in function ProcessXSData

Post by Tatidis » Wed Jan 16, 2019 4:15 pm

Yes, exactly.
I'm including the output from both serpent versions. I have tried to run the simulation with different atomic weights and at different temperatures, but that does not change anything. In the output it is stated that the isotopes used is 92235 and 6012, they are not carbon or uranium, they are my custom ACE-files. The reason for this choice of names is because serpent complains if they are given a name that is not a real nuclide, like 888001.

Serpent 1.1.7:
Begin calculation on Wed Jan 16 14:03:20 2019

Reading input file "1cell"...

Processing geometry...
OK.

Reading directory files...
OK.

Calculating isotope fractions...
OK.

Reading data from ACE files:
Isotope 92235.96d (U-235)...
Isotope 6012.96d (C-12)...
OK.

Reading energy arrays:
Isotope 92235.96d (U-235)...
Isotope 6012.96d (C-12)...
OK.

- Main grid thinned from 3 to 3 points using tolerance 0.00E+00.

- 3 important points added resulting in a total of 3 points.

- Final grid size 3 points (1.00E-11 < E < 20.0).

- Total 3 points in nubar grid.

- 2 energy groups in few-group structure.

- User-defined energy grid 1 with 2 bins.

Processing XS data:
Isotope 92235.96d (U-235)...
Warning: Nubar data converted to lin-lin (92235.96d mt 18).
Isotope 6012.96d (C-12)...
OK.

Finalizing XS data...
OK.

Preparing statistics...
OK.

Calculating material total cross sections:
material fuel...
material moder...
OK.

Starting the transport calculation cycle...

Sampling initial source...
OK.
Note after the simulation is done with serpent 1.1.7:
Notes:

- Only 3 grid points in main energy grid.

- Infinite collision loop encountered 88 times.

Output from Serpent 2.1.29:
Begin calculation on Wed Jan 16 14:06:53 2019

Reading input file "1cell"...

Checking duplicate input definitions...
OK.

Creating geometry...
OK.

Counting geometry zones...

Processing cells...
OK.

Linking materials to geometry...
OK.

Counting cells...
OK.

Processing data for group constant generation:

- 70 energy groups in micro-group structure
- 2 energy groups in macro-group structure
- B1 fundamental mode calculation is not run
- Group constants generated in 1 universes
- Discontinuity factors are not calculated
- Pin-power distributions are not calculated
- Albedos are not calculated
- Poison cross sections are not calculated

Reading ACE directory files...
OK.

Adding nuclides in material fuel...

Nuclide 92235.96d -- uranium 235 (U-235)

Adding nuclides in material moder...

Nuclide 6012.96d -- carbon 12 (C-12)

Checking data and printing output...

***** Wed Jan 16 14:06:53 2019 (seed = 1547644013)
Warning message from function CheckNuclideData:

0.6 % mismatch between AW and AWR (92235.96d)


***** Wed Jan 16 14:06:53 2019 (seed = 1547644013)
Warning message from function CheckNuclideData:

0.6 % mismatch between AW and AWR (6012.96d)

OK.


***** Wed Jan 16 14:06:53 2019 (seed = 1547644013)
Warning message from function ProcessNuclides:

Minimum photon cross section energy 1.000000E+37 MeV is
above the energy grid minimum 1.000000E-03 MeV.
The energy grid minimum is set to 1.000000E+37 MeV.
Possible changes in energy cutoff cards (warned if any).


***** Wed Jan 16 14:06:53 2019 (seed = 1547644013)
Warning message from function ProcessNuclides:

Photon energy cutoff 1.000000E-03 MeV is changed to 1.000000E+37.


Generating unionize energy grids...

Adding points:

6012.96d -- Points added in neutron grid: 5
92235.96d -- Points added in neutron grid: 0

Generating unionized energy grid:

- Unionization performed without grid thinning
between 1.00E-11 and 20.0 MeV.

- Final neutron grid size: 71 points.

- 0.70 kb of memory allocated for grid data

OK.

Processing cross sections and ENDF reaction laws...


***** Wed Jan 16 14:06:53 2019:

- MPI task = 0
- OpenMP thread = 0
- RNG parent seed = 1547644013

Fatal error in function ProcessXSData:

Reaction is first in list

Simulation aborted.

User avatar
Jaakko Leppänen
Site Admin
Posts: 2054
Joined: Thu Mar 18, 2010 10:43 pm
Security question 2: 0
Location: Espoo, Finland
Contact:

Re: Fatal error in function ProcessXSData

Post by Jaakko Leppänen » Wed Jan 16, 2019 5:32 pm

Serpent wasn't really designed to do this, and the error message indicates that there is something in the ACE file that is different from files generated using NJOY. This particular error may be related to the number of tabulated cross sections. All reactions with less than two non-zero points are removed, and the error is printed as a sanity check if the first reaction mode (elastic scattering) is removed. Basically this is an error that should never occur with ACE data.

Try replacing the if-statement on line 544 of processxsdata.c with something like "if (n < 0)" to see if this gets the calculation going.
- Jaakko

Tatidis
Posts: 5
Joined: Thu Jan 10, 2019 1:28 pm
Security question 1: No
Security question 2: 19

Re: Fatal error in function ProcessXSData

Post by Tatidis » Thu Jan 17, 2019 12:00 pm

This does unfortunately not fix the problem. The ACE-files used have a elastic cross section of 0, which might be the problem. A new error message that pops up is:
Fatal error in function ReallocMem:

Invalid data size 0 (type 1)

Simulation aborted.
And while compiling a warning message pops up:
#‘target_mem_ref’ not supported by expression#’shuntingyard.c: In function ‘ShuntingYard’:
shuntingyard.c:79:16: warning: may be used uninitialized in this function [-Wmaybe-uninitialized]
while (stack[np] != SURF_OP_LEFT)
~~~~~^~~~
If it is any help at all the method used was according to an article "USING HOMOGENIZED MACROSCOPIC GROUP CROSS SECTIONS IN
CONTINUOUS-ENERGY MONTE CARLO NEUTRON TRANSPORT
CALCULATIONS WITH MCNP" by "J.C. Kuijper, S.C. van der Marck and A. Hogenbirk".

User avatar
Jaakko Leppänen
Site Admin
Posts: 2054
Joined: Thu Mar 18, 2010 10:43 pm
Security question 2: 0
Location: Espoo, Finland
Contact:

Re: Fatal error in function ProcessXSData

Post by Jaakko Leppänen » Thu Jan 17, 2019 1:51 pm

Even though Serpent uses the same ACE-based physics model as MCNP, the processing and sampling routines were developed independently, so unfortunately cannot guarantee that something like this produces the same outcome as in MCNP. Serpent performs several checks after the data is read to prevent erroneous data to be used in the transport simulation, and this data library seems to trigger some of these checks.

I guess one option would be to increase the number of energy points and use histogram-type cross sections that produce the same outcome.
- Jaakko

Tatidis
Posts: 5
Joined: Thu Jan 10, 2019 1:28 pm
Security question 1: No
Security question 2: 19

Re: Fatal error in function ProcessXSData

Post by Tatidis » Thu Jan 17, 2019 3:42 pm

Thanks for your help and suggestions.

Post Reply