Group constant generation for PARCS

Share your results and discuss how Serpent compares to other neutron transport codes or experimental data
Post Reply
xvdongyu
Posts: 3
Joined: Tue Mar 09, 2021 3:51 am
Security question 1: No
Security question 2: 7

Group constant generation for PARCS

Post by xvdongyu » Wed Mar 10, 2021 12:14 pm

Dear Colleagues,
I'm learning the group constant generation for PARCS. At first, I have find the page that teach me how to generate a set of group constants for a fuel assembly(http://serpent.vtt.fi/mediawiki/index.p ... l_assembly).So I have copied the input file to my computer. After the simulation, I get the absorption cross section (INF_ABS) and so on.
However,the results that I simulated by using PARC are much different from the output of Serpent. In the begin of Burnup, the error is 75.9pcm( = 0.9563412 - 0.95582). In the end of Burnup, the error is 206.5pcm(0.986646 - 0.984581). I think the result is unimaginable. I want to understand the reasons for the result.
I will provide my input here.
Inupt file
% --- Simple 2D EPR assembly geometry burnup model for Serpent tutorial

/****************************
* Link external files here *
****************************/

% --- Include material volumes from a separate file

include "./base.mvol"

% --- Include water composition from a file

%include "./water_low.inc"

% --- Include water composition from a file

%include "./water_high.inc"

% --- Include branch definitions from a file

%include "./branches.inc"

/************************
* Material definitions *
************************/

% --- 3.0 wt-% enriched UO2
% Temperature is set to 950 K

mat fuelNoGad -10.3070 tmp 950.0 rgb 255 255 150 burn 1
92235.09c -0.02644492
92238.09c -0.85505247
8016.09c -0.11850261

% --- 0.25 wt-% enriched UO2 with 8.0 wt-% of Gd2O3
% Temperature is set to 950 K

mat fuelYesGad -10.3070 tmp 950.0 rgb 150 255 150 burn 1
92235.09c -0.00202753
92238.09c -0.80898345
8016.09c -0.11957908
64152.09c -0.00013411
64154.09c -0.00148108
64155.09c -0.01012049
64156.09c -0.01408805
64157.09c -0.01083999
64158.09c -0.01731511
64160.09c -0.01543111

% --- Cladding material Zircaloy-4
% [Composition from PNNL-15870, Rev. 1]

mat Zircaloy4 -6.56000E+00 tmp 610
8016.03c -1.19276E-03
24050.03c -4.16117E-05
24052.03c -8.34483E-04
24053.03c -9.64457E-05
24054.03c -2.44600E-05
26054.03c -1.12572E-04
26056.03c -1.83252E-03
26057.03c -4.30778E-05
26058.03c -5.83334E-06
40090.03c -4.97862E-01
40091.03c -1.09780E-01
40092.03c -1.69646E-01
40094.03c -1.75665E-01
40096.03c -2.89038E-02
50112.03c -1.27604E-04
50114.03c -8.83732E-05
50115.03c -4.59255E-05
50116.03c -1.98105E-03
50117.03c -1.05543E-03
50118.03c -3.35688E-03
50119.03c -1.20069E-03
50120.03c -4.59220E-03
50122.03c -6.63497E-04
50124.03c -8.43355E-04

% --- Coolant is water with 650 ppm soluble boric acid added
% The temperature of water is 583 K
% Density is calculated based on a pressure of 15.5 MPa
% Hydrogen is flagged as a bound scatterer with the "moder"-card

mat water -0.70602 tmp 583 moder lwtr 1001 rgb 200 200 255
O-16.03c 3.330861e-01
H-1.03c 6.663259e-01
%B-10.03c 7.186970e-05
%B-11.03c 2.892846e-04

% --- Define thermal scattering libraries associated with hydrogen in light water
% As there are no readymade thermal scattering libraries for 583 K
% We will tell Serpent to interpolate using two bounding libraries:
% -lwj3.11t (H-1 in light water at 574 K)
% -lwj3.13t (H-1 in light water at 624 K)
% See also: http://montecarlo.vtt.fi/download/SSS_THERMAL.pdf

therm lwtr 583 lwj3.11t lwj3.13t

/************************
* Geometry definitions *
************************/

% --- Normal fuel rod (no gadolinia in fuel)

pin FF
fuelNoGad 0.3975
void 0.4125
Zircaloy4 0.4750
water

% --- Gadolinium fuel rod

pin GG
fuelYesGad 0.3975
void 0.4125
Zircaloy4 0.4750
water

% --- Empty instrumentation thimble

pin ii
water 0.5725
Zircaloy4 0.6125
water

% --- Empty control rod channel

pin cc
water 0.5725
Zircaloy4 0.6125
water

% --- Empty lattice position (just water)

pin ww
water

% --- Pin lattice definition, name of the lattice "lat1"
% Lattice type 1 (square lattice)
% Lattice centered at 0.0 0.0
% 19 x 19 lattice elements (17x17 fuel rods + 1 layer of water)
% Lattice pitch 1.26 cm
% We'll utilize our knowledge of the 1/8 symmetry so that
% we'll only have to type in 1/8th of the assembly

lat lat1 1 0.0 0.0 19 19 1.26
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww FF FF FF FF FF FF FF FF FF ww
ww ww ww ww ww ww ww ww ww FF FF FF FF FF FF FF FF ww ww
ww ww ww ww ww ww ww ww ww cc FF FF cc FF FF GG ww ww ww
ww ww ww ww ww ww ww ww ww FF GG FF FF FF cc ww ww ww ww
ww ww ww ww ww ww ww ww ww FF FF FF FF GG ww ww ww ww ww
ww ww ww ww ww ww ww ww ww cc FF FF cc ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww FF FF GG ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww FF FF ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ii ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww
ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww ww

% --- Tell Serpent to apply a symmetry to the lattice "lat1"
% Symmetry axis is the z-axis (3)
% Symmetry boundary condition is reflective (2)
% Symmetry axis is located at coordinates (0.0 0.0)
% Symmetry covers an angle starting from 270 degrees
% and extending for 45 degrees

set usym lat1 3 2 0.0 0.0 270 45

% --- A square surface around the fuel assembly

surf s1 sqc 0.0 0.0 10.752

% --- Cell c1 belongs to the base universe 0, is filled with the lattice lat1
% and covers everything inside surface s1

cell c1 0 fill lat1 -s1

% --- Cell c2 belongs to the base universe 0, is defined as an "outside" cell
% and covers everything outside surface s1

cell c2 0 outside s1

/******************
* Run parameters *
******************/

% --- Assembly linear power is 420 kW

set power 42000

% --- Boundary condition (1 = black, 2 = reflective, 3 = periodic)

set bc 2

% --- Neutron population: 5000 neutrons per cycle, 100 active / 20 inactive cycles

set pop 2000000 100 20

% --- XY-plot (3), which is 700 by 700 pixels and covers the whole geometry

plot 3 700 700

% --- XY-meshplot (3), which is 700 by 700 pixels and covers the whole geometry

mesh 3 700 700

/***************************************
* Settings for the burnup calculation *
***************************************/

% --- Burnup points for the burnup calculation (in MWd/kgU)
% Too long intervals between the burnup points will decrease the
% accuracy of the burnup calculation, especially during the burn-out
% of burnable absorber

dep butot 0.1 0.5 1 3 5 7 9 11 13 15 17 19

% --- Material division for burnup calculation
% Treat different pins of fuelNoGad as separate depletion zones (sep 1)

div fuelNoGad sep 1

% --- Material division for burnup calculation
% Treat different pins of fuelYesGad as separate depletion zones (sep 1)
% additionally divide each of those fuel pellets into 10 equal volume rings
% between radial coordinates of 0.0 and 0.3975

div fuelYesGad sep 1 subr 10 0.0 0.3975

% --- Nuclide inventory: these nuclides will be included in the
% depletion output file burn_dep.m. The list can be changed
% after the simulation has concluded if needed. Then you can run
% sss2 -rdep burn
% which will make Serpent re-read the inventory and re-produce the
% depletion output file.

set inventory
922350
942390
641550
641570

% --- Use predictor corrector method for the depletion solution
% leli: Linear extrapolation on predictor
% Linear interpolation on corrector
% 10 10: 10 substeps on predictor, 10 substeps on corrector

set pcc leli 10 10

% --- Decay data library needs to be specified for burnup calculations

set declib "/opt/xs/sss_endfb7.dec"
set acelib "/opt/xs/sss_endfb7u.xsdata"

% --- Neutron induced fission yield library needs to be specified for
% burnup calculations

set nfylib "/opt/xs/sss_endfb7.nfy"

% --- Reduce unionized energy grid size in order to save some memory
% Use grid thinning with 5e-5 reconstruction tolerance between
% 1e-9 and 15 MeV.

set egrid 5e-5 1e-9 15.0

set gcu 0
set nfg default2_ext
set micro defaultmg_ext
set xenon 1
%set fum nj20 2 1




Base.movl

% --- Material volumes:

set mvol

fuelNoGad 35 1.98557E+00
fuelNoGad 34 1.98557E+00
fuelNoGad 33 3.97113E+00
fuelNoGad 32 1.98557E+00
fuelNoGad 31 3.97113E+00
fuelNoGad 30 3.97113E+00
fuelNoGad 29 3.97113E+00
fuelNoGad 28 3.97113E+00
fuelNoGad 27 3.97113E+00
fuelNoGad 26 1.98557E+00
fuelNoGad 25 3.97113E+00
fuelNoGad 24 3.97113E+00
fuelNoGad 23 3.97113E+00
fuelNoGad 22 1.98557E+00
fuelNoGad 21 3.97113E+00
fuelNoGad 20 3.97113E+00
fuelNoGad 19 3.97113E+00
fuelNoGad 18 3.97113E+00
fuelNoGad 17 1.98557E+00
fuelNoGad 16 3.97113E+00
fuelNoGad 15 3.97113E+00
fuelNoGad 14 3.97113E+00
fuelNoGad 13 3.97113E+00
fuelNoGad 12 3.97113E+00
fuelNoGad 11 3.97113E+00
fuelNoGad 10 1.98557E+00
fuelNoGad 9 1.98557E+00
fuelNoGad 8 3.97113E+00
fuelNoGad 7 3.97113E+00
fuelNoGad 6 3.97113E+00
fuelNoGad 5 3.97113E+00
fuelNoGad 4 3.97113E+00
fuelNoGad 3 3.97113E+00
fuelNoGad 2 3.97113E+00
fuelNoGad 1 1.98557E+00
fuelYesGad 40 1.98557E-01
fuelYesGad 39 1.98557E-01
fuelYesGad 38 1.98557E-01
fuelYesGad 37 1.98557E-01
fuelYesGad 36 1.98557E-01
fuelYesGad 35 1.98557E-01
fuelYesGad 34 1.98557E-01
fuelYesGad 33 1.98557E-01
fuelYesGad 32 1.98557E-01
fuelYesGad 31 1.98557E-01
fuelYesGad 30 1.98557E-01
fuelYesGad 29 1.98557E-01
fuelYesGad 28 1.98557E-01
fuelYesGad 27 1.98557E-01
fuelYesGad 26 1.98557E-01
fuelYesGad 25 1.98557E-01
fuelYesGad 24 1.98557E-01
fuelYesGad 23 1.98557E-01
fuelYesGad 22 1.98557E-01
fuelYesGad 21 1.98557E-01
fuelYesGad 20 3.97113E-01
fuelYesGad 19 3.97113E-01
fuelYesGad 18 3.97113E-01
fuelYesGad 17 3.97113E-01
fuelYesGad 16 3.97113E-01
fuelYesGad 15 3.97113E-01
fuelYesGad 14 3.97113E-01
fuelYesGad 13 3.97113E-01
fuelYesGad 12 3.97113E-01
fuelYesGad 11 3.97113E-01
fuelYesGad 10 1.98557E-01
fuelYesGad 9 1.98557E-01
fuelYesGad 8 1.98557E-01
fuelYesGad 7 1.98557E-01
fuelYesGad 6 1.98557E-01
fuelYesGad 5 1.98557E-01
fuelYesGad 4 1.98557E-01
fuelYesGad 3 1.98557E-01
fuelYesGad 2 1.98557E-01
fuelYesGad 1 1.98557E-01

Thanks for your any advice.

Ana Jambrina
Posts: 666
Joined: Tue May 26, 2020 5:32 pm
Security question 1: No
Security question 2: 7

Re: Group constant generation for PARCS

Post by Ana Jambrina » Wed Mar 10, 2021 6:47 pm

Differences between Serpent and a nodal solver (e.g. PARCS) using group-contacts generated by Serpent would depend on a series of assumptions/options, meaning consistency between the cross-section generation and the nodal-solver solution methodology.
- Ana

xvdongyu
Posts: 3
Joined: Tue Mar 09, 2021 3:51 am
Security question 1: No
Security question 2: 7

Re: Group constant generation for PARCS

Post by xvdongyu » Thu Mar 11, 2021 11:23 am

Thank you for your advice.But I'm still Confused。Can you show more detials ? I have considered whether this result is related to transport correction.However, I can't find a more detailed explanation.(Such as P1_transport which is mentioned in Serpent manual)

Ana Jambrina
Posts: 666
Joined: Tue May 26, 2020 5:32 pm
Security question 1: No
Security question 2: 7

Re: Group constant generation for PARCS

Post by Ana Jambrina » Thu Mar 11, 2021 12:15 pm

The tutorial aim to provide a baseline practice on how to generate group-constants; that does not mean that from that example directly you are going to obtain good results when using those cross-sections in PARCS. You need to understand the physics involved (in the case of study) to set-up the group-constant generation accordingly - keeping in mind PARCS owns methodology (e.g leakage correction, assembly discontinuity factors, etc.).

Check the following publication about support for Serpent 2 in GenPMAX: https://publikationen.bibliothek.kit.ed ... 44/3816474, you might get some practical ideas applied to PARCS.

The manual refers to Serpent 1, which might be outdated; get support from the Wiki. Group constant output-parameters description can be found Output parameters.
- Ana

xvdongyu
Posts: 3
Joined: Tue Mar 09, 2021 3:51 am
Security question 1: No
Security question 2: 7

Re: Group constant generation for PARCS

Post by xvdongyu » Sun Mar 14, 2021 9:26 am

I truly appreciate your timely help.Ihave gotten a lot useful information from the website and file that you provided.But I still have some problems. I have used OpenMc and Parcs to deal with the same cross section generated by Serpent, and the results between PARCS and OpenMC are inappreciable (about 20 pcm).I think this result means that the main porblems are in the process of corss section generation. So I have tried the P1 calculation and out-scattering diffusion coefficients. However, I can't get the reasonable result.Can you show me more details about how to generate the Group constant by using Serpent ?

Ana Jambrina
Posts: 666
Joined: Tue May 26, 2020 5:32 pm
Security question 1: No
Security question 2: 7

Re: Group constant generation for PARCS

Post by Ana Jambrina » Sun Mar 14, 2021 1:20 pm

Here, a general reference regarding cross-sections homogenisation methodology in Serpent 2 10.1016/j.anucene.2016.06.007 (for additional features recently added, follow the Wiki).

From your post is not clear to me what do you exactly mean: a) using the same cross-sections set generated by Serpent with OpenMC and PARCS does not provide information about the generation itself (or the reference solution); it only gives results from two different solvers using the same multi-group cross-section data, ending up in similar results independently of the solver methodology (Monte Carlo - OpenMC, deterministic-nodal - PARCS); b) OpenMC and Serpent differs on how group-constants are generated; however, if you have generated cross-sections with OpenMC you have inside knowledge about the case itself and the physics involved in the process (options), consequently, you can try to move-forward with Serpent following that path. There is no general practice in terms of group constant generation to be used for all the cases/with all the solvers. (As note, you could generate material-wise homogenised group constant defining a universe/detector-based setting, similar to OpenMC).
- Ana

Post Reply