Multi-physics interface

From Serpent Wiki
Revision as of 18:31, 2 December 2015 by Ville Valtavirta (Talk | contribs) (Axially segmented fuel rods)

Jump to: navigation, search

The multi-physics interface is a set of routines, as well as input/output formats intended for easily bringing in detailed temperature and density fields to Serpent and at the same time automatically producing power distributions to be used in coupled codes.

List of multi-physics interface filetypes

Type Name Notes
1 Point-average For interpolation of point-wise data
2 Regular mesh For data on a regular cartesian or hexagonal mesh
3 Functional dependence User defined functional dependence can be defined on source code level
4 Tetrahedral mesh type Use interface type 7 instead.
5 Fuel behavior interface (piecewise constant) For coupling with fuel performance/behavior codes with 1.5 dimensional (z,r) coordinate system.
6 Fuel behavior interface (radial interpolation) For coupling with fuel performance/behavior codes with 1.5 dimensional (z,r) coordinate system.
7 Unstructured mesh Based on OpenFOAM file format.

Point-average interface (type 1)

Regular mesh based interface (type 2)

User defined functional dependence (type 3)

Tetrahedral mesh interface (type 4)

Fuel behavior interface (types 5 and 6)

<type> <output_file> <npin> 

Parameter <type> is set to 5 or 6 for fuel behavior interface. Type 5 indicates a temperature step profile in the radial direction whereas type 6 corresponds to interpolation of temperatures in the radial direction between the radial nodes. <outfile> is the filename where output is written and <npin> is the number of fuel pins described in this interface.

After this header line come <npin> fuel pin descriptions.

Fuel pin description

First the pin name for which the temperatures are applied is given


this should correspond to the name in the pin-definition. After that come the output meshings for power and flux in axial, angular and radial directions

<nz> <zmin> <zmax> <na> <amin> <amax> <nr> <rmin> <rmax>
<nz> <zmin> <zmax> <na> <amin> <amax> <nr> <rmin> <rmax> <Emin> <Emax>

This sets up tallies for power and flux: <nz> axial bins between <zmin> and <zmax>, <na> angular bins between <amin> and <amax> (degrees), and <nr> radial bins (of equal area) between <rmin> and <rmax>. The detector intended for tallying the local fast flux also has energy limits <Emin> and <Emax>.

After these two output lines comes the number of axial temperature profiles that will be given for the first pin


Next, the limits of the first axial zone should be given as well as the number of angular subzones for this axial region

<zmin1> <zmax1> <na>

After this, the limits of the first angular zone are given as well as the number of radial nodes to be read for the temperature distribution

<amin1> <amax1> <nr>

Finally, the information at <nr> radial nodes is given for the first angular zone of the first axial zone of the first pin:

<rcold1> <rhot1> <T1>
<rcold2> <rhot2> <T2>
<rcold3> <rhot3> <T3>
<rcold_nr> <rhot_nr> <T_nr>

Three values are given for each radial node: <rcold> the radial position of the node in cold (Serpent input) coordinates, <rhot> the radial position of the node in hot (to be used for neutron tracking) coordinates and <T> temperature at this radial node. If <rcold> and <rhot> are equal the geometry is not deformed for the neutron tracking. If the interface type is 5, <T_n> is the temperature used between <rhot_{n-1}> and <rhot_n> giving a step profile. If the interface type is set to 6, linear interpolation is used between the radial nodes.

After the list of <nr> radial nodes, come the limits of the next angular zone (if available) followed by the radial nodes for that zone etc. After all of the angular zones have been defined come the limits for the next axial zone and its first angular zone etc. After all of the axial zones of the first pin have been defined comes the pin-universe for the second pin etc.

Special cases

Axially segmented fuel rods

The pin-definitions in Serpent are essentially one-dimensional, which means that fuel rods that have consist of axial segments have to be defined as a combination of multiple pin-definitions (or without the use of pin-definitions).

The fuel behavior interface can be used for rods consisting of multiple pin-definitions, but all of the pin definitions have to be linked to the interface. Instead of giving the pin-universe name


in the interface file we'll give a negative number indicating the number of pin-definitions to be linked followed by the pin-universe names

<-nuni> <pinuni_1> <pinuni_2> ... <pinuni_nuni>

Consider, for example a fuel rod filled consisting of a lower undoped fuel part, an intermediate segment with gadolinia-doped fuel and an upper undoped fuel part. This kind of a fuel rod can be modeled by creating two pin-definitions

pin p1nogd
fuel   0.60579
void   0.62103
Zirc   0.71501

for the undoped part and

pin p1yesgd
fuelgd 0.60579
void   0.62103
Zirc   0.71501

for the doped part. The three dimensional rod can be created by defining the limiting horizontal surfaces (here surf z1 and surf z2) and filling the pin-definitions into the correct axial levels of a new universe:

cell cp1l p1combined fill p1nogd        -z1
cell cp1m p1combined fill p1yesgd    z1 -z2
cell cp1h p1combined fill p1nogd     z2

Now the universe p1combined can be used for example in a lattice, producing a three dimensional representation of the fuel rod. The interface file would then contain something in the following sense:

<type> <output_file> <npin>
-2 p1nogd p1yesgd

Non-uniform output binning

Unstructured mesh based interface (type 7)