Difference between revisions of "Multi-physics interface"
(→Non-uniform output binning) |
Ana Jambrina (Talk | contribs) (→Input syntax) |
||
(119 intermediate revisions by 4 users not shown) | |||
Line 35: | Line 35: | ||
| Unstructured mesh | | Unstructured mesh | ||
| Based on OpenFOAM file format. | | Based on OpenFOAM file format. | ||
+ | |- | ||
+ | | 8 | ||
+ | | Unstructured mesh with many materials | ||
+ | | Based on OpenFOAM file format. | ||
+ | |- | ||
+ | | 9 | ||
+ | | Unstructured mesh based geometry + interface. | ||
+ | | Based on OpenFOAM file format. Also creates the [[Input_syntax_manual#solid_.28irregular_3D_geometry_definition.29|mesh based geometry]]. | ||
|} | |} | ||
+ | |||
+ | == Usage instructions == | ||
+ | |||
+ | The interface is linked to the main input file with the [[Input syntax manual#ifc|ifc command]]: | ||
+ | |||
+ | '''ifc''' ''FILE'' | ||
+ | |||
+ | where <tt>''FILE''</tt> is the path to the interface definition file. The descriptions for the interface definition files of the different interface types are given below. Multiple interfaces can be linked to a single input e.g. for bringing in temperature/density data for multiple materials. | ||
+ | |||
+ | The Doppler preprocessor should be disabled for materials receiving their temperature distributions from an interface by removing any <tt>tmp <temperature> </tt> definitions from the material cards. Serpent can deduce the minimum and maximum temperature for the TMS-treatment directly from the interface files. If this interval is to be extended, it can be done by using the <tt>tft <T<sub>MIN</sub>> <T<sub>MAX</sub>></tt> definition in the material card. | ||
== Point-average interface (type 1) == | == Point-average interface (type 1) == | ||
+ | [[File:IFC_1_1D_axial_density.png|thumb|250px|Coolant density of a pin cell geometry has been modified using the point-average interface (type 1) (darker color indicates lower density). '''NB: If temperature distribution is also given, the plot will show the temperature distribution instead of density.''']] | ||
+ | The point-average interface is a way to bring in temperatures and densities for a single material in a number of discrete points in the geometry. During neutron transport Serpent will calculate the temperature and density in an interaction point as an average of the values of nearby interface points. | ||
+ | |||
+ | === Input syntax === | ||
+ | |||
+ | The input syntax for the interface file is | ||
+ | |||
+ | ''TYPE'' ''MAT'' ''OUT'' | ||
+ | ''OUTFILE'' ''NZ'' ''ZMIN'' ''ZMAX'' ''NR'' | ||
+ | ''DIM'' ''RAD'' ''EXP'' | ||
+ | ''NP'' | ||
+ | ''X<sub>1</sub>'' ''Y<sub>1</sub>'' ''Z<sub>1</sub>'' ''DENS<sub>1</sub>'' ''T<sub>1</sub>'' | ||
+ | ''X<sub>2</sub>'' ''Y<sub>2</sub>'' ''Z<sub>2</sub>'' ''DENS<sub>2</sub>'' ''T<sub>2</sub>'' | ||
+ | ... | ||
+ | |||
+ | The first line contains three parameters: | ||
+ | {| | ||
+ | | <tt>''TYPE''</tt> | ||
+ | | : the interface type (1 for point-average interface) | ||
+ | |- | ||
+ | | <tt>''MAT''</tt> | ||
+ | | : the name of the material that the data is given for. | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (1/0). If the flag is not set, the second line is omitted. | ||
+ | |} | ||
+ | |||
+ | If the output flag is set, the second line contains parameters for the fission power output. If the output flag is not set the second line is emitted. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : determines the file name to which the output is printed | ||
+ | |- | ||
+ | | <tt>''NZ''</tt> | ||
+ | | : is the number of axial bins for pin-wise power distributions | ||
+ | |- | ||
+ | | <tt>''ZMIN''</tt> | ||
+ | | : is the minimum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''ZMAX''</tt> | ||
+ | | : is the maximum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''NR''</tt> | ||
+ | | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. | ||
+ | |} | ||
+ | The third line contains: | ||
+ | {| | ||
+ | | <tt>''DIM''</tt> | ||
+ | | : The dimension of the distribution (1 = z-dependence only, 2 = x- and y-dependence, 3 = x-, y- and z-dependence). | ||
+ | |- | ||
+ | | <tt>''RAD''</tt> | ||
+ | | : The exclusion radius, beyond which the points are not included in the average. | ||
+ | |- | ||
+ | | <tt>''EXP''</tt> | ||
+ | | : The exponent for the averaging process. | ||
+ | |} | ||
+ | |||
+ | If the exclusion radius <tt>''RAD''</tt> is too small, some parts of the region may not be properly covered. If the radius is large, more CPU time is required for calculating the average. Setting the exponent <tt>''EXP''</tt> to 1 means that the average is based on distance, <tt>''EXP''</tt> = 2 means square distance, and so on. | ||
+ | |||
+ | The fourth line gives the number of points <tt>''NP''</tt> to be given and the remaining lines give the data in each of the points: If <tt>''DIM''</tt> = 1, only <tt>''Z<sub>i</sub>''</tt> is given, if <tt>''DIM''</tt> = 2, only <tt>''X<sub>i</sub>''</tt> and <tt>''Y<sub>i</sub>''</tt> are given). Parameter <tt>''DENS<sub>i</sub>''</tt> is the material density at the point (negative values for mass density, positive values for atomic density) and <tt>''T<sub>i</sub>''</tt> is the temperature. | ||
+ | |||
+ | === Output === | ||
+ | If the output flag is set, Serpent calculates power distributions in pin-type objects that are enclosed within the interface material (e.g. fuel pins inside coolant). The output file contains fission powers in cylindrical regions, one region per line. The parameters in each line are: | ||
+ | |||
+ | ''X0'' ''Y0'' ''Z0'' ''X1'' ''Y1'' ''Z1'' ''R0'' ''R1'' ''P'' ''dP'' | ||
+ | |||
+ | The first six values give the top and bottom center coordinates of the cylindrical region. The next two parameters are the inner and outer radius of the ring, and the last two values are the integral fission power and the associated relative statistical error. | ||
== Regular mesh based interface (type 2) == | == Regular mesh based interface (type 2) == | ||
+ | [[File:IFC_2_axial_density.png|thumb|250px|Coolant density of a pin cell geometry has been modified using the regular mesh based interface (type2) (darker color indicates lower density). '''NB: If temperature distribution is also given, the plot will show the temperature distribution instead of density.''']] | ||
+ | |||
+ | The regular mesh based interface is a way to bring in temperatures and densities on a regular Cartesian or hexagonal mesh or on an irregular Cartesian mesh. The format has a wide variety of uses such as bringing in information from nodal codes, channel/subchannel codes etc. | ||
+ | |||
+ | === Input syntax === | ||
+ | |||
+ | The input syntax for the interface file is | ||
+ | |||
+ | ''TYPE'' ''MAT'' ''OUT'' | ||
+ | ''OUTFILE'' [omit line if ''OUT'' is set to 0] | ||
+ | ''NZ'' ''ZMIN'' ''ZMAX'' ''NR'' [omit line if ''OUT is '''not''' set to 1] | ||
+ | ''MESHTYPE'' | ||
+ | ''[MESH DATA]'' | ||
+ | ''DENS<sub>1</sub>'' ''T<sub>1</sub>'' | ||
+ | ''DENS<sub>2</sub>'' ''T<sub>2</sub>'' | ||
+ | ... | ||
+ | |||
+ | |||
+ | The first line contains the interface type (2) followed by two parameters: | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | | <tt>''MAT''</tt> | ||
+ | | : the name of the material that the data is given for. | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (2/1/0) == (same mesh/at pins/no output). | ||
+ | |} | ||
+ | |||
+ | If output was requested by setting the <tt>''OUT''</tt> flag to something other than 0, the next line contains the output file name: | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : determines the file name to which the output is printed (omitted if the <tt>''OUT''</tt> flag is set to 0) | ||
+ | |} | ||
+ | |||
+ | If the output flag is set to 2, fission power will be tallied on the same mesh as the interface data is given. | ||
+ | |||
+ | If the output flag is set to 1, a line containing parameters for the fission power output should follow. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''NZ''</tt> | ||
+ | | : is the number of axial bins for pin-wise power distributions | ||
+ | |- | ||
+ | | <tt>''ZMIN''</tt> | ||
+ | | : is the minimum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''ZMAX''</tt> | ||
+ | | : is the maximum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''NR''</tt> | ||
+ | | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. | ||
+ | |} | ||
+ | |||
+ | The third line defines the type of the mesh used for the data: <tt>''MESHTYPE''</tt> is an integer indicating the type of the mesh (1 = regular Cartesian, 2 = 2D cylindrical, 4 = x-type hexagonal, 5 = y-type hexagonal, 6 = unevenly Cartesian, 8 = radially irregular 2D cylindrical). After the mesh type definition, the mesh data is given. The mesh data depends on the mesh type as described in the following section. | ||
+ | |||
+ | Finally, after the mesh data <tt>''NX''×''NY''×''NZ''</tt> pairs of values indicating the density and temperature in each of the cells follow. Positive densities are interpreted as atomic densities and negative densities as mass densities. The ordering of the cells is such that the x-index increases first, then the y-index and finally the z-index. | ||
+ | |||
+ | ==== Mesh data <span id="regmesh_mesh_data"></span> ==== | ||
+ | |||
+ | The mesh data depends on the mesh type chosen for the data. For the regular Cartesian mesh ('''type 1'''), the mesh data is simply | ||
+ | |||
+ | ''NX'' ''XMIN'' ''XMAX'' ''NY'' ''YMIN'' ''YMAX'' ''NZ'' ''ZMIN'' ''ZMAX'' | ||
+ | |||
+ | where <tt>''NX''</tt>, <tt>''NY''</tt> and <tt>''NZ''</tt> are the number of mesh cells in each of the directions and <tt>''XMIN''</tt>, <tt>''XMAX''</tt> etc. indicate the limits of the mesh. I.e. the mesh is divided into <tt>''NX''</tt> equally wide cells between <tt>''XMIN''</tt> and <tt>''XMAX''</tt>. | ||
+ | |||
+ | For the regular 2D cylindrical mesh ('''type 2'''), the mesh data is | ||
+ | |||
+ | ''NR'' ''RMIN'' ''RMAX'' ''NPHI'' | ||
+ | |||
+ | where <tt>''NR''</tt> is the number of mesh cells in the radial direction, <tt>''RMIN''</tt> and <tt>''RMAX''</tt> are the radial limits of the mesh, and <tt>''NPHI''</tt> is the number of mesh cells in the polar-angle direction. The number of mesh cells in the axial direction is 1. | ||
+ | |||
+ | In the case of hexagonal meshes ('''types 4 and 5'''), the mesh data is | ||
+ | |||
+ | ''X<sub>0</sub>'' ''Y<sub>0</sub>'' ''PITCH'' ''ZMIN'' ''ZMAX'' ''NX'' ''NY'' ''NZ'' | ||
+ | |||
+ | with <tt>''X<sub>0</sub>''</tt> and <tt>''Y<sub>0</sub>''</tt> indicating the horizontal centerpoint of the mesh, <tt>''PITCH''</tt> being the horizontal pitch between adjacent mesh cells, <tt>''ZMIN''</tt> and <tt>''ZMAX''</tt> indicating the axial limits of the mesh and <tt>''NX''</tt>, <tt>''NY''</tt> and <tt>''NZ''</tt> indicating the number of cells in each direction. The mesh is divided axially into equally high segments. | ||
+ | |||
+ | For the irregular Cartesian mesh ('''type 6'''), the mesh data consists of | ||
+ | |||
+ | ''NX'' ''NY'' ''NZ'' | ||
+ | ''X<sub>1</sub>'' ''X<sub>2</sub>'' ... ''X<sub>NX+1</sub>'' | ||
+ | ''Y<sub>1</sub>'' ''Y<sub>2</sub>'' ... ''Y<sub>NY+1</sub>'' | ||
+ | ''Z<sub>1</sub>'' ''Z<sub>2</sub>'' ... ''Z<sub>NZ+1</sub>'' | ||
+ | |||
+ | i.e. the number of cells in each coordinate direction followed by lists of coordinates in each direction forming the boundaries of the cells. | ||
+ | |||
+ | For the radially irregular 2D cylindrical mesh ('''type 8'''), the mesh data consists of | ||
+ | |||
+ | ''NR'' ''NPHI'' | ||
+ | ''R<sub>1</sub>'' ''R<sub>2</sub>'' ... ''R<sub>NR+1</sub>'' | ||
+ | |||
+ | i.e. the number of cells in the radial and polar-angle directions followed by the list of coordinates in the radial direction forming the boundaries of the cells. The number of mesh cells in the axial direction is 1. | ||
+ | |||
+ | === Output === | ||
+ | If the output flag is set, Serpent calculates power distributions in pin-type objects that are enclosed within the interface material (e.g. fuel pins inside coolant). The output file contains fission powers in cylindrical regions, one region per line. The parameters in each line are: | ||
+ | |||
+ | ''X0'' ''Y0'' ''Z0'' ''X1'' ''Y1'' ''Z1'' ''R0'' ''R1'' ''P'' ''dP'' | ||
+ | |||
+ | The first six values give the top and bottom center coordinates of the cylindrical region. The next two parameters are the inner and outer radius of the ring, and the last two values are the integral fission power and the associated relative statistical error. | ||
+ | |||
+ | === Examples === | ||
+ | |||
+ | [[Regular Hex Mesh fuel IFC example |Regular Hex Mesh fuel-interface with 7 assemblies]] | ||
+ | |||
+ | [[Regular Hex Mesh coolant IFC example |Regular Hex Mesh coolant-interface single assembly]] | ||
+ | |||
+ | == Nested regular mesh based interface (type 22) == | ||
+ | |||
+ | The nested regular mesh based interface is a way to bring in temperatures and densities on a multi-level regular cartesian or hexagonal mesh. The format is specifically intended for bringing in data for full-core calculations with a separate assembly-lattice and a pin-lattice. | ||
+ | |||
+ | === Input syntax === | ||
+ | |||
+ | The input syntax for the interface file is | ||
+ | |||
+ | '''22''' ''MAT'' ''OUT'' | ||
+ | ''OUTFILE'' [omit line if ''OUT'' is set to 0] | ||
+ | ''NZ'' ''ZMIN'' ''ZMAX'' ''NR'' [omit line if ''OUT'' is '''not''' set to 1] | ||
+ | ''N<sub>MESH</sub>'' | ||
+ | ''MESHTYPE<sub>1</sub>'' | ||
+ | ''PARAMETERS FOR MESH 1'' [See previous section for the mesh parameters line description] | ||
+ | ''...'' | ||
+ | ''MESHTYPE<sub>N<sub>MESH</sub></sub>'' | ||
+ | ''PARAMETERS FOR MESH N<sub>MESH</sub>'' [See previous section for the mesh parameters line description] | ||
+ | ''DENS<sub>1</sub>'' ''T<sub>1</sub>'' | ||
+ | ''DENS<sub>2</sub>'' ''T<sub>2</sub>'' | ||
+ | ... | ||
+ | |||
+ | The first line contains the interface type (22) followed by two parameters: | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | | <tt>''MAT''</tt> | ||
+ | | : the name of the material that the data is given for. | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (2/1/0) == (same mesh/at pins/no output). | ||
+ | |} | ||
+ | |||
+ | If output was requested by setting the <tt>''OUT''</tt> flag to something other than 0, the next line contains the output file name: | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : determines the file name to which the output is printed (omitted if the <tt>''OUT''</tt> flag is set to 0) | ||
+ | |} | ||
+ | |||
+ | If the output flag is set to 2, fission power will be tallied on the same mesh as the interface data is given. | ||
+ | |||
+ | If the output flag is set to 1, a line containing parameters for the fission power output should follow. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''NZ''</tt> | ||
+ | | : is the number of axial bins for pin-wise power distributions | ||
+ | |- | ||
+ | | <tt>''ZMIN''</tt> | ||
+ | | : is the minimum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''ZMAX''</tt> | ||
+ | | : is the maximum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''NR''</tt> | ||
+ | | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. | ||
+ | |} | ||
+ | |||
+ | The third line contains the number of nested meshes <tt>''N<sub>MESH</sub>''</tt>. | ||
+ | |||
+ | After this <tt>''N<sub>MESH</sub>''</tt> mesh definitions follow consisting of | ||
+ | # An integer indicating the mesh type <tt>''MESHTYPE<sub>i</sub>''</tt>. | ||
+ | # A line with the mesh parameters depending on the mesh type. See the [[#Input_syntax_2|previous section]] for detailed information on the required parameters. | ||
+ | |||
+ | After the <tt>''N<sub>MESH</sub>''</tt> mesh definitions, density-temperature value pairs for all of the cells follow. The number of these value-pairs should be equal to the total number of cells in the nested mesh definition, i.e. | ||
+ | |||
+ | <math> \prod_{i=1}^{N_{\mathrm{mesh}}} N^i_x \times N^i_y \times N^i_z</math>. | ||
+ | |||
== User defined functional dependence (type 3) == | == User defined functional dependence (type 3) == | ||
+ | [[File:IFC_3_axial_density.png|thumb|250px|Coolant density of a pin cell geometry has been modified using the user defined functional dependence (type3) with a sine wave based density distribution (darker color indicates lower density). '''NB: If temperature distribution is also given, the plot will show the temperature distribution instead of density.''']] | ||
+ | |||
+ | The user defined functional dependence interface allows the user to pass a number of arbitrary input parameters to Serpent, that are passed to subroutine "<tt>userifc.c</tt>", along with local coordinates. The subroutine can be modified to include any kind of functional distribution. The interface file has almost no error tolerance, so be sure that all required values are entered and in the correct order. | ||
+ | |||
+ | === Input syntax === | ||
+ | |||
+ | The input syntax for the interface file is | ||
+ | |||
+ | ''TYPE'' ''MAT'' ''OUT'' | ||
+ | ''OUTFILE'' ''NZ'' ''ZMIN'' ''ZMAX'' ''NR'' | ||
+ | ''NP'' | ||
+ | ''P<sub>1</sub>'' | ||
+ | ''P<sub>2</sub>'' | ||
+ | ... | ||
+ | |||
+ | The first line contains three parameters: | ||
+ | {| | ||
+ | | <tt>''TYPE''</tt> | ||
+ | | : the interface type (3 for user defined functional dependence) | ||
+ | |- | ||
+ | | <tt>''MAT''</tt> | ||
+ | | : the name of the material that the data is given for. | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (1/0). If the flag is not set, the second line is omitted. | ||
+ | |} | ||
+ | |||
+ | If the output flag is set, the second line contains parameters for the fission power output. If the output flag is not set the second line is emitted. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : determines the file name to which the output is printed | ||
+ | |- | ||
+ | | <tt>''NZ''</tt> | ||
+ | | : is the number of axial bins for pin-wise power distributions | ||
+ | |- | ||
+ | | <tt>''ZMIN''</tt> | ||
+ | | : is the minimum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''ZMAX''</tt> | ||
+ | | : is the maximum axial coordinate of the power distribution. | ||
+ | |- | ||
+ | | <tt>''NR''</tt> | ||
+ | | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. | ||
+ | |} | ||
+ | |||
+ | After the output parameters, the number of parameters to be read from the file <tt>''NP''</tt> is indicated followed by <tt>''NP''</tt> arbitrary parameters (integers or floating point numbers). | ||
+ | |||
+ | === Output === | ||
+ | If the output flag is set, Serpent calculates power distributions in pin-type objects that are enclosed within the interface material (e.g. fuel pins inside coolant). The output file contains fission powers in cylindrical regions, one region per line. The parameters in each line are: | ||
+ | |||
+ | ''X0'' ''Y0'' ''Z0'' ''X1'' ''Y1'' ''Z1'' ''R0'' ''R1'' ''P'' ''dP'' | ||
+ | |||
+ | The first six values give the top and bottom center coordinates of the cylindrical region. The next two parameters are the inner and outer radius of the ring, and the last two values are the integral fission power and the associated relative statistical error. | ||
+ | |||
+ | == Functional expansion tally based interface (type 31 and 32) == | ||
+ | |||
+ | The functional expansion tally-based interface is a way to bring in temperatures (type 31) and densities (type 32) in a functional format. The interface follows the functional expansion tally (FET) methodology, based on an orthonormal polynomial basis for Cartesian geometries (Legendre polynomials) and cylindrical geometries (Zernike + Legendre polynomials). | ||
+ | |||
+ | === Input syntax === | ||
+ | |||
+ | The input syntax for the interface file is depends on the geometry type, more precisely, the associated polynomial basis. | ||
+ | |||
+ | ''TYPE'' ''FET_TYPE'' ''MAT'' ''OUT'' | ||
+ | ''OUTER_MAT'' ''OUTFILE'' ''OUT_SPEC'' [omit line if ''OUT'' is set to 0] | ||
+ | ''FET_OUT_PARAMS'' [omit line if ''OUT_SPEC'' is set to 1] | ||
+ | ''FET_IN_PARAMS'' | ||
+ | ''FET_COEF'' | ||
+ | |||
+ | The first line contains four parameters: | ||
+ | |||
+ | {| | ||
+ | | <tt>''TYPE''</tt> | ||
+ | | : the interface type '''31''' or '''32''' (FET-based interface) depending whether the data exchanged corresponds to temperature or density, respectively | ||
+ | |- | ||
+ | | <tt>''FET_TYPE''</tt> | ||
+ | | : geometry type or polynomial basis (1 = Cartesian: Legendre polynomials, 2 = cylindrical: Zernike + Legendre polynomials) | ||
+ | |- | ||
+ | | <tt>''MAT''</tt> | ||
+ | | : the name of the material that the data is given for | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (0/no, 1/yes). | ||
+ | |} | ||
+ | |||
+ | If the output flag is set, the second line contains parameters for the fission power output. If the output flag is not set the second line is omitted. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''OUTER_MAT''</tt> | ||
+ | | : the name of the outermost material | ||
+ | |- | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : file name to which the output is printed | ||
+ | |- | ||
+ | | <tt>''OUT_SPEC''</tt> | ||
+ | |: flag to set the same input/output parameter options (0/no, 1/yes) | ||
+ | |} | ||
+ | |||
+ | If the input and output FETs parameters different, the third line contains such output FETs parameters for the fission power output. If the flag is not set the third line is omitted. | ||
+ | |||
+ | The fourth line describes the input FETs parameters for the temperature or density input. | ||
+ | |||
+ | Both <tt>''FET_OUT_PARAMS''</tt> and <tt>''FET_IN_PARAMS''</tt> follow the same syntax as described for functional expansion detectors (see [[Input syntax manual#det_dfet|dfet]], under <tt>''PARAMS''</tt>), which would depend on the geometry type (and polynomial basis). | ||
+ | |||
+ | Finally, the fifth line includes the temperature- or density-coefficients <tt>''FET_COEF''</tt> describing the functional expansion. | ||
+ | |||
+ | === Output === | ||
+ | |||
+ | If the output flag is set, Serpent outputs the fission power as FET coefficients. The output syntax for the interface file depends on the geometry type, more precisely, the associated polynomial basis. | ||
+ | Serpent includes a summary of the FET parameters followed by the actual coefficients (mean and relative error). The output parameters for Cartesian (Legendre polynomials) and cylindrical (Zernike + Legendre polynomials) are, respectively: | ||
+ | |||
+ | '''Cartesian''' ''XMIN'' ''XMAX'' ''XORDER'' ''YMIN'' ''YMAX'' ''YORDER'' ''ZMIN'' ''ZMAX'' ''ZORDER'' ''NREGION'' | ||
+ | ''REGION'' ''COEF_LINEAR_IDX'' ''COEF_ZORDER'' ''COEF_YORDER'' ''COEF_XORDER'' ''COEF_MEAN'' ''COEF_RERR'' | ||
+ | |||
+ | '''Cylindrical''' ''RMIN'' ''RMAX'' ''RORDER'' ''AMIN'' ''AMAX'' ''AORDER'' ''NREGION'' | ||
+ | ''REGION'' ''COEF_LINEAR_IDX'' ''COEF_RORDER'' ''COEF_RRANK'' ''COEF_AORDER'' ''COEF_MEAN'' ''COEF_RERR'' | ||
+ | |||
== Tetrahedral mesh interface (type 4) == | == Tetrahedral mesh interface (type 4) == | ||
+ | |||
+ | The tetrahedral mesh interface has been replaced with the OpenFOAM-based interface format, which offers the same functionality with some additional benefits. | ||
+ | |||
== Fuel behavior interface (types 5 and 6) == | == Fuel behavior interface (types 5 and 6) == | ||
− | + | [[File:IFC_5_pin_temperature.png|thumb|250px|Fuel temperature of a pin cell geometry has been modified using the step profile fuel behavior interface (type 5) (brighter color indicates higher temperature).]] | |
− | + | ||
− | + | [[File:IFC_6_pin_temperature.png|thumb|250px|Fuel temperature of a pin cell geometry has been modified using the linearly interpolated fuel behavior interface (type 6) (brighter color indicates higher temperature).]] | |
− | === Fuel pin description === | + | The fuel behavior interface is designed for bringing in temperature and radial expansion data from fuel behavior / fuel performance codes using the traditional "1.5 dimensional" (z,r) coordinate system. |
+ | |||
+ | === Input syntax === | ||
+ | |||
+ | ''TYPE'' ''OUTFILE'' ''NPIN'' | ||
+ | ''PINUNI<sub>p1</sub>'' | ||
+ | ''NZ<sub>p1</sub>'' ''ZMIN<sub>p1</sub>'' ''ZMAX<sub>p1</sub>'' ''NA<sub>p1</sub>'' ''AMIN<sub>p1</sub>'' ''AMAX<sub>p1</sub>'' ''NR<sub>p1</sub>'' ''RMIN<sub>p1</sub>'' ''RMAX<sub>p1</sub>'' | ||
+ | ''NZ<sub>p1</sub>'' ''ZMIN<sub>p1</sub>'' ''ZMAX<sub>p1</sub>'' ''NA<sub>p1</sub>'' ''AMIN<sub>p1</sub>'' ''AMAX<sub>p1</sub>'' ''NR<sub>p1</sub>'' ''RMIN<sub>p1</sub>'' ''RMAX<sub>p1</sub>'' ''EMIN<sub>p1</sub>'' ''EMAX<sub>p1</sub>'' | ||
+ | ''NZ<sub>p1</sub>'' | ||
+ | ''ZMIN<sub>z1</sub>'' ''ZMAX<sub>z1</sub>'' ''NA<sub>z1</sub>'' | ||
+ | ''AMIN<sub>a1</sub>'' ''AMAX<sub>a1</sub>'' ''NR<sub>a1</sub>'' | ||
+ | ''RCOLD<sub>r1</sub>'' ''RHOT<sub>r1</sub>'' ''T<sub>r1</sub>'' | ||
+ | ''RCOLD<sub>r2</sub>'' ''RHOT<sub>r2</sub>'' ''T<sub>r2</sub>'' | ||
+ | ... | ||
+ | ''AMIN<sub>a2</sub>'' ''AMAX<sub>a2</sub>'' ''NR<sub>a2</sub>'' | ||
+ | ''RCOLD<sub>r1</sub>'' ''RHOT<sub>r1</sub>'' ''T<sub>r1</sub>'' | ||
+ | ''RCOLD<sub>r2</sub>'' ''RHOT<sub>r2</sub>'' ''T<sub>r2</sub>'' | ||
+ | ... | ||
+ | ... | ||
+ | ''ZMIN<sub>z2</sub>'' ''ZMAX<sub>z2</sub>'' ''NA<sub>z2</sub>'' | ||
+ | ''AMIN<sub>a1</sub>'' ''AMAX<sub>a1</sub>'' ''NR<sub>a1</sub>'' | ||
+ | ''RCOLD<sub>r1</sub>'' ''RHOT<sub>r1</sub>'' ''T<sub>r1</sub>'' | ||
+ | ''RCOLD<sub>r2</sub>'' ''RHOT<sub>r2</sub>'' ''T<sub>r2</sub>'' | ||
+ | ... | ||
+ | ''AMIN<sub>a2</sub>'' ''AMAX<sub>a2</sub>'' ''NR<sub>a2</sub>'' | ||
+ | ''RCOLD<sub>r1</sub>'' ''RHOT<sub>r1</sub>'' ''T<sub>r1</sub>'' | ||
+ | ''RCOLD<sub>r2</sub>'' ''RHOT<sub>r2</sub>'' ''T<sub>r2</sub>'' | ||
+ | ... | ||
+ | ... | ||
+ | ... | ||
+ | ''PINUNI<sub>p2</sub>'' | ||
+ | ''NZ<sub>p2</sub>'' ''ZMIN<sub>p2</sub>'' ''ZMAX<sub>p2</sub>'' ''NA<sub>p2</sub>'' ''AMIN<sub>p2</sub>'' ''AMAX<sub>p2</sub>'' ''NR<sub>p2</sub>'' ''RMIN<sub>p2</sub>'' ''RMAX<sub>p2</sub>'' | ||
+ | ''NZ<sub>p2</sub>'' ''ZMIN<sub>p2</sub>'' ''ZMAX<sub>p2</sub>'' ''NA<sub>p2</sub>'' ''AMIN<sub>p2</sub>'' ''AMAX<sub>p2</sub>'' ''NR<sub>p2</sub>'' ''RMIN<sub>p2</sub>'' ''RMAX<sub>p2</sub>'' ''EMIN<sub>p2</sub>'' ''EMAX<sub>p2</sub>'' | ||
+ | ''NZ<sub>p2</sub>'' | ||
+ | ... | ||
+ | ... | ||
+ | ... | ||
+ | ... | ||
+ | |||
+ | Parameter <tt>''TYPE''</tt> 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. <tt>''OUTFILE''</tt> is the filename where output is written and <tt>''NPIN''</tt> is the number of fuel pins described in this interface. | ||
+ | |||
+ | After this header line, <tt>''NPIN''</tt> fuel pin descriptions follow. | ||
+ | |||
+ | ==== Fuel pin description ==== | ||
First the pin name for which the temperatures are applied is given | First the pin name for which the temperatures are applied is given | ||
− | < | + | ''PINUNI<sub>pi</sub>'' |
this should correspond to the name in the [[Input syntax manual#pin (pin geometry definition)|pin]]-definition. After that come the output meshings for power and flux in axial, angular and radial directions | this should correspond to the name in the [[Input syntax manual#pin (pin geometry definition)|pin]]-definition. After that come the output meshings for power and flux in axial, angular and radial directions | ||
− | < | + | ''NZ<sub>pi</sub>'' ''ZMIN<sub>pi</sub>'' ''ZMAX<sub>pi</sub>'' ''NA<sub>pi</sub>'' ''AMIN<sub>pi</sub>'' ''AMAX<sub>pi</sub>'' ''NR<sub>pi</sub>'' ''RMIN<sub>pi</sub>'' ''RMAX<sub>pi</sub>'' |
− | < | + | ''NZ<sub>pi</sub>'' ''ZMIN<sub>pi</sub>'' ''ZMAX<sub>pi</sub>'' ''NA<sub>pi</sub>'' ''AMIN<sub>pi</sub>'' ''AMAX<sub>pi</sub>'' ''NR<sub>pi</sub>'' ''RMIN<sub>pi</sub>'' ''RMAX<sub>pi</sub>'' ''EMIN<sub>pi</sub>'' ''EMAX<sub>pi</sub>'' |
− | |||
− | + | This sets up tallies for power and flux: <tt>''NZ''</tt> axial bins between <tt>''ZMIN''</tt> and <tt>''ZMAX''</tt>, <tt>''NA''</tt> angular bins between <tt>''AMIN''</tt> and <tt>''AMAX''</tt> (degrees), and <tt>''NR''</tt> radial bins (of equal area) between <tt>''RMIN''</tt> and <tt>''RMAX''</tt>. The detector intended for tallying the local fast flux also has energy limits <tt>''EMIN''</tt> and <tt>''EMAX''</tt>. | |
− | + | After these two output lines comes the number of axial temperature profiles that will be given for the pin: | |
− | + | ''NZ<sub>pi</sub>'' | |
− | + | This is followed by <tt>''NZ<sub>pi</sub>''</tt> axial zone descriptions | |
− | + | ==== Axial zone description ==== | |
− | + | Each of the axial zone descriptions starts with the limits of the axial zone as well as the number of angular subzones for this axial region | |
− | + | ''ZMIN1<sub>zi</sub>'' ''ZMAX1<sub>zi</sub>'' ''NA<sub>zi</sub>'' | |
− | + | After this, <tt>''NA<sub>zi</sub>''</tt> angular zone descriptions follow. | |
− | + | ||
− | + | ||
− | . | + | |
− | + | ||
− | + | ==== Angular zone description ==== | |
− | After the list of < | + | Each of the angular zone descriptions starts with the limits of the angular zone as well as the number of radial nodes to be read for the temperature distribution |
+ | |||
+ | ''AMIN1<sub>ai</sub>'' ''AMAX1<sub>ai</sub>'' ''NR<sub>ai</sub>'' | ||
+ | |||
+ | Finally, the information at <tt>''NR<sub>ai</sub>''</tt> radial nodes is given for that correspond to the current angular zone of the current axial zone of the current pin: | ||
+ | |||
+ | ''RCOLD<sub>r1</sub>'' ''RHOT<sub>r1</sub>'' ''T<sub>r1</sub>'' | ||
+ | ''RCOLD<sub>r2</sub>'' ''RHOT<sub>r2</sub>'' ''T<sub>r2</sub>'' | ||
+ | ... | ||
+ | |||
+ | Three values are given for each radial node: <tt>''RCOLD<sub>ri</sub>''</tt> the radial position of the node in cold (Serpent input) coordinates, <tt>''RHOT<sub>ri</sub>''</tt> the radial position of the node in hot (to be used for neutron tracking) coordinates and <tt>''T<sub>ri</sub>''</tt> temperature at this radial node. If <tt>''RCOLD<sub>ri</sub>''</tt> and <tt>''RHOT<sub>ri</sub>''</tt> are equal the geometry is not deformed for the neutron tracking. If the interface type is 5, <tt>''T<sub>i</sub>''</tt> is the temperature used between <tt>''RHOT<sub>r(i-1)</sub>''</tt> and <tt>''RHOT<sub>ri</sub>''</tt> giving a step profile. If the interface type is set to 6, linear interpolation is used between the radial nodes. | ||
+ | |||
+ | After the list of <tt>''NR''</tt> 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 pin have been defined comes the pin-universe for the next pin etc. | ||
=== Special cases === | === Special cases === | ||
Line 90: | Line 520: | ||
==== Axially segmented fuel rods ==== | ==== Axially segmented fuel rods ==== | ||
− | The [[Input syntax manual#pin (pin geometry definition)|pin-definitions]] in Serpent are essentially one-dimensional, which means that fuel rods that | + | The [[Input syntax manual#pin (pin geometry definition)|pin-definitions]] in Serpent are essentially one-dimensional, which means that fuel rods that consist of axial segments have to be defined as a combination of multiple pin-definitions (or without the use of pin-definitions, but the interface only works with 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 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 a single pin-universe name |
− | + | ''PINUNI'' | |
− | in the interface file | + | in the interface file, a negative number indicating the number of pin-definitions to be linked should be given followed by the pin-universe names |
− | + | -''NUNI'' ''PINUNI<sub>1</sub>'' ''PINUNI<sub>2</sub>'' ... ''PINUNI<sub>NUNI</sub>'' | |
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 | 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 | + | fuel 0.60579 |
− | void 0.62103 | + | void 0.62103 |
− | Zirc 0.71501 | + | Zirc 0.71501 |
− | cool | + | cool |
for the undoped part and | for the undoped part and | ||
− | + | '''pin''' p1yesgd | |
− | fuelgd 0.60579 | + | fuelgd 0.60579 |
− | void 0.62103 | + | void 0.62103 |
− | Zirc 0.71501 | + | Zirc 0.71501 |
− | cool | + | cool |
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: | 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''' cp1m p1combined '''fill''' p1yesgd z1 -z2 |
− | cell cp1h p1combined fill p1nogd 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 associated with this rod would then link both of the pin-definitions to the temperature field: | Now the universe p1combined can be used for example in a lattice, producing a three dimensional representation of the fuel rod. The interface file associated with this rod would then link both of the pin-definitions to the temperature field: | ||
− | + | ''TYPE'' ''OUTFILE'' ''NPIN'' | |
− | -2 p1nogd p1yesgd | + | -2 p1nogd p1yesgd |
− | + | ''NZ'' ''ZMIN'' ''ZMAX'' ''NA'' ''AMIN'' ''AMAX'' ''NR'' ''RMIN'' ''RMAX'' | |
− | + | ''NZ'' ''ZMIN'' ''ZMAX'' ''NA'' ''AMIN'' ''AMAX'' ''NR'' ''RMIN'' ''RMAX'' ''EMIN'' ''EMAX'' | |
− | ... | + | ... |
− | + | ||
==== Non-uniform output binning ==== | ==== Non-uniform output binning ==== | ||
The output binning defined by the | The output binning defined by the | ||
− | + | ''NZ'' ''ZMIN'' ''ZMAX'' ''NA'' ''AMIN'' ''AMAX'' ''NR'' ''RMIN'' ''RMAX'' | |
− | line is normally of equal volume. If an arbitrary binning is to be used instead, a negative value can be given for the number of bins, followed by < | + | line is normally of equal volume. If an arbitrary binning is to be used instead, a negative value can be given for the number of bins, followed by <tt>''NBIN''</tt>+1 bin boundaries instead of <tt>''BINMIN''</tt> and <tt>''BINMAX''</tt>. For example: |
− | + | ''NZ'' ''ZMIN'' ''ZMAX'' ''NA'' ''AMIN'' ''AMAX'' -3 0.0 0.1 0.4 0.5 | |
will define three radial bins, where the first bin is from 0.0 cm to 0.1 cm, the second one from 0.1 cm to 0.4 cm and the third bin from 0.4 cm to 0.5 cm. The practice is the same for each of the directions (axial, angular or radial). | will define three radial bins, where the first bin is from 0.0 cm to 0.1 cm, the second one from 0.1 cm to 0.4 cm and the third bin from 0.4 cm to 0.5 cm. The practice is the same for each of the directions (axial, angular or radial). | ||
+ | |||
+ | === Output === | ||
+ | |||
+ | === Examples === | ||
== Unstructured mesh based interface (type 7) == | == Unstructured mesh based interface (type 7) == | ||
+ | |||
+ | The unstructured mesh based interface has been designed to bring in solutions from solvers based on unstructured meshes (e.g. many finite volume or finite element codes). | ||
+ | |||
+ | The unstructured mesh based interface format is based on a point-face-cell hierarchy, where the user gives a number of points (vertices) that can be combined into a set of planar faces, which make up a set of closed convex cells. Since the interface file format is based on the OpenFOAM file format, OpenFOAM mesh- and field-files should be natively supported. | ||
+ | |||
+ | === Input syntax === | ||
+ | ''TYPE'' ''MAT'' ''OUT'' | ||
+ | ''OUTFILE'' | ||
+ | ''RHO0'' ''T0'' | ||
+ | ''MESH_SPLIT'' ''MESH_DIM'' ''SZ<sub>1</sub>'' ''SZ<sub>2</sub>'' ... ''SZ<sub>MESH_DIM</sub>'' | ||
+ | ''POINTS_FILE'' | ||
+ | ''FACES_FILE'' | ||
+ | ''OWNER_FILE'' | ||
+ | ''NEIGHBOUR_FILE'' | ||
+ | ''DENSITY_FILE'' ''DM'' | ||
+ | ''TEMPERATURE_FILE'' ''TM'' | ||
+ | ''MAPPING_FILE'' | ||
+ | |||
+ | The first line contains some basic information about the interface: | ||
+ | |||
+ | {| | ||
+ | | <tt>''TYPE''</tt> | ||
+ | | : the interface type (7 for unstructured mesh based interface) | ||
+ | |- | ||
+ | | <tt>''MAT''</tt> | ||
+ | | : the name of the material that the data is given for. | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (1/0). If the flag is not set, the second line is omitted. | ||
+ | |} | ||
+ | |||
+ | If the output flag is set, the second line contains the path to the output file. If the output flag is not set the second line is emitted. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : determines the file name to which the output is printed | ||
+ | |} | ||
+ | |||
+ | The next line contains the nominal density and temperature for the interface: | ||
+ | |||
+ | {| | ||
+ | | <tt>''RHO0''</tt> | ||
+ | | : Nominal density to be used for the interface | ||
+ | |- | ||
+ | | <tt>''T0''</tt> | ||
+ | | : Nominal temperature to be used for the interface | ||
+ | |} | ||
+ | |||
+ | |||
+ | The fourth line contains information about the adaptive search mesh: | ||
+ | |||
+ | {| | ||
+ | | <tt>''MESH_SPLIT''</tt> | ||
+ | | : Splitting criterion for the adaptive search mesh (maximum number of unstructured mesh cells in search mesh cell) | ||
+ | |- | ||
+ | | <tt>''MESH_DIM''</tt> | ||
+ | | : number of levels in the adaptive search mesh | ||
+ | |- | ||
+ | | <tt>''SZ<sub>i</sub>''</tt> | ||
+ | | : Size of the search mesh at level <tt>''i''</tt> | ||
+ | |} | ||
+ | |||
+ | After the options for the search mesh come the file paths: | ||
+ | |||
+ | {| | ||
+ | | <tt>''POINTS_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Points_file|points file]] | ||
+ | |- | ||
+ | | <tt>''FACES_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Faces_file|faces file]] | ||
+ | |- | ||
+ | | <tt>''OWNER_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Owner_file|owner file]] | ||
+ | |- | ||
+ | | <tt>''NEIGHBOUR_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Neighbour_file|neighbour file]] | ||
+ | |- | ||
+ | | <tt>''DENSITY_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Density_file|density file]] or -1 if the nominal density is to be used. | ||
+ | |- | ||
+ | | <tt>''DM''</tt> | ||
+ | | : Flag indicating the type of values in the density file (1 = given value is the cell density) | ||
+ | |- | ||
+ | | <tt>''TEMPERATURE_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Temperature_file|temperature file]] or -1 if the nominal temperature is to be used | ||
+ | |- | ||
+ | | <tt>''TM''</tt> | ||
+ | | : Flag indicating the type of values in the temperature file (1 = given value is the cell temperature, 2 = given value is incremented to the nominal temperature) | ||
+ | |- | ||
+ | | <tt>''MAPPING_FILE''</tt> | ||
+ | | : Path to the power [[Unstructured_mesh_based_input#Output_mapping_file|output mapping file]] or -1 (-1 maps each cell to a separate power tally bin) If the output flag is not set, this line can be omitted. | ||
+ | |} | ||
+ | |||
+ | === Output === | ||
+ | |||
+ | <u>Notes:</u> | ||
+ | |||
+ | Depending on whether or not a coupled calculation is performed, the output prints the relaxed power or power, respectively. For a general output file name <tt>OUTFILE</tt>, this contains the mean value. Nonetheless, if the output file name includes the ‘.m’ extension, <tt>OUTFILE.m</tt> (Matlab-format file), the output displays the statistics and mesh indexes, followed by the volume, mean value and relative error (in W/cm<sup>3</sup>). The latter option within a coupled calculation prints zeroes as relative error values. | ||
+ | |||
+ | === Examples === | ||
+ | |||
+ | * [[Molten_salt_tank_with_natural_circulation|Tank filled with molten salt with natural circulation based distributions.]] | ||
+ | |||
+ | == Unstructured mesh based interface with multiple materials (type 8) == | ||
+ | |||
+ | The unstructured mesh based interface has been designed to bring in solutions from solvers based on unstructured meshes (e.g. many finite volume or finite element codes). This variant of the interface supports temperature and density fields spanning multiple materials as long as the material in each of the mesh cells can be identified. The type 8 interface is used to only bring in the temperature and density fields. | ||
+ | |||
+ | The unstructured mesh based interface format is based on a point-face-cell hierarchy, where the user gives a number of points (vertices) that can be combined into a set of planar faces, which make up a set of closed convex cells. Since the interface file format is based on the OpenFOAM file format, OpenFOAM mesh- and field-files should be natively supported. | ||
+ | |||
+ | === Input syntax === | ||
+ | ''TYPE'' ''MAT'' ''OUT'' | ||
+ | ''OUTFILE'' | ||
+ | ''RHO0'' ''T0'' | ||
+ | ''MESH_SPLIT'' ''MESH_DIM'' ''SZ<sub>1</sub>'' ''SZ<sub>2</sub>'' ... ''SZ<sub>MESH_DIM</sub>'' | ||
+ | ''POINTS_FILE'' | ||
+ | ''FACES_FILE'' | ||
+ | ''OWNER_FILE'' | ||
+ | ''NEIGHBOUR_FILE'' | ||
+ | ''MATERIALS_FILE'' | ||
+ | ''DENSITY_FILE'' ''DM'' | ||
+ | ''TEMPERATURE_FILE'' ''TM'' | ||
+ | ''MAPPING_FILE'' | ||
+ | |||
+ | The first line contains some basic information about the interface: | ||
+ | |||
+ | {| | ||
+ | | <tt>''TYPE''</tt> | ||
+ | | : the interface type (8 to only bring in the solution fields) | ||
+ | |- | ||
+ | | <tt>''MAT''</tt> | ||
+ | | : the name of any of the materials that the data is given for. | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (1/0). If the flag is not set, the second line is omitted. | ||
+ | |} | ||
+ | |||
+ | If the output flag is set, the second line contains the path to the output file. If the output flag is not set the second line is emitted. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : determines the file name to which the output is printed | ||
+ | |} | ||
+ | |||
+ | The next line contains the nominal density and temperature for the interface: | ||
+ | |||
+ | {| | ||
+ | | <tt>''RHO0''</tt> | ||
+ | | : Nominal density to be used for the interface | ||
+ | |- | ||
+ | | <tt>''T0''</tt> | ||
+ | | : Nominal temperature to be used for the interface | ||
+ | |} | ||
+ | |||
+ | |||
+ | The fourth line contains information about the adaptive search mesh: | ||
+ | |||
+ | {| | ||
+ | | <tt>''MESH_SPLIT''</tt> | ||
+ | | : Splitting criterion for the adaptive search mesh (maximum number of unstructured mesh cells in search mesh cell) | ||
+ | |- | ||
+ | | <tt>''MESH_DIM''</tt> | ||
+ | | : number of levels in the adaptive search mesh | ||
+ | |- | ||
+ | | <tt>''SZ<sub>i</sub>''</tt> | ||
+ | | : Size of the search mesh at level <tt>''i''</tt> | ||
+ | |} | ||
+ | |||
+ | After the options for the search mesh come the file paths: | ||
+ | |||
+ | {| | ||
+ | | <tt>''POINTS_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Points_file|points file]] | ||
+ | |- | ||
+ | | <tt>''FACES_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Faces_file|faces file]] | ||
+ | |- | ||
+ | | <tt>''OWNER_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Owner_file|owner file]] | ||
+ | |- | ||
+ | | <tt>''NEIGHBOUR_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Neighbour_file|neighbour file]] | ||
+ | |- | ||
+ | | <tt>''MATERIALS_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Material_file|material file]] | ||
+ | |- | ||
+ | | <tt>''DENSITY_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Density_file|density file]] or -1 if the nominal density is to be used. | ||
+ | |- | ||
+ | | <tt>''DM''</tt> | ||
+ | | : Flag indicating the type of values in the density file (1 = given value is the cell density) | ||
+ | |- | ||
+ | | <tt>''TEMPERATURE_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Temperature_file|temperature file]] or -1 if the nominal temperature is to be used | ||
+ | |- | ||
+ | | <tt>''TM''</tt> | ||
+ | | : Flag indicating the type of values in the temperature file (1 = given value is the cell temperature, 2 = given value is incremented to the nominal temperature) | ||
+ | |- | ||
+ | | <tt>''MAPPING_FILE''</tt> | ||
+ | | : Path to the power [[Unstructured_mesh_based_input#Output_mapping_file|output mapping file]] or -1 (-1 maps each cell to a separate power tally bin) If the output flag is not set, this line can be omitted. | ||
+ | |} | ||
+ | |||
+ | === Output === | ||
+ | |||
+ | <u>Notes:</u> | ||
+ | |||
+ | Depending on whether or not a coupled calculation is performed, the output prints the relaxed power or power, respectively. For a general output file name <tt>OUTFILE</tt>, this contains the mean value. Nonetheless, if the output file name includes the ‘.m’ extension, <tt>OUTFILE.m</tt> (Matlab-format file), the output displays the statistics and mesh indexes, followed by the volume, mean value and relative error (in W/cm<sup>3</sup>). The latter option within a coupled calculation prints zeroes as relative error values. | ||
+ | |||
+ | === Examples === | ||
+ | *[[Simple_umsh_8_cubes_input#Traditional_geometry_.2B_unstructured_mesh_based_interface|Simple 8 cubes input example]] | ||
+ | |||
+ | == Unstructured mesh based interface and geometry definition (type 9) == | ||
+ | |||
+ | The unstructured mesh based interface has been designed to bring in solutions from solvers based on unstructured meshes (e.g. many finite volume or finite element codes). This variant of the interface supports temperature and density fields spanning multiple materials as long as the material in each of the mesh cells can be identified. The type 9 interface will also create a geometry universe and geometry cells based on the mesh definition and has to be linked to the main input using the [[Input_syntax_manual#solid_.28irregular_3D_geometry_definition.29|<tt>'''solid 3'''</tt>]] input card and not the <tt>''ifc''</tt> card like the other interfaces. | ||
+ | |||
+ | The unstructured mesh based interface format is based on a point-face-cell hierarchy, where the user gives a number of points (vertices) that can be combined into a set of planar faces, which make up a set of closed convex cells. Since the interface file format is based on the OpenFOAM file format, OpenFOAM mesh- and field-files should be natively supported. | ||
+ | |||
+ | === Input syntax === | ||
+ | ''TYPE'' ''UNI'' ''BG_UNI'' ''OUT'' | ||
+ | ''OUTFILE'' | ||
+ | ''RHO0'' ''T0'' | ||
+ | ''MESH_SPLIT'' ''MESH_DIM'' ''SZ<sub>1</sub>'' ''SZ<sub>2</sub>'' ... ''SZ<sub>MESH_DIM</sub>'' | ||
+ | ''POINTS_FILE'' | ||
+ | ''FACES_FILE'' | ||
+ | ''OWNER_FILE'' | ||
+ | ''NEIGHBOUR_FILE'' | ||
+ | ''MATERIALS_FILE'' | ||
+ | ''DENSITY_FILE'' ''DM'' | ||
+ | ''TEMPERATURE_FILE'' ''TM'' | ||
+ | ''MAPPING_FILE'' | ||
+ | |||
+ | |||
+ | The first line contains some basic information about the interface: | ||
+ | |||
+ | {| | ||
+ | | <tt>''TYPE''</tt> | ||
+ | | : the interface type (9 to also create the geometry) | ||
+ | |- | ||
+ | | <tt>''UNI''</tt> | ||
+ | | : universe name for the irregular geometry | ||
+ | |- | ||
+ | | <tt>''BGUNI''</tt> | ||
+ | | : name of the background universe filling all undefined space | ||
+ | |- | ||
+ | | <tt>''OUT''</tt> | ||
+ | | : the output flag (1/0). If the flag is not set, the second line is omitted. | ||
+ | |} | ||
+ | |||
+ | If the output flag is set, the next parameter contains the path to the output file. If the output flag is not set the next parameter should be omitted. The parameters for the output are: | ||
+ | |||
+ | {| | ||
+ | | <tt>''OUTFILE''</tt> | ||
+ | | : determines the file name to which the output is printed | ||
+ | |} | ||
+ | |||
+ | The next line contains the nominal density and temperature for the interface: | ||
+ | |||
+ | {| | ||
+ | | <tt>''RHO0''</tt> | ||
+ | | : Nominal density to be used for the interface | ||
+ | |- | ||
+ | | <tt>''T0''</tt> | ||
+ | | : Nominal temperature to be used for the interface | ||
+ | |} | ||
+ | |||
+ | |||
+ | The fourth line contains information about the adaptive search mesh: | ||
+ | |||
+ | {| | ||
+ | | <tt>''MESH_SPLIT''</tt> | ||
+ | | : Splitting criterion for the adaptive search mesh (maximum number of unstructured mesh cells in search mesh cell) | ||
+ | |- | ||
+ | | <tt>''MESH_DIM''</tt> | ||
+ | | : number of levels in the adaptive search mesh | ||
+ | |- | ||
+ | | <tt>''SZ<sub>i</sub>''</tt> | ||
+ | | : Size of the search mesh at level <tt>''i''</tt> | ||
+ | |} | ||
+ | |||
+ | After the options for the search mesh come the file paths: | ||
+ | |||
+ | {| | ||
+ | | <tt>''POINTS_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Points_file|points file]] | ||
+ | |- | ||
+ | | <tt>''FACES_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Faces_file|faces file]] | ||
+ | |- | ||
+ | | <tt>''OWNER_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Owner_file|owner file]] | ||
+ | |- | ||
+ | | <tt>''NEIGHBOUR_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Neighbour_file|neighbour file]] | ||
+ | |- | ||
+ | | <tt>''MATERIALS_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Material_file|material file]] | ||
+ | |- | ||
+ | | <tt>''DENSITY_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Density_file|density file]] or -1 if the nominal density is to be used. | ||
+ | |- | ||
+ | | <tt>''DM''</tt> | ||
+ | | : Flag indicating the type of values in the density file (1 = given value is the cell density) | ||
+ | |- | ||
+ | | <tt>''TEMPERATURE_FILE''</tt> | ||
+ | | : Path to the unstructured mesh [[Unstructured_mesh_based_input#Temperature_file|temperature file]] or -1 if the nominal temperature is to be used | ||
+ | |- | ||
+ | | <tt>''TM''</tt> | ||
+ | | : Flag indicating the type of values in the temperature file (1 = given value is the cell temperature, 2 = given value is incremented to the nominal temperature) | ||
+ | |- | ||
+ | | <tt>''MAPPING_FILE''</tt> | ||
+ | | : Path to the power [[Unstructured_mesh_based_input#Output_mapping_file|output mapping file]] or -1 (-1 maps each cell to a separate power tally bin) If the output flag is not set, this line can be omitted. | ||
+ | |} | ||
+ | |||
+ | === Output === | ||
+ | |||
+ | <u>Notes:</u> | ||
+ | |||
+ | Depending on whether or not a coupled calculation is performed, the output prints the relaxed power or power, respectively. For a general output file name <tt>OUTFILE</tt>, this contains the mean value. Nonetheless, if the output file name includes the ‘.m’ extension, <tt>OUTFILE.m</tt> (Matlab-format file), the output displays the statistics and mesh indexes, followed by the volume, mean value and relative error (in W/cm<sup>3</sup>). The latter option within a coupled calculation prints zeroes as relative error values. | ||
+ | |||
+ | === Examples === | ||
+ | *[[Simple_umsh_8_cubes_input#Unstructured_mesh_based_geometry_and_interface|Simple eight cubes input example]] | ||
+ | |||
+ | [[Category:Input]] |
Latest revision as of 10:53, 9 August 2022
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.
Contents
- 1 List of multi-physics interface filetypes
- 2 Usage instructions
- 3 Point-average interface (type 1)
- 4 Regular mesh based interface (type 2)
- 5 Nested regular mesh based interface (type 22)
- 6 User defined functional dependence (type 3)
- 7 Functional expansion tally based interface (type 31 and 32)
- 8 Tetrahedral mesh interface (type 4)
- 9 Fuel behavior interface (types 5 and 6)
- 10 Unstructured mesh based interface (type 7)
- 11 Unstructured mesh based interface with multiple materials (type 8)
- 12 Unstructured mesh based interface and geometry definition (type 9)
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. |
8 | Unstructured mesh with many materials | Based on OpenFOAM file format. |
9 | Unstructured mesh based geometry + interface. | Based on OpenFOAM file format. Also creates the mesh based geometry. |
Usage instructions
The interface is linked to the main input file with the ifc command:
ifc FILE
where FILE is the path to the interface definition file. The descriptions for the interface definition files of the different interface types are given below. Multiple interfaces can be linked to a single input e.g. for bringing in temperature/density data for multiple materials.
The Doppler preprocessor should be disabled for materials receiving their temperature distributions from an interface by removing any tmp <temperature> definitions from the material cards. Serpent can deduce the minimum and maximum temperature for the TMS-treatment directly from the interface files. If this interval is to be extended, it can be done by using the tft <TMIN> <TMAX> definition in the material card.
Point-average interface (type 1)
The point-average interface is a way to bring in temperatures and densities for a single material in a number of discrete points in the geometry. During neutron transport Serpent will calculate the temperature and density in an interaction point as an average of the values of nearby interface points.
Input syntax
The input syntax for the interface file is
TYPE MAT OUT OUTFILE NZ ZMIN ZMAX NR DIM RAD EXP NP X1 Y1 Z1 DENS1 T1 X2 Y2 Z2 DENS2 T2 ...
The first line contains three parameters:
TYPE | : the interface type (1 for point-average interface) |
MAT | : the name of the material that the data is given for. |
OUT | : the output flag (1/0). If the flag is not set, the second line is omitted. |
If the output flag is set, the second line contains parameters for the fission power output. If the output flag is not set the second line is emitted. The parameters for the output are:
OUTFILE | : determines the file name to which the output is printed |
NZ | : is the number of axial bins for pin-wise power distributions |
ZMIN | : is the minimum axial coordinate of the power distribution. |
ZMAX | : is the maximum axial coordinate of the power distribution. |
NR | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. |
The third line contains:
DIM | : The dimension of the distribution (1 = z-dependence only, 2 = x- and y-dependence, 3 = x-, y- and z-dependence). |
RAD | : The exclusion radius, beyond which the points are not included in the average. |
EXP | : The exponent for the averaging process. |
If the exclusion radius RAD is too small, some parts of the region may not be properly covered. If the radius is large, more CPU time is required for calculating the average. Setting the exponent EXP to 1 means that the average is based on distance, EXP = 2 means square distance, and so on.
The fourth line gives the number of points NP to be given and the remaining lines give the data in each of the points: If DIM = 1, only Zi is given, if DIM = 2, only Xi and Yi are given). Parameter DENSi is the material density at the point (negative values for mass density, positive values for atomic density) and Ti is the temperature.
Output
If the output flag is set, Serpent calculates power distributions in pin-type objects that are enclosed within the interface material (e.g. fuel pins inside coolant). The output file contains fission powers in cylindrical regions, one region per line. The parameters in each line are:
X0 Y0 Z0 X1 Y1 Z1 R0 R1 P dP
The first six values give the top and bottom center coordinates of the cylindrical region. The next two parameters are the inner and outer radius of the ring, and the last two values are the integral fission power and the associated relative statistical error.
Regular mesh based interface (type 2)
The regular mesh based interface is a way to bring in temperatures and densities on a regular Cartesian or hexagonal mesh or on an irregular Cartesian mesh. The format has a wide variety of uses such as bringing in information from nodal codes, channel/subchannel codes etc.
Input syntax
The input syntax for the interface file is
TYPE MAT OUT OUTFILE [omit line if OUT is set to 0] NZ ZMIN ZMAX NR [omit line if OUT is not set to 1] MESHTYPE [MESH DATA] DENS1 T1 DENS2 T2 ...
The first line contains the interface type (2) followed by two parameters:
MAT | : the name of the material that the data is given for. |
OUT | : the output flag (2/1/0) == (same mesh/at pins/no output). |
If output was requested by setting the OUT flag to something other than 0, the next line contains the output file name:
OUTFILE | : determines the file name to which the output is printed (omitted if the OUT flag is set to 0) |
If the output flag is set to 2, fission power will be tallied on the same mesh as the interface data is given.
If the output flag is set to 1, a line containing parameters for the fission power output should follow. The parameters for the output are:
NZ | : is the number of axial bins for pin-wise power distributions |
ZMIN | : is the minimum axial coordinate of the power distribution. |
ZMAX | : is the maximum axial coordinate of the power distribution. |
NR | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. |
The third line defines the type of the mesh used for the data: MESHTYPE is an integer indicating the type of the mesh (1 = regular Cartesian, 2 = 2D cylindrical, 4 = x-type hexagonal, 5 = y-type hexagonal, 6 = unevenly Cartesian, 8 = radially irregular 2D cylindrical). After the mesh type definition, the mesh data is given. The mesh data depends on the mesh type as described in the following section.
Finally, after the mesh data NX×NY×NZ pairs of values indicating the density and temperature in each of the cells follow. Positive densities are interpreted as atomic densities and negative densities as mass densities. The ordering of the cells is such that the x-index increases first, then the y-index and finally the z-index.
Mesh data
The mesh data depends on the mesh type chosen for the data. For the regular Cartesian mesh (type 1), the mesh data is simply
NX XMIN XMAX NY YMIN YMAX NZ ZMIN ZMAX
where NX, NY and NZ are the number of mesh cells in each of the directions and XMIN, XMAX etc. indicate the limits of the mesh. I.e. the mesh is divided into NX equally wide cells between XMIN and XMAX.
For the regular 2D cylindrical mesh (type 2), the mesh data is
NR RMIN RMAX NPHI
where NR is the number of mesh cells in the radial direction, RMIN and RMAX are the radial limits of the mesh, and NPHI is the number of mesh cells in the polar-angle direction. The number of mesh cells in the axial direction is 1.
In the case of hexagonal meshes (types 4 and 5), the mesh data is
X0 Y0 PITCH ZMIN ZMAX NX NY NZ
with X0 and Y0 indicating the horizontal centerpoint of the mesh, PITCH being the horizontal pitch between adjacent mesh cells, ZMIN and ZMAX indicating the axial limits of the mesh and NX, NY and NZ indicating the number of cells in each direction. The mesh is divided axially into equally high segments.
For the irregular Cartesian mesh (type 6), the mesh data consists of
NX NY NZ X1 X2 ... XNX+1 Y1 Y2 ... YNY+1 Z1 Z2 ... ZNZ+1
i.e. the number of cells in each coordinate direction followed by lists of coordinates in each direction forming the boundaries of the cells.
For the radially irregular 2D cylindrical mesh (type 8), the mesh data consists of
NR NPHI R1 R2 ... RNR+1
i.e. the number of cells in the radial and polar-angle directions followed by the list of coordinates in the radial direction forming the boundaries of the cells. The number of mesh cells in the axial direction is 1.
Output
If the output flag is set, Serpent calculates power distributions in pin-type objects that are enclosed within the interface material (e.g. fuel pins inside coolant). The output file contains fission powers in cylindrical regions, one region per line. The parameters in each line are:
X0 Y0 Z0 X1 Y1 Z1 R0 R1 P dP
The first six values give the top and bottom center coordinates of the cylindrical region. The next two parameters are the inner and outer radius of the ring, and the last two values are the integral fission power and the associated relative statistical error.
Examples
Regular Hex Mesh fuel-interface with 7 assemblies
Regular Hex Mesh coolant-interface single assembly
Nested regular mesh based interface (type 22)
The nested regular mesh based interface is a way to bring in temperatures and densities on a multi-level regular cartesian or hexagonal mesh. The format is specifically intended for bringing in data for full-core calculations with a separate assembly-lattice and a pin-lattice.
Input syntax
The input syntax for the interface file is
22 MAT OUT OUTFILE [omit line if OUT is set to 0] NZ ZMIN ZMAX NR [omit line if OUT is not set to 1] NMESH MESHTYPE1 PARAMETERS FOR MESH 1 [See previous section for the mesh parameters line description] ... MESHTYPENMESH PARAMETERS FOR MESH NMESH [See previous section for the mesh parameters line description] DENS1 T1 DENS2 T2 ...
The first line contains the interface type (22) followed by two parameters:
MAT | : the name of the material that the data is given for. |
OUT | : the output flag (2/1/0) == (same mesh/at pins/no output). |
If output was requested by setting the OUT flag to something other than 0, the next line contains the output file name:
OUTFILE | : determines the file name to which the output is printed (omitted if the OUT flag is set to 0) |
If the output flag is set to 2, fission power will be tallied on the same mesh as the interface data is given.
If the output flag is set to 1, a line containing parameters for the fission power output should follow. The parameters for the output are:
NZ | : is the number of axial bins for pin-wise power distributions |
ZMIN | : is the minimum axial coordinate of the power distribution. |
ZMAX | : is the maximum axial coordinate of the power distribution. |
NR | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. |
The third line contains the number of nested meshes NMESH.
After this NMESH mesh definitions follow consisting of
- An integer indicating the mesh type MESHTYPEi.
- A line with the mesh parameters depending on the mesh type. See the previous section for detailed information on the required parameters.
After the NMESH mesh definitions, density-temperature value pairs for all of the cells follow. The number of these value-pairs should be equal to the total number of cells in the nested mesh definition, i.e.
.
User defined functional dependence (type 3)
![](/mediawiki/images/2/2d/IFC_3_axial_density.png)
The user defined functional dependence interface allows the user to pass a number of arbitrary input parameters to Serpent, that are passed to subroutine "userifc.c", along with local coordinates. The subroutine can be modified to include any kind of functional distribution. The interface file has almost no error tolerance, so be sure that all required values are entered and in the correct order.
Input syntax
The input syntax for the interface file is
TYPE MAT OUT OUTFILE NZ ZMIN ZMAX NR NP P1 P2 ...
The first line contains three parameters:
TYPE | : the interface type (3 for user defined functional dependence) |
MAT | : the name of the material that the data is given for. |
OUT | : the output flag (1/0). If the flag is not set, the second line is omitted. |
If the output flag is set, the second line contains parameters for the fission power output. If the output flag is not set the second line is emitted. The parameters for the output are:
OUTFILE | : determines the file name to which the output is printed |
NZ | : is the number of axial bins for pin-wise power distributions |
ZMIN | : is the minimum axial coordinate of the power distribution. |
ZMAX | : is the maximum axial coordinate of the power distribution. |
NR | : gives the number of radial bins in the power distribution. The radial bins are of equal volume. |
After the output parameters, the number of parameters to be read from the file NP is indicated followed by NP arbitrary parameters (integers or floating point numbers).
Output
If the output flag is set, Serpent calculates power distributions in pin-type objects that are enclosed within the interface material (e.g. fuel pins inside coolant). The output file contains fission powers in cylindrical regions, one region per line. The parameters in each line are:
X0 Y0 Z0 X1 Y1 Z1 R0 R1 P dP
The first six values give the top and bottom center coordinates of the cylindrical region. The next two parameters are the inner and outer radius of the ring, and the last two values are the integral fission power and the associated relative statistical error.
Functional expansion tally based interface (type 31 and 32)
The functional expansion tally-based interface is a way to bring in temperatures (type 31) and densities (type 32) in a functional format. The interface follows the functional expansion tally (FET) methodology, based on an orthonormal polynomial basis for Cartesian geometries (Legendre polynomials) and cylindrical geometries (Zernike + Legendre polynomials).
Input syntax
The input syntax for the interface file is depends on the geometry type, more precisely, the associated polynomial basis.
TYPE FET_TYPE MAT OUT OUTER_MAT OUTFILE OUT_SPEC [omit line if OUT is set to 0] FET_OUT_PARAMS [omit line if OUT_SPEC is set to 1] FET_IN_PARAMS FET_COEF
The first line contains four parameters:
TYPE | : the interface type 31 or 32 (FET-based interface) depending whether the data exchanged corresponds to temperature or density, respectively |
FET_TYPE | : geometry type or polynomial basis (1 = Cartesian: Legendre polynomials, 2 = cylindrical: Zernike + Legendre polynomials) |
MAT | : the name of the material that the data is given for |
OUT | : the output flag (0/no, 1/yes). |
If the output flag is set, the second line contains parameters for the fission power output. If the output flag is not set the second line is omitted. The parameters for the output are:
OUTER_MAT | : the name of the outermost material |
OUTFILE | : file name to which the output is printed |
OUT_SPEC | : flag to set the same input/output parameter options (0/no, 1/yes) |
If the input and output FETs parameters different, the third line contains such output FETs parameters for the fission power output. If the flag is not set the third line is omitted.
The fourth line describes the input FETs parameters for the temperature or density input.
Both FET_OUT_PARAMS and FET_IN_PARAMS follow the same syntax as described for functional expansion detectors (see dfet, under PARAMS), which would depend on the geometry type (and polynomial basis).
Finally, the fifth line includes the temperature- or density-coefficients FET_COEF describing the functional expansion.
Output
If the output flag is set, Serpent outputs the fission power as FET coefficients. The output syntax for the interface file depends on the geometry type, more precisely, the associated polynomial basis. Serpent includes a summary of the FET parameters followed by the actual coefficients (mean and relative error). The output parameters for Cartesian (Legendre polynomials) and cylindrical (Zernike + Legendre polynomials) are, respectively:
Cartesian XMIN XMAX XORDER YMIN YMAX YORDER ZMIN ZMAX ZORDER NREGION REGION COEF_LINEAR_IDX COEF_ZORDER COEF_YORDER COEF_XORDER COEF_MEAN COEF_RERR
Cylindrical RMIN RMAX RORDER AMIN AMAX AORDER NREGION REGION COEF_LINEAR_IDX COEF_RORDER COEF_RRANK COEF_AORDER COEF_MEAN COEF_RERR
Tetrahedral mesh interface (type 4)
The tetrahedral mesh interface has been replaced with the OpenFOAM-based interface format, which offers the same functionality with some additional benefits.
Fuel behavior interface (types 5 and 6)
The fuel behavior interface is designed for bringing in temperature and radial expansion data from fuel behavior / fuel performance codes using the traditional "1.5 dimensional" (z,r) coordinate system.
Input syntax
TYPE OUTFILE NPIN PINUNIp1 NZp1 ZMINp1 ZMAXp1 NAp1 AMINp1 AMAXp1 NRp1 RMINp1 RMAXp1 NZp1 ZMINp1 ZMAXp1 NAp1 AMINp1 AMAXp1 NRp1 RMINp1 RMAXp1 EMINp1 EMAXp1 NZp1 ZMINz1 ZMAXz1 NAz1 AMINa1 AMAXa1 NRa1 RCOLDr1 RHOTr1 Tr1 RCOLDr2 RHOTr2 Tr2 ... AMINa2 AMAXa2 NRa2 RCOLDr1 RHOTr1 Tr1 RCOLDr2 RHOTr2 Tr2 ... ... ZMINz2 ZMAXz2 NAz2 AMINa1 AMAXa1 NRa1 RCOLDr1 RHOTr1 Tr1 RCOLDr2 RHOTr2 Tr2 ... AMINa2 AMAXa2 NRa2 RCOLDr1 RHOTr1 Tr1 RCOLDr2 RHOTr2 Tr2 ... ... ... PINUNIp2 NZp2 ZMINp2 ZMAXp2 NAp2 AMINp2 AMAXp2 NRp2 RMINp2 RMAXp2 NZp2 ZMINp2 ZMAXp2 NAp2 AMINp2 AMAXp2 NRp2 RMINp2 RMAXp2 EMINp2 EMAXp2 NZp2 ... ... ... ...
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, NPIN fuel pin descriptions follow.
Fuel pin description
First the pin name for which the temperatures are applied is given
PINUNIpi
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
NZpi ZMINpi ZMAXpi NApi AMINpi AMAXpi NRpi RMINpi RMAXpi NZpi ZMINpi ZMAXpi NApi AMINpi AMAXpi NRpi RMINpi RMAXpi EMINpi EMAXpi
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 pin:
NZpi
This is followed by NZpi axial zone descriptions
Axial zone description
Each of the axial zone descriptions starts with the limits of the axial zone as well as the number of angular subzones for this axial region
ZMIN1zi ZMAX1zi NAzi
After this, NAzi angular zone descriptions follow.
Angular zone description
Each of the angular zone descriptions starts with the limits of the angular zone as well as the number of radial nodes to be read for the temperature distribution
AMIN1ai AMAX1ai NRai
Finally, the information at NRai radial nodes is given for that correspond to the current angular zone of the current axial zone of the current pin:
RCOLDr1 RHOTr1 Tr1 RCOLDr2 RHOTr2 Tr2 ...
Three values are given for each radial node: RCOLDri the radial position of the node in cold (Serpent input) coordinates, RHOTri the radial position of the node in hot (to be used for neutron tracking) coordinates and Tri temperature at this radial node. If RCOLDri and RHOTri are equal the geometry is not deformed for the neutron tracking. If the interface type is 5, Ti is the temperature used between RHOTr(i-1) and RHOTri 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 pin have been defined comes the pin-universe for the next pin etc.
Special cases
Axially segmented fuel rods
The pin-definitions in Serpent are essentially one-dimensional, which means that fuel rods that consist of axial segments have to be defined as a combination of multiple pin-definitions (or without the use of pin-definitions, but the interface only works with 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 a single pin-universe name
PINUNI
in the interface file, a negative number indicating the number of pin-definitions to be linked should be given followed by the pin-universe names
-NUNI PINUNI1 PINUNI2 ... PINUNINUNI
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 cool
for the undoped part and
pin p1yesgd fuelgd 0.60579 void 0.62103 Zirc 0.71501 cool
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 associated with this rod would then link both of the pin-definitions to the temperature field:
TYPE OUTFILE NPIN -2 p1nogd p1yesgd NZ ZMIN ZMAX NA AMIN AMAX NR RMIN RMAX NZ ZMIN ZMAX NA AMIN AMAX NR RMIN RMAX EMIN EMAX ...
Non-uniform output binning
The output binning defined by the
NZ ZMIN ZMAX NA AMIN AMAX NR RMIN RMAX
line is normally of equal volume. If an arbitrary binning is to be used instead, a negative value can be given for the number of bins, followed by NBIN+1 bin boundaries instead of BINMIN and BINMAX. For example:
NZ ZMIN ZMAX NA AMIN AMAX -3 0.0 0.1 0.4 0.5
will define three radial bins, where the first bin is from 0.0 cm to 0.1 cm, the second one from 0.1 cm to 0.4 cm and the third bin from 0.4 cm to 0.5 cm. The practice is the same for each of the directions (axial, angular or radial).
Output
Examples
Unstructured mesh based interface (type 7)
The unstructured mesh based interface has been designed to bring in solutions from solvers based on unstructured meshes (e.g. many finite volume or finite element codes).
The unstructured mesh based interface format is based on a point-face-cell hierarchy, where the user gives a number of points (vertices) that can be combined into a set of planar faces, which make up a set of closed convex cells. Since the interface file format is based on the OpenFOAM file format, OpenFOAM mesh- and field-files should be natively supported.
Input syntax
TYPE MAT OUT OUTFILE RHO0 T0 MESH_SPLIT MESH_DIM SZ1 SZ2 ... SZMESH_DIM POINTS_FILE FACES_FILE OWNER_FILE NEIGHBOUR_FILE DENSITY_FILE DM TEMPERATURE_FILE TM MAPPING_FILE
The first line contains some basic information about the interface:
TYPE | : the interface type (7 for unstructured mesh based interface) |
MAT | : the name of the material that the data is given for. |
OUT | : the output flag (1/0). If the flag is not set, the second line is omitted. |
If the output flag is set, the second line contains the path to the output file. If the output flag is not set the second line is emitted. The parameters for the output are:
OUTFILE | : determines the file name to which the output is printed |
The next line contains the nominal density and temperature for the interface:
RHO0 | : Nominal density to be used for the interface |
T0 | : Nominal temperature to be used for the interface |
The fourth line contains information about the adaptive search mesh:
MESH_SPLIT | : Splitting criterion for the adaptive search mesh (maximum number of unstructured mesh cells in search mesh cell) |
MESH_DIM | : number of levels in the adaptive search mesh |
SZi | : Size of the search mesh at level i |
After the options for the search mesh come the file paths:
POINTS_FILE | : Path to the unstructured mesh points file |
FACES_FILE | : Path to the unstructured mesh faces file |
OWNER_FILE | : Path to the unstructured mesh owner file |
NEIGHBOUR_FILE | : Path to the unstructured mesh neighbour file |
DENSITY_FILE | : Path to the unstructured mesh density file or -1 if the nominal density is to be used. |
DM | : Flag indicating the type of values in the density file (1 = given value is the cell density) |
TEMPERATURE_FILE | : Path to the unstructured mesh temperature file or -1 if the nominal temperature is to be used |
TM | : Flag indicating the type of values in the temperature file (1 = given value is the cell temperature, 2 = given value is incremented to the nominal temperature) |
MAPPING_FILE | : Path to the power output mapping file or -1 (-1 maps each cell to a separate power tally bin) If the output flag is not set, this line can be omitted. |
Output
Notes:
Depending on whether or not a coupled calculation is performed, the output prints the relaxed power or power, respectively. For a general output file name OUTFILE, this contains the mean value. Nonetheless, if the output file name includes the ‘.m’ extension, OUTFILE.m (Matlab-format file), the output displays the statistics and mesh indexes, followed by the volume, mean value and relative error (in W/cm3). The latter option within a coupled calculation prints zeroes as relative error values.
Examples
Unstructured mesh based interface with multiple materials (type 8)
The unstructured mesh based interface has been designed to bring in solutions from solvers based on unstructured meshes (e.g. many finite volume or finite element codes). This variant of the interface supports temperature and density fields spanning multiple materials as long as the material in each of the mesh cells can be identified. The type 8 interface is used to only bring in the temperature and density fields.
The unstructured mesh based interface format is based on a point-face-cell hierarchy, where the user gives a number of points (vertices) that can be combined into a set of planar faces, which make up a set of closed convex cells. Since the interface file format is based on the OpenFOAM file format, OpenFOAM mesh- and field-files should be natively supported.
Input syntax
TYPE MAT OUT OUTFILE RHO0 T0 MESH_SPLIT MESH_DIM SZ1 SZ2 ... SZMESH_DIM POINTS_FILE FACES_FILE OWNER_FILE NEIGHBOUR_FILE MATERIALS_FILE DENSITY_FILE DM TEMPERATURE_FILE TM MAPPING_FILE
The first line contains some basic information about the interface:
TYPE | : the interface type (8 to only bring in the solution fields) |
MAT | : the name of any of the materials that the data is given for. |
OUT | : the output flag (1/0). If the flag is not set, the second line is omitted. |
If the output flag is set, the second line contains the path to the output file. If the output flag is not set the second line is emitted. The parameters for the output are:
OUTFILE | : determines the file name to which the output is printed |
The next line contains the nominal density and temperature for the interface:
RHO0 | : Nominal density to be used for the interface |
T0 | : Nominal temperature to be used for the interface |
The fourth line contains information about the adaptive search mesh:
MESH_SPLIT | : Splitting criterion for the adaptive search mesh (maximum number of unstructured mesh cells in search mesh cell) |
MESH_DIM | : number of levels in the adaptive search mesh |
SZi | : Size of the search mesh at level i |
After the options for the search mesh come the file paths:
POINTS_FILE | : Path to the unstructured mesh points file |
FACES_FILE | : Path to the unstructured mesh faces file |
OWNER_FILE | : Path to the unstructured mesh owner file |
NEIGHBOUR_FILE | : Path to the unstructured mesh neighbour file |
MATERIALS_FILE | : Path to the unstructured mesh material file |
DENSITY_FILE | : Path to the unstructured mesh density file or -1 if the nominal density is to be used. |
DM | : Flag indicating the type of values in the density file (1 = given value is the cell density) |
TEMPERATURE_FILE | : Path to the unstructured mesh temperature file or -1 if the nominal temperature is to be used |
TM | : Flag indicating the type of values in the temperature file (1 = given value is the cell temperature, 2 = given value is incremented to the nominal temperature) |
MAPPING_FILE | : Path to the power output mapping file or -1 (-1 maps each cell to a separate power tally bin) If the output flag is not set, this line can be omitted. |
Output
Notes:
Depending on whether or not a coupled calculation is performed, the output prints the relaxed power or power, respectively. For a general output file name OUTFILE, this contains the mean value. Nonetheless, if the output file name includes the ‘.m’ extension, OUTFILE.m (Matlab-format file), the output displays the statistics and mesh indexes, followed by the volume, mean value and relative error (in W/cm3). The latter option within a coupled calculation prints zeroes as relative error values.
Examples
Unstructured mesh based interface and geometry definition (type 9)
The unstructured mesh based interface has been designed to bring in solutions from solvers based on unstructured meshes (e.g. many finite volume or finite element codes). This variant of the interface supports temperature and density fields spanning multiple materials as long as the material in each of the mesh cells can be identified. The type 9 interface will also create a geometry universe and geometry cells based on the mesh definition and has to be linked to the main input using the solid 3 input card and not the ifc card like the other interfaces.
The unstructured mesh based interface format is based on a point-face-cell hierarchy, where the user gives a number of points (vertices) that can be combined into a set of planar faces, which make up a set of closed convex cells. Since the interface file format is based on the OpenFOAM file format, OpenFOAM mesh- and field-files should be natively supported.
Input syntax
TYPE UNI BG_UNI OUT OUTFILE RHO0 T0 MESH_SPLIT MESH_DIM SZ1 SZ2 ... SZMESH_DIM POINTS_FILE FACES_FILE OWNER_FILE NEIGHBOUR_FILE MATERIALS_FILE DENSITY_FILE DM TEMPERATURE_FILE TM MAPPING_FILE
The first line contains some basic information about the interface:
TYPE | : the interface type (9 to also create the geometry) |
UNI | : universe name for the irregular geometry |
BGUNI | : name of the background universe filling all undefined space |
OUT | : the output flag (1/0). If the flag is not set, the second line is omitted. |
If the output flag is set, the next parameter contains the path to the output file. If the output flag is not set the next parameter should be omitted. The parameters for the output are:
OUTFILE | : determines the file name to which the output is printed |
The next line contains the nominal density and temperature for the interface:
RHO0 | : Nominal density to be used for the interface |
T0 | : Nominal temperature to be used for the interface |
The fourth line contains information about the adaptive search mesh:
MESH_SPLIT | : Splitting criterion for the adaptive search mesh (maximum number of unstructured mesh cells in search mesh cell) |
MESH_DIM | : number of levels in the adaptive search mesh |
SZi | : Size of the search mesh at level i |
After the options for the search mesh come the file paths:
POINTS_FILE | : Path to the unstructured mesh points file |
FACES_FILE | : Path to the unstructured mesh faces file |
OWNER_FILE | : Path to the unstructured mesh owner file |
NEIGHBOUR_FILE | : Path to the unstructured mesh neighbour file |
MATERIALS_FILE | : Path to the unstructured mesh material file |
DENSITY_FILE | : Path to the unstructured mesh density file or -1 if the nominal density is to be used. |
DM | : Flag indicating the type of values in the density file (1 = given value is the cell density) |
TEMPERATURE_FILE | : Path to the unstructured mesh temperature file or -1 if the nominal temperature is to be used |
TM | : Flag indicating the type of values in the temperature file (1 = given value is the cell temperature, 2 = given value is incremented to the nominal temperature) |
MAPPING_FILE | : Path to the power output mapping file or -1 (-1 maps each cell to a separate power tally bin) If the output flag is not set, this line can be omitted. |
Output
Notes:
Depending on whether or not a coupled calculation is performed, the output prints the relaxed power or power, respectively. For a general output file name OUTFILE, this contains the mean value. Nonetheless, if the output file name includes the ‘.m’ extension, OUTFILE.m (Matlab-format file), the output displays the statistics and mesh indexes, followed by the volume, mean value and relative error (in W/cm3). The latter option within a coupled calculation prints zeroes as relative error values.