TRIGA nuclear reactor neutronic simulation with Serpent

TRIGA (Training Research Isotopes General Atomics) is a nuclear reactor from General Atomics diffused all over the world, look at this page to know more about it. In this page i’ll focus on TRIGA mark II type.

The goal of this article is to show a simple input file regarding this reactor for Serpent and show some results as feedback coefficient, control rods calibration and neutron flux.

Geometry and Materials

TRIGA is a pool type thermal reactor, this mean that our coolant is watar. Our geometry is a circular lattice and fuel is made of Uranium Zirconium Hydride. Typically Uranium is higly enriched un U-235, about 20%wt and total Uranium mass concentration is about 8%wt , when ZrH is the remaining 92%wt. Proportion between Zirconium and Hydrogen can vary from 1 to 1 ratio to ZrH_{1.6} depending on fuel type. Also cladding have more than one configuration, it can be an Alluminium alloy or a stainless steel (AISI 304).

You can find more detailed information in: TRIGA REACTOR CHARACTERISTICS, H. Böck and M. Villa

Let’s talk about fuel geometry, in the picture below you can see the cros section of almost all the elements inside the reactor. Fuels are considered all with same geometry, even if different cladding have also some differences in radius and in Graphite reflectors dimensions, also enrichment and Uranium-Zirconium-Hydrogen percentage are the same for all fuel rods. You will see it in more detail looking at the input file. There are 3 types of control rods, the only difference (at least in this model) is the radius.

Fuel an control rods dimensions

The following picture is a top view of the reactor core, as you can see the cylindrical arrangment of rods is surrounded by a Graphite reflector. inner radius is 22.85 cm and outer radius is 40 cm.

Top view of the core directly from Serpent geometry plot

Fuel arrangement can vary for each reactor. Whire regions are vacuum channels. In result section i’ll use a slightly different fuel arrangement.

Some results

Results refere to the following configuration:

TRIGA rods configuration

Pay attention to the right position of CR, from the top to the bottom we have in order: REG, SHIM, TRANS. However you find control rods information here: TRIGA REACTOR CHARACTERISTICS, H. Böck and M. Villa.

Now let’s look at Serpent geometry plot:

I’ll show three results: SHIM Control rod reactivity vs position, Fuel feedback coefficient and Flux energy density.

Simulation consist in k-eigenvalue method with 200 active cycles and 100 inactive cycles. Neutron number per cycle is 10000.

Flux energy dependence in loglog plot

Triga neutron flux spectrum

Fuel feedback coefficient: please note that fuel density variation was not taken into account, however you can easly change it from the branches region in the input file. Also consider that the model is not validated and small population number is adopted. First point is actually unphysical.

TRIGA fuel feedback coefficient

SHIM reactivity vs position:

In the plot reactivity is defined as true reactivity minus reactivity at 10 cm.

Input file

Some lines are commented, such as plot and detectors, is up to you. This file is written above another input, so some previous comments are present.

% --- 3D TRIGA core


% --- NAME -----------------------------------------------
	set title "TRIGA Reactor"

% --- LIBRARY DEFINITION ---------------------------------
	set acelib "/your/cross/section/path/.xsdata"

	set seed 14321


% --- MATERIALS -----------------------------------------------

%input definition
%mat <name> <dens> [<options>]
%<iso 1> <frac 1>
%<iso 2> <frac 2>


	% --- Cladding
	mat Cladding 	-5.015 rgb 150 150 150
	V-nat.03c 	-0.1
	Cr-nat.03c 	-0.02
	Mn-55.03c 	-0.01
	Fe-nat.03c 	-0.1
	Al-27.03c 	-99.57
	Cu-nat.03c 	-0.1
	Ga-nat.03c 	-0.1
	
	% --- Stainless steel cladding (have to verify composition and density!! aisi 304)
	mat CladdingSS  -7.93 rgb 255 255 255 
	C-nat.03c 	-0.0007
	Cr-nat.03c 	-0.18
	Mn-55.03c 	-0.02
	Fe-nat.03c 	-0.6993
	Si-nat.03c	-0.01
	Ni-nat.03c	-0.09

	% --- Fuel 
	mat Fuel 	-6.3  tmp 300 rgb 255 0 0 moder h_zrh 1001 moder zr_zrh 40000   
	Zr-nat.03c 	-91
	H-1.03c  	-1
	92235.03c 	-1.6
	92238.03c 	-6.4
%moder mean that i'm inseting a thermal library, low energy with h_zrh for 1001 material
%40000 is Zr (40) 000 is natural
	% --- Water 
	mat Water        -0.99669 rgb 0 0 255 moder lw 1001   
	O-16.03c         1
	H-1.03c          2

	% --- Vacuum
	mat Vacuum 	0.001 	rgb 230	230 230
	O-16.03c	-10
	N-14.03c	-90	
	
	% --- Control Rods
	mat ControlRod	-2.52	rgb 0 150 150
	B-10.03c	15.8
	B-11.03c	64.2
	C-12.03c	20
	 
	% --- Graphite (density from: Final characterization of the first critical configuration for the TRIGA Mark II reactor of the University of Pavia using the Monte Carlo code MCNP)
	mat Graphite	-1.7	rgb 80 80 80
	C-12.03c	1
	
% --- Thermal scattering data: ZrH, Light Water,graphite -----------------------------------
%therm	h_zrh	hzr.29t  %hzr00.32t
therm   h_zrh	hzr.29t
%therm 	zr_zrh	zrh.29t   %ZrZrH.71t
therm   zr_zrh  zrh.29t
%therm	lw 	300 lwj3.00t %lwj3.01t
therm 	lw	lwj3.00t
		

% --- GEOMETRY -----------------------------------------------

%input definition
%surf NAME TYPE [ PARAM1 PARAM2 ... ]

%Different surface type (cm)

% inf
% cyl x0 y0 r;
% sph   x0 y0 z0 r;
% hexxc x0 y0 r;
% px z0

	
	
	surf   sf   cyl    0.0    0.0    1.79 	     	%Inner radius Fuel Element
	surf   sfc   cyl    0.0    0.0    1.880        	%Outer radius  Fuel Cladding

	surf  scch	cyl 0.0 0.0 1.905		%Outer radius central channel

	surf  sshim	cyl 0.0	0.0 1.425		%inner shim radius
	surf  sshimc	cyl 0.0 0.0 1.59		%uter shim radius
	surf  sreg	cyl 0.0 0.0 0.965		%inner reg  radius
	surf  sregc	cyl 0.0 0.0 1.11		%uter reg  radius
	surf  stran	cyl 0.0 0.0 1.105		%inner trans  radius
	surf  stranc 	cyl 0.0 0.0 1.27		%outr trans radius
	surf  srod	pz  45.47			%control rod length from 0

	surf  stop   pz    55.7				%top reflector
	surf  sbot   pz    0				%reflector bottom	

	surf  sfbot    pz    10.07 			%Start of the active lenght
	surf  sftop    pz    46.63	 		%End of the active lenght

	surf  sref	cyl 0.0 0.0 22.85		%inner radius reflector
	surf  s1    	cyl 0.0 0.0 40.00        	%cylindrical surface delimiting the core	
	surf  sstop 	pz  85			     	%end of domain up	
	surf  ssbot 	pz  -50			     	%end of domain bottom	
	
	surf sinf inf					%infinite sourface for group constant generation

% --- CELL -----------------------------------------------

%CELL DEFINITION FOR GROUP CONSTANT GENERATION

	cell fuel_gcu 100 Fuel 		-sinf
%	cell clad_gcu 200 Cladding 	-sinf
	cell wat_gcu  300 Water 	-sinf
	cell grap_gcu  400 Graphite	-sinf


%Definition of fuel element in universe 1
	% --- Fuel Element definition with alu cladding
	cell  cf1      1    fill 100          -sf		sfbot	-sftop	%Fuel
	cell  cgt1     1    Graphite          -sf               sftop   -stop  %top reflector   	
	cell  cgb1     1    Graphite          -sf               sbot   -sfbot   %bottom reflector
	cell  cc1      1    Cladding      sf	-sfc	sbot	-stop 	%Cladding
	cell  cwi1      1    fill 300         sfc      	sbot	-stop	%Water in-core
	cell  cwob1     1    fill 300                   	-sbot		%Water out-core (below) 
	cell  cwoa1     1    fill 300         			stop   	%Water out-core (above)
%Definition of fuel element in universe 8

	% --- Fuel element with SS cladding
	cell  cf8      8    fill 100          -sf		sfbot	-sftop	%Fuel
	cell  cgt8     8    Graphite          -sf               sftop   -stop  %top reflector   	
	cell  cgb8     8    Graphite          -sf               sbot   -sfbot   %bottom reflector
	cell  cc8      8    CladdingSS      sf	-sfc	sbot	-stop 	%Cladding
	cell  cwi8      8    fill 300         sfc      	sbot	-stop	%Water in-core
	cell  cwob8     8    fill 300                   	-sbot		%Water out-core (below) 
	cell  cwoa18    8    fill 300         			stop   	%Water out-core (above)
	
%definition of central channel universe 2
	cell  ccch      2    Vacuum	-sfc	sbot	-stop	
	cell  cc2	2    Cladding	sfc	-scch	-sbot	stop
	cell  cwi2      2    fill 300      sfc     sbot	-stop		%Water in-core
	cell  cwob2     2    fill 300                   	-sbot  		%Water out-core (below)
	cell  cwoa2     2    fill 300         			stop   	%Water out-core (above)
%definition of SHIM cr in universe 3
	cell  cshim	3	ControlRod	-sshim	sbot	-srod		%inner rod
	cell  cshimc	3	Cladding	sshim	-sshimc	sbot	-srod	%cladding
	cell  cwi3       3    	fill 300         	sshimc  sbot	-srod		%Water in-core
	cell  cwob3      3    	fill 300                   	-sbot		%Water out-core (below) 
	cell  cwoa3      3    	fill 300         			srod   	%Water out-core (above)	
%definition of REG cr in universe 4
	cell  creg	4	ControlRod	-sreg	sbot	-srod		%inner rod
	cell  cregc	4	Cladding	sreg	-sregc	sbot	-srod	%cladding
	cell  cwi4       4    	fill 300        sregc  sbot	-srod		%Water in-core
	cell  cwob4      4    	fill 300                   	-sbot		%Water out-core (below) 
	cell  cwoa4      4    	fill 300         			srod   	%Water out-core (above)	
%definition of TRANS cr in universe 5
	cell  ctran	5	ControlRod	-stran	sbot	-srod		%inner rod
	cell  ctranc	5	Cladding	stran	-stranc	sbot	-srod	%cladding
	cell  cwi5       5    	fill 300        stranc  sbot	-srod		%Water in-core
	cell  cwob5      5    	fill 300                   	-sbot		%Water out-core (below) 
	cell  cwoa5      5    	fill 300         			srod   	%Water out-core (above)	
%definition of Graphite in universe 6
	cell  cgraphite	 6	Graphite	-sf	sbot	-stop		%graphite rod	
	cell  cgraphitec 6	Cladding	sf	-sfc	sbot	-stop	%cladding for graphite element
	cell  cwi6       6    	fill 300        sfc  	sbot	-stop		%Water in-core
	cell  cwob6      6    	fill 300                   	-sbot		%Water out-core (below) 
	cell  cwoa6      6   	fill 300         			stop   	%Water out-core (above)	

%definition of empty channel universe 7
	cell  cech      7    Vacuum	-sfc	sbot	-stop	
	cell  cechc	7    Cladding	sfc	-scch	-sbot	stop
	cell  cwi7      7    fill 300      sfc     sbot	-stop		%Water in-core
	cell  cwob7     7    fill 300                   -sbot  		%Water out-core (below)
	cell  cwoa7     7    fill 300         			stop   	%Water out-core (above)		

% --- Lattice core definitiion


%fills lattice with element in universe 1 2 3 4 5 6 7
% 1 fuel
% 6 graphite
%...	
	lat 10 4 0 0 6
	1 	0.0 	0.0 	2
	6 	4.20 	30 	8 8 8 8 8 8
	12 	8.15 	0 	8 3 8 8 8 8 8 8 8 8 8 8
	18 	12.15 	30 	1 1 1 1 1 1 1 1 1 1 1 1 5 1 1 1 1 1
	24 	16.33 	0 	1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1
	30 	20.34 	30 	8 1 6 6 7 6 6 6 8 1 8 1 8 1 7 1 8 1 8 1 8 1 8 1 8 1 8 8 8 1


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

	%creating final geometry including lattice and water up and down

	cell core 	11 	fill 10 	-sref 
	cell cref	11 	Graphite 	sref   
	%cell cwatup 	11 	Water		-sref stop -sstop
	%cell cwatbot 	11 	Water		-sref -sbot ssbot
	cell ccore	0 	fill 11		-s1 ssbot -sstop
	cell c0 	0 	outside    	sstop
	cell c1 	0 	outside    	-ssbot 
	cell c2 	0 	outside    	s1  ssbot -sstop

% --- CONTROL RODS MOVEMENTS -----------------------------------

%command for moving geometry is trans
%trans universe x y z
% -5 is central insertion

trans 3 0 0 0
trans 4 0 0 0
trans 5 0 0 0		

% --- TESTING BRANCH AND AUTOMATIC PARAMETER CHANGE -----------------------------------

%movement definition
utrans pos0 0 0 +10
utrans pos1 0 0 +15
utrans pos2 0 0 +20
utrans pos3 0 0 +25
utrans pos4 0 0 +30
utrans pos5 0 0 +35
utrans pos6 0 0 +40
utrans pos7 0 0 +45


%branches definition
branch CR0 tra 5 pos0

branch CR1 tra 5 pos1

branch CR2 tra 5 pos2

branch CR3 tra 5 pos3

branch CR4 tra 5 pos4

branch CR5 tra 5 pos5

branch CR6 tra 5 pos6

branch CR7 tra 5 pos7

%nominal branch (do nothing)

branch nom

%branches temperature
%apparently i have to define the temperature and a library below and one above this temperature, for example if T = 450 i have to define one lib at 400 and one at 500

branch T0 stp Fuel -6.3 330 h_zrh hzr.29t hzr.39t zr_zrh zrh.29t zrh.39t

branch T1 stp Fuel -6.3 360 h_zrh hzr.29t hzr.39t zr_zrh zrh.29t zrh.39t   

branch T2 stp Fuel -6.3 390 h_zrh hzr.29t hzr.39t zr_zrh zrh.29t zrh.39t   


branch T3 stp Fuel -6.3 420 h_zrh hzr.39t hzr.49t zr_zrh zrh.39t zrh.49t

branch T4 stp Fuel -6.3 450 h_zrh hzr.39t hzr.49t zr_zrh zrh.39t zrh.49t   

branch T5 stp Fuel -6.3 480 h_zrh hzr.39t hzr.49t zr_zrh zrh.39t zrh.49t  




%call branches and define different burnup levels
%coef 1 0 tell us 1 burnup level at 0 MWd/kgU

%coef 1 0
%5 CR0 CR1 CR2 CR3 CR4

coef 1 0 
%7 nom T0 T1 T2 T3 T4 T5
15 nom T0 T1 T2 T3 T4 T5 CR0 CR1 CR2 CR3 CR4 CR5 CR6 CR7
 

% --- NEUTRON POPULATION AND CRITICAL CYCLES --------------

%set pop <npop> <cycles> <skip> [<keff0> <int>]
%npop=# neutrons per cycle, cycles=# active cycles, skip=# inactive cycle

	
	% --- Neutron population: 10000 neutrons per cycle, 200 active / 100 inactive cycles

	set pop 10000 200 100


	


	
% --- BOUNDARY CONDITION (1 = black, 2 = reflective, 3 = periodic) -----------------------------------
%The reflective and periodic boundary conditions can only be used in geometries where
%the outer boundary surface is either a square or a hexagonal cylinder or a cube.

set bc 1



% --- GROUP CONSTANT GENERATION -----------------------------------

%set gcu <u1> <u2> ...
%set gcu 100 200 300
%universe must be inside a cell exploited in the geometry
%for example i have to fill a cell with universe 100 of i want to use it in set gcu

%set gcu 100 300


%define energy groups
%set nfg n_group E1 E2 ...
%E1: energy boundary in MeV
 
%set nfg 2 0.625e-6 


% --- USE RESONANCES?

%use
%set ures 1
%do not use
%set ures 0

set ures 1




% --- PLOT GEOMETRY -----------------------------------

%plot direction nx_pixel ny_pixel positionInPerpDir x_range y_range

%plot 3  2000  2000 25

%plot 1  2000  2000	

% --- Second plot is 1000 by 1000 pixels, from axial height z = 0.0 
%     and covers more than the whole geometry: -2.25 < (x,y) < 2.25

%plot 3 2000 2000 15.0 -7.5 7.5 -7.5 7.5

% --- The third plot is perpendicular to y-axis (2) i.e. an xz-plot

%plot 2  2000  2000 


% --- DETECTOR ENERGY -----------------------------------
%The syntax is relatively simple: det <name> <param 1> <param 2> ... The integral in Eq. (7.1) is 
%divided by detector volume, which is set to unity by default. This is because in most cases it 
%is the total reaction rate, not the reaction rate density that is of interest to the user. 
%The volume can be set manually using the “dv” entry.

%dr	Reaction multiplier		Determines the response function
%dv	Detector volume			Used for normalization
%dc	Detector cell			Defines the cell where the reactions are scored
%du	Detector universe		Defines the universe where the reactions are scored
%dm	Detector material		Defines the material where the reactions are scored
%dl	Detector lattice		Defines the lattice where the reactions are scored
%de	Detector energy grid		Defines the energy bins for the response function
%dx	Detector mesh			Defines the x-mesh where the reactions are scored
%dy	Detector mesh			Defines the y-mesh where the reactions are scored
%dz	Detector mesh			Defines the z-mesh where the reactions are scored
%dt	Detector type			Special detector types		
%ds	Surface current detector	Defines surface for current detector	

%Material total reactions 	 0	None
%				-1	Total
%				-2	Total capture
%				-3	Total elastic
%				-5	Total (n,2n)
%				-6	Total fission
%				-7	Total fission neutron production
%				-8	Total fission energy deposition
%				-9	Majorant

%ENDF Reaction modes		1	Total
%				2	Elastic scattering
%				16	(n,2n)
%				17	(n,3n)
%				18	Total fission

% --- Detector that calculates the radial fission distribution in the fuel: 
%     Name of the detector is AxialFission.
%     The detector uses response number -6 (total fission cross section)
%     of the material at the interaction site (keyword: void)
%     Detector only scores interactions at material "fuel" ("dm fuel").
%     Detector calculates the spatial distribution using a cylindrical mesh "dn 1"
%     with 1 bins in the radial direction between 0.0 and 20 cm ("0.0 20 1")
%     with 1 bin in the angular direction between 0 and 360 degrees ("0 360 1")
%     with 20 bin in the axial direction that extends from 0 to 35.6 ("0 35.6 20")
%to do -inf +inf in axial dir put (0 0 1)
%det AxialFission dr -6 void dm Fuel dn 1 0.0 20 1 0 360 1 0 35.6 20
	%square mesh
	%det MultiDPlot dr -1 void du 0 dx -40 40 200 dy -40 40 200 dz 0 0 1
	

	%det AxialTotal dr -2 void du 0 dn 1 0.0 0.0 1 0 360 1 -50 85 80

	%det RadialTotal dr -2 void du 0 dn 1 0.0 40 80 0 360 1 0 0 1

%det  AxialCapture dr -2 void du 0 dn 1 0.0 0.0 1 0 360 1 0 40 80

%Enery domain
%The number of energy bins is defined by the grid size. 
%ene <name> 1 <E1> <E2> ... <En>
%ene <name> <type> <N> <Emin> <Emax>
%ene <name> 4 <struct>
	
%1. Cumulative spectrum (“dt -1”)
%2. Division by energy width (“dt -2”)
%3. Division by lethargy width (“dt -3”)	

	%Surface current detector det <name> ds <surf> <dir> (-1=inward,1=outward)

	% --- Detector for tallying the flux energy spectrum
	%     The energy grid used for tallying will be defined later

	%det EnergyDetector de MyEnergyGrid

	% --- Define the energy grid to be used with the detector
	%     Grid type 3 (bins have uniform lethargy width)
	%     500 bins between 1e-11 MeV and 2e1 MeV.

	%ene MyEnergyGrid 3 500 1e-11 2e1
	%thermal energy grid
	%ene MyEnergyGrid 3 100 1e-11 1e-6


% --- DETECTOR DEFINITION AND PLOT RESULT -----------------------------------

%det elastic dr -3 void


%mesh 8 2 elastic 3  200  200

%mesh 8 2 elastic 1  2000  2000
%mesh 8 2 elastic 3  2000  2000



%det capture dr -2 void du 0


%mesh 8 2 capture 2  2000  2000

%mesh 3 2000 2000 
%mesh 1 2000 2000