11.7. Miscellaneous Useful Information

11.7.1. Processing of ENDF Tapes

ENDF/B formatted files are read in some of the AMPX modules. A number of functions to read and in some cases write parts of ENDF/B formatted files are collected in the EndfLib library. A more modern and modular version of this library is provided in EndfCLib, which is used in AMPX modules written in C++. The basic building blocks of an ENDF/B formatted file are control records, text records, list records, tab1 records, tab2 records, and intg records (see ENDF-102 manual for details [ampx-Her09]). The older library functions implemented in FORTRAN read the nuclear data files into memory, but they still require the calling program to be aware of the ENDF structure. The new library functions implemented in C++ store the ENDF data in structures that are closely tied to the actual data. In the case of the new C++ library, an interface layer between the ENDF data files and the processing code allows easy support for new formats of the nuclear data files like the GND format developed by Lawrence Livermore National Laboratory (LLNL) [ampx-MBP+12]. The new library is mostly used in Y12, the module used to process kinematic data. The module PUFF-IV, which is used to process covariance information, uses its own ENDF reading library that predates the two AMPX libraries.

11.7.2. File Formats Used in AMPX

11.7.2.1. Tab1 Formats

Many programs that need cross section vs. energy data for different reaction and temperatures use a binary TAB1 format for the files. The format closely resembles the format for File 3 in an ENDF formatted file, except that the definitions for some of the fields in the control records have different meanings, depending on the data stored in the file. The energy and cross section data can be given in single or double precision. Most programs will automatically detect the difference. An exception is the module CHARMIN that converts between different forms of the tab1 formatted files. The file format consists of one or more Type 1 records and ends in a Type 2 control record.

Type 1 record

MAT,MF,MT,AWR, ZA, L11,L21,N11,N21
MAT,MF,MT,TEMP,SIG0,L12,L22,N21,N22, (NBT(I),INT(I),I=1,N21), (X(I),Y(I),I=1,N22)
MAT,MF,MT,0.0, 0.0, 0,0,0,0

The values for AWR,ZA,TEMP and SIG0 are always single precision float values. The values for X and Y can be single or double precision float values. However, all X and Y values in a given file have to be of the same type.

Type 2 record

MAT,0,0,0.0,0.0,0,0

The C++ class Tab1Container in endfCLib can be used to access the data. Child classes implement the disk I/O for the data. For an example on how to use Tab1Container_m, look at the PICKEZE module. The module CHARMIN will convert between allowed formats of the Tab1 file.

11.7.2.2. Kinematics File

Y12 writes a kinematics file in a native format. For historical reasons, there are a couple of other kinematic file formats used in AMPX. However, these file formats will be phased out as the modernization of AMPX progresses. The only other format still in use is the legacy Y12 format, which is used by the CRAWDAD module in SCALE to read scattering kernel data for thermal moderators. The C++ class KinematicContainer in endfCLib holds the data in memory. Child classes manage the disk I/O.

Record 1: MT, NTEMP, ZAI

Loop over NTEMP Temperatures

Record 2: T, NSUB

Loop over NSUB Subsections

Record 3: NE, MT, ZAI, ZAP, AWP, AWR, Q, LAB

Loop over NE incident energies

Record 4: E, NF, UNION, DISCRETE, ELASTIC

Loop over NF Exit Energies

Record 5: LEG, M, EF

Record 6a (if LEG = 2): (COSi, i=1,M)

Record 6: (VALi, i=1,M)

The terms used above are defined as follows:

MT

the process identifier

NTEMP

the number of temperatures at which data are given

ZAI

the ZA value of the incident particle

T

the temperature at which data are given (K)

NSUB

the number of subsections given for a temperature

ZAP

the ZA value of the outgoing particle

AWP

the mass ratio of the outgoing particle

AWR

the mast ratio of the target particle

Q

the Q value of the reaction

LAB

1 if data are given in laboratory frame of reference, 0 otherwise

NE

the number of incident energies

E

the incident energies at which kinematics data are given

NF

the number of sink energies

UNION

integer, not used

DISCRETE

1 if the exit energy distribution is discrete, 0 otherwise

ELASTIC

1 if the reaction is elastic or discrete inelastic, 0 otherwise

LEG

1: distribution is given in Legendre moments

2: distribution is tabulated as a function of cosine of the exit angle

3: distribution is given in cosine moments

M

number of moments (if LEG=1 or LEG=2) or number of exit angles

EF

the exit energy

COS

the cosine values of the exit angle (only used if LEG=2)

VAL

the value of the distribution

Note that AWP and ZAP are used to describe multiple exit particles that may be produced by a particular reaction (e.g., if the exit particle is a neutron, then AWP=1.0; if it is a gamma, then AWP=0.0).

All float values are stored in double precision.

While there are sections that collected data for a given reaction and temperatures, there can be more than one section for a given reaction or temperature.

The module KINKOS can be used to transform the kinematics file to one of the legacy formats if needed.

11.7.2.3. Master Library and Working Library Formats

The AMPX MG formats have been designed to allow a generality paralleling that of the ENDF/B point libraries. For example:

1. The formats can accommodate neutron libraries, gamma libraries, or coupled neutron-gamma libraries.

2. An arbitrary number of reaction cross sections can be included with ENDF/B identifiers used for processes where possible.

3. An arbitrary order of anisotropy can be treated which can vary from nuclide-to-nuclide or even from process-to-process in the case of the master library. Temperature dependence is allowed on the master library.

4. The master library can contain Bondarenko data for resonance self-shielding by BONAMI.

5. The master library can include scattering matrix data for an arbitrary number of processes.

In the case of the resonance data, partial energy-range data can be specified. For example, on some of the SCALE libraries, the Bondarenko data are only for the unresolved region, which will vary from nuclide- to-nuclide.

Potentially the most space-consuming data on a cross section library are the transfer matrix data. AMPX uses so-called magic word arrays for these data which help to eliminate zero and/or impossible data elements. This procedure is especially important for the master library, where the library may contain data for more than 50 separate processes represented to an arbitrary level of anisotropy.

The master and working library formats are written using a combination of seven kinds of information, each of which has one or more record types associated with it:

  1. Header information — written on the front of the library to specify the number of neutron and/or gamma groups, the number of nuclides, etc., contained in the library (Record Type 1).

  2. Energy structure information — contains the group boundaries (Record Type 2).

  3. Nuclide directory information — 50 words that give a title for the nuclide, along with other parameters that specify the kinds of information included for the nuclide, such as number of records in the library for the nuclide and how much neutron and gamma data are given (Record Type 3).

  4. Bondarenko data — four record types are used for this information:

  1. A record that gives the values of \(\sigma_0\) and T at which the factors are tabulated, along with cutoff energies for the Bondarenko calculation. The parameter \(\sigma_0\) is called the background cross section and represents the cross section value for all nuclides mixed with the nuclide being calculated, and T is the temperature value (Record Type 5).

  2. A directory record containing information about the specific processes for which the Bondarenko factor data apply, such as the process, the energy groups for which data are given, etc. (Record Type 6).

  3. A record containing infinite dilution values for a process (Record Type 7).

  4. A record containing the Bondarenko factors for a process (Record Type 8).

  1. A record containing average cross sections by process (Record Type 9).

  2. Three record types are used to present transfer matrices:

  1. A directory record that specifies the processes, orders of anisotropy, lengths, units, etc. (Record Type 10).

  2. A record to specify temperatures when the matrices are temperature dependent (Record Type 11).

  3. A magic-word record to store a transfer matrix (Record Type 12).

A discussion of the structure of each of the various record types follows.

Record Type 1 (Header Record)

The header record is the first record on a master and a working library and always contains 110 words:

  1. IDTAPE

An identification number for the library

  1. NNUC

The number of sets of data on the library

  1. IGM

The number of neutron energy groups on the library.

  1. IFTG

The first thermal neutron group on the library (i.e., the first group that receives an upscatter source)

  1. MSN

Master library version type (2 for NITAWL-II resonance processing compatibility)

  1. IPM

The number of gamma-ray energy groups on the library

  1. I1

Zero

  1. I2

(0/1 = no/yes) A trigger that specifies that this library was produced by weighting a working library in the XSDRNPM module.

  1. I3

Zero

  1. I4

Zero

  1. – 110. (TITLE(I), I=1,100)

100 words of text describing the cross section library.

Record Type 2 (Energy Boundaries)

This record is on both a master library and a working library and specifies the energy boundaries in eV of the neutron groups and/or gamma groups, followed by the corresponding lethargy boundaries. The energy boundaries are arranged in descending order, followed by the lethargy boundaries in ascending order. The lethargy zero is normally taken at 10 MeV. The structure is

(EB(I),I=1,IGP), (UB(I),I=1,IGP)

where IGP is the number of groups plus 1.

Record Type 3 (Cross section Set Directory Record)

Each set of data on a master or working library has a 50-word directory record that specifies certain parameters needed to determine dimensions required to process the data and to describe the make-up of the set of data. Table 1 describes these data.

Note that the 50-word records are made up of integer, character, and floating-point words. Words 1–18 and 49 are character data. Words 29, 30, 34, 35, and 43 are floating point. All other words are integers. For both types of libraries, many parameters may have no meaningful interpretation for a particular set of data. This situation is especially true of the working library. For example, words 20, 21, 22, 25, and 26 only have meaning if the working library has been produced by weighting a previous working library. Zero values will be used when a parameter is not applicable.

Record Type 4 (Resonance Parameters)

No longer used.

Table 11.7.1 Record type 3 (cross section directory record)

Word(s)

Master library

Working library

1–18

18 words of text describing the set

18 words of text describing the set

19

Identifier of the set

Identifier of the set

20

Number of 6-parameter sets of resolved resonance data

Identifier of the set from which this set derived

21

Number of energies at which to evaluate unresolved values

Zone number in which the nuclide occurred

22

Number of neutron processes for which group-averaged values are given (temperature independent)

Number of zones in problem which produced this set

23

Number of neutron processes with scattering arrays

Length of P0 total scattering matrix

24

Zero

Order of expansion of total scattering matrix

25

Number of gamma processes for which group-averaged values are given

Sequence of this set in all zone-weighted sets

26

Number of gamma processes with scattering arrays

Number of zone-weighted sets for this nuclide

27

Number of neutron-to-gamma processes

Maximum length of any scattering array in with scattering arrays

28

(Maximum order of scattering)*32768 + (total number of separate scattering arrays for this set)

Number of neutron processes which have group-averaged values

29

A – neutron equivalent mass number

A – neutron equivalent mass number

30

ZA – 1000*Z + A

ZA – 1000*Z + A

31

Zero

Zero

32

Zero

Zero

33

Zero

Zero

34

Power per fission in watt-sec/fission

Power per fission in watt-sec/fission

35

Energy release per capture in watt-sec/capture

Energy release per capture in watt-sec/capture

36

Maximum length of any scattering array in the set

Zero

37

Number of sets of Bondarenko data

Zero

38

Number of s0 values in Bondarenko data

Zero

39

Number of temperature values in Bondarenko data

Zero

40

Maximum number of groups in Bondarenko data

Zero

41

Zero

Number of gamma processes that have group-averaged values

42

Zero

Zero

43

sp — potential scattering cross section

Zero

44

Zero

Zero

45

ENDF MAT for fast neutron data

ENDF MAT for fast neutron data

46

ENDF MAT for thermal neutron data

ENDF MAT for thermal neutron data

47

ENDF MAT for gamma data

ENDF MAT for gamma data

48

ENDF MAT for gamma production data

ENDF MAT for gamma production data

49

Source: 0=ENDF

Source: 0=ENDF

50

Number of records in this set

Number of records in this set

Record Type 5 (First Record of Bondarenko Block)

This record is used to specify the \(\sigma_0\) and temperature values at which all Bondarenko factors for the nuclide will be presented. It also specifies the upper and lower energies for which factors can apply in the case where they do not span all energy groups. The number of \(\sigma_0\) values, NSIG0, is specified in the 38th word in the set directory, and the 39th word specifies the number of temperatures, NT. The record structure is

\(\left(\sigma_0(\mathrm{I}), \mathrm{I}=1, \mathrm{NSIG0}\right),(\mathrm{T}(\mathrm{I}), \mathrm{I}=1, \mathrm{NT}), \mathrm{ELO}, \mathrm{EHI} .\)

The \(\sigma_0\) values can either ascend or descend; the temperatures are expressed in Kelvin in ascending order. The parameter \(\sigma_0\) is the cross section value for the other nuclides mixed with a nuclide in a particular situation.

Record Type 6 (Directory for Bondarenko Data)

This record type is used to specify the processes that have Bondarenko data in the set. Its length is six times NBOND, the number of Bondarenko processes, specified in the 37th word in the set directory. The structure is the following:

(MT(I), I=1, NBOND),

(NF(I), I=1, NBOND),

(NL(I), I=1, NBOND),

(ORDER(I), I=1, NBOND),

(IOFF(I), I=1, NBOND), and

(NZ(I), I=1, NBOND).

The parameters have the following interpretation: MT is the identifier of the process (e.g., MT = 2 is for elastic scattering, as in ENDF/B). NF is the number of the first energy group for which parameters are given. NL is the last group for which parameters are given. ORDER is used to specify lower group of homogeneous or heterogeneous f-factors and IOFF the upper group. NZ is presently unused and has a zero value.

Record Type 7 (Infinite Dilution Values for Bondarenko Data)

Each process that has Bondarenko data has one of these records which contain the infinite-dilution values for the process. Its structure is

\(\left(\sigma^{\infty}(\mathrm{I}), \mathrm{I}=\mathrm{NF}, \mathrm{NL}\right),\)

where NF and NL are the first and last groups with data for the process

Record Type 8 (Bondarenko Factors)

This record is a 3D array and contains the Bondarenko factors for a process. Its structure is

(((BF(I,J,K), I=1, NSIGO), J=1, NT), K=NF, NL).

Record Type 9 (Temperature-Independent Average Cross Sections)

This record type is used to present average cross sections, sometimes called 1D cross sections on the library.

Its structure is

\(\begin{aligned} & \mathrm{MT}_1,\left(\sigma_1(\mathrm{I}), \mathrm{I}=1, \mathrm{IGM}\right) \\ & \mathrm{MT}_2,\left(\sigma_2(\mathrm{I}), \mathrm{I}=1, \mathrm{IGM}\right) \\ & \cdot \\ & \cdot \\ & \cdot \\ & \left.\mathrm{MT}_{\text {LAST, }}, \sigma_{\text {LAST }}(\mathrm{I}), \mathrm{I}=1, \mathrm{IGM}\right), \end{aligned}\)

where the MTs are the process identifiers, and the cross sections, \(\sigma\), are given for all groups (NOTE: The MTs are given as floating point numbers).

Record Type 10 (Scattering Matrix Directory)

An AMPX master library always provides a directory that identifies the scattering matrices which are given for a nuclide. The structure is

(MT(I), I=1, N2D),

(L(I), I=1, N2D),

(NL(I), I=1, N2D), and

(NT(I), I=1, N2D),

where N2D is the number of scattering (2D) processes, MT is the process identifier, L is the maximum length of any of the scattering matrices for the process, NL is the order of Legendre fit to the scattering matrix, and NT is a parameter whose definition depends on the type of data (whether neutron, gamma production, or gamma) given as follows:

  1. For neutron-neutron data, NT is the number of temperatures at which scattering matrices are given. If only one temperature is present it may be 0.

  2. For gamma production data, NT is zero if the data are in yield units and is unity if they are in cross section units.

  3. For gamma-gamma data, NT is zero.

Record Type 11 (Scattering Matrix Temperatures)

This record type is only used on a master library and specifies the temperatures (in eV) of the scattering matrices. It is only used for neutron-neutron data and is given when NT > 0 (see Record Type 10). The temperatures are in ascending order as follows:

(T(I), I=1, NT).

Record Type 12 (Scattering Matrix)

This record type is used to store scattering-matrix data (sometimes called 2D data). As will be illustrated, it has provisions for truncating zero and/or impossible elements from the array. It exists in two forms: (1) a self-defining form used for gamma production data on a master library and for all scattering matrices on a working library, and (2) a form that is not self-defining. The only difference is that the self-defining form specifies the length as the first word, while the other does not; that is,

L, (X(I), I=1, L)

or

(X(I), I=1, L).

The structure of the X-array is as follows:

magic word for a group,

terms for scattering to the group,

magic word for the next group,

terms for scattering to this group,

etc..

In some cases, a negative or zero magic word is used to specify the end of data in the record.

A magic word is used to define:

  1. the sink group number, III,

  2. the first group number, JJJ, which scatters to this group, and

  3. the last group number, KKK, which scatters to this group.

The magic word is then defined as

MW = 1000000*JJJ + 1000*KKK + III,

such that it is composed of three 3-digit integers:

MW : JJJKKKIII .

The scattering terms below a magic word are in reverse ordering (following typical practice for transport theory programs); that is, the scattering term for scattering from the last group is first, etc.:

\(\begin{aligned} & \text{MW for group III}\\ & \sigma(\mathrm{KKK} \rightarrow \text { III }) \\ & \sigma(\mathrm{KKK}-1 \rightarrow \text { III }) \\ & \cdot \\ & \cdot \\ & \cdot \\ & \sigma(\mathrm{JJJ} \rightarrow \text { III }) \end{aligned}\)

The scattering matrix record will contain one \(P_{\ell}\) matrix for a process.

Consider an elastic scattering matrix for hydrogen which will be a full triangular matrix and assume three energy groups. The scattering matrix will look as follows:

\(\begin{aligned} & 1001001 \\ & \sigma(1 \rightarrow 1) \\ & 1002002 \\ & \sigma(2 \rightarrow 2) \\ & \sigma(1 \rightarrow 2) \\ & 1003003 \\ & \sigma(3 \rightarrow 3) \\ & \sigma(2 \rightarrow 3) \\ & \sigma(1 \rightarrow 3) \end{aligned}\)

Note

The record is a mixture of integer and floating-point terms.

AMPX Master Library Format

The overall structure of an AMPX master library is given as follows:

Record type

Header record

1

Nuclide directory

(one record per nuclide)

3

Neutron energy boundaries

2

Gamma energy boundaries

2

Records for nuclide 1

Records for nuclide 2

etc.

The structure of the records of a nuclide is:

Record type

Nuclide directory record

3

Bondarenko data

(one set per nuclide)

5,6,7,8

Temperature-independent group-averaged neutron cross sections

9

Scattering matrix data for neutrons

10,11,12

Scattering matrix data for gamma production

10,12

Group-averaged gamma cross sections

9

Scattering matrix data for gammas

10,12

The internal structure for Bondarenko data is:

Record type

\(\left(\sigma_0(\mathrm{I}), \mathrm{I}=1, \mathrm{NSIGO}\right),(\mathrm{T}(\mathrm{J}), \mathrm{J}=1, \mathrm{NT}), \mathrm{EL}, \mathrm{EH}\)

5

Bondarenko data directory

(MT(I),I=1,NBOND),

(NF(I),I=1,NBOND),

(NL(I),I=1,NBOND),

(ORDER(I),I=1,NBOND),

(IOFF(I),I=1,NBOND),

(NZ(I),I=1,NBOND)

6

The following records are given in pairs for all NBOND Bondarenko processes.

Infinite dilution values

\(\left(\sigma_{\infty}(\mathrm{i}), \mathrm{I}=\mathrm{NF}, \mathrm{NL}\right)\)

7

Bondarenko factors

(((BF(I,J,K),I=1,,NSIGO),J=1,NT),K=NF,NL)

8

The internal structure of the scattering matrix data for neutrons is:

Record type

Scattering matrix directory

(MT(I),I=1,N2D),

(L(I),I=1,N2D),

(NL(II),I=1,N2D),

(NT(I),I-1,N2D)

10

The following structure is repeated N2D times.

Temperature values (NT>0)

(T(I),I=1,NT)

11

The following record is repeated MAX(1,NT)*(NL+1) times.

Scattering matrix

(X(I),I=1,L)

12

The internal structure for gamma production scattering is:

Record type

Scattering matrix directory

(MT(I),I=1,N2D),

(L(I),I=1,N2D),

(NL(I),I=1,N2D)

10

For each process, I=1, N2D, the following record type is

given NL+1 times corresponding to the P0, P, …, PNL matrices.

Self-defining scattering matrix length

LENGTH,(X(I),I=1,LENGTH)

12

The internal structure for gamma-gamma scattering is:

Record type

Scattering matrix directory (MT(I),I=1,N2D),

(L(I),I=1,N2D),

(NL(I),I=1,N2D),

(NT(I),I=1,N2D)

10

For each process, I=1, N2D, the following record type is given NL+1 times corresponding to the P0, P1, …, PNL matrices.

Scattering matrix

(X(I),I=1,L)

12

AMPX Working-Library Format

The overall structure of a working library is given below:

Record type

Header records

1

Neutron energy boundaries

2

Gamma energy boundaries

2

Nuclide directory

(one record per nuclide)

3

Records for nuclide 1

Records for nuclide 2

etc.

The structure of the records for a nuclide is:

Record type

Nuclide directory record

3

Group-averaged neutron cross sections

9

Group-averaged gamma cross sections

9

The P0, P1, …, PNL total scattering matrices are presented in self-defining records.

L,(X(I),I=1,L)

12

The AMPX and SCALE code system uses a C++ class AmpxLibrary with FORTRAN bindings to read, save, and store MG library data.

11.7.2.4. CE Library Format

The following description provides the cross section formatting details for a single isotope/nuclide in a CE KENO cross section library. Note that the description only applies to the library format and does not reflect how the data are stored in the code during a calculation.

11.7.2.4.1. Cross Section File Format

The cross section file for each nuclide/isotope is composed of multiple blocks of data that describe the physics of radiation transport for a specific isotope/nuclide. The organizational structure of the various blocks of data within the library is presented in Table 11.7.2.

Table 11.7.2 Continuous-energy cross section file organization.

Block

Description

Zero temperature file

Temperature-dependent file

0

AMPX/SCALE Header Block

yes

yes

1

Header Information

yes

yes

2

\(\bar{\nu}\) Data

yes

3

MT Data

yes

yes

4

Unionized energy grid for total, elastic scattering, fission and capture

yes

yes

5

CE cross section data \([\sigma(\mathrm{E})]\)

yes

yes

6

Energy-dependent collision probabilities

yes

7

Forward kinematics data (secondary angle and energy distributions)

yes

yes

8

Probability table data

yes

9

Macroscopic cross sections (not used)

yes

10

Adjoint source (not used)

yes

11

Adjoint kinematics data (not used)

yes

yes

12–20

Not used

Each block can have multiple records that are used to describe the physics associated with each type of data block. A description of the records within each data block is provided in the subsequent sections. Each nuclide/isotope has one zero-temperature file (also referred to as a temperature-independent file) and multiple temperature-dependent files. Zero-temperature files contain the reactions that do not change as a function of temperature. Temperature-dependent files contain the reactions that have been Doppler broadened for the specified temperature. The cross section files for the nuclides with thermal scattering data have been generated at the temperatures that are provided in the corresponding ENDF/B evaluation files. All other nuclides/isotopes have multiple temperature-dependent files.

11.7.2.4.2. AMPX/SCALE Header Information Block

The first block contains the header information related to data generation (i.e., date, code version etc.). The format of the AMPX/SCALE header block is provided in Table 11.7.3. Note that record number 1, which contains the information about the number of records of type character, real, and integer is not included in the counter for the number of records. For example, if NC is 10, then the last record of character type is record number 11.

Table 11.7.3 AMPX/SCALE header information block format

Record

Parameter

Type

Description

1

NC

Integer

Number of records of character variables

1

NR

Integer

Number of records of real variables

1

NI

Integer

Number of records of integer variables

2

FILENAME

Character*80

Filename prefix used for this nuclide

2

AMPXDATE

Character*80

Date AMPX modules were created

2

SCALEDATE

Character*80

Date SCALE modules were created

2

ICFILEDATE

Character*80

Date input creator was created

3

ICVERSION

Character*80

Version of input creator

3

AXVERSION

Character*80

Version of AMPX modules used

3

SCVERSION

Character*80

Version of SCALE modules used

3

FILEDATE

Character*80

Date this file was created

4

FVERSION

Character*80

Version of this file format

4

UNION

Character*80

Flag to signal unionized cross sections

4

DUM

Character*80

Dummy place holder

4

DUM

Character*80

Dummy place holder

NEXT (NC-4) RECORDS HAVE THE FOLLOWING STRUCTURE

5 to NC

DUM, TEMPSUFFIX, DUM, DUM

Character*80

DUM – character dummy place holder

TEMPSUFFIX – suffix in the filename for each temperature

NC+1

BLANK

NEXT (NR) RECORDS HAVE THE FOLLOWING STRUCTURE

NC+2 to NC+NR

DUMR, TEMP, DUMR, DUMR

Real

DUMR – real dummy place holder

TEMP – temperature at which cross sections are available

NC+NR+1

DUMR, DUMR, DUMR, DUMR

Real

DUMR – real dummy place holder

NEXT (NI) RECORDS HAVE THE FOLLOWING STRUCTURE

NC+NR+2 to NC+NR+NI+1

DUMI, DUMI, DUMI, DUMI

4Integer

DUMI – integer dummy place holder

11.7.2.4.3. Header Information Block

The header block is used to provide the generic information about the library and subsequent data blocks. The format of the header block is provided in Table 11.7.4. Note that the first record in the header block identifies the material, and a mixture parameter is provided to associate the isotope/nuclide with a mixture number. During the generation of a CE KENO library, the mixture ID is set to zero. If a problem-dependent library is prepared in the future, the mixture ID will be set to the appropriate mixture number. The header block always has 12 records and exists in zero-temperature and temperature-dependent files.

Table 11.7.4 Header block format.

Record

Parameter

Type

Description

1

MAT

Integer

ENDF material identifier

1

ID

Integer

ID Source

1

MIX

Integer

mixture ID (> 0 for problem dependent library, 0 otherwise)

1

ZA

Integer

ZA number for isotope/nuclide (Z*1000+A)

2

LENGTH

Integer

Length of TITLE array

2

TITLE

Character*100

Character*LENGTH title that includes source ENDF identification

3

LFI

integer

Fission flag (LFI = 0/1 does not fission/does fission)

3

LPTAB

Integer

Probability table flag (LPTAB = 0/1 no tables/tables present)

3

ISO

Integer

Isotope flag (0/1 no/yes)

3

LSAB

Integer

\(\mathrm{S}(\alpha, \beta)\) data exist (0/1 no/yes)

3

NMT

Integer

Number of 1D reactions

3

NUM_FAST

integer

Number of 2D temperature independent MTS

3

NUM_THERM

integer

Number of 2D temperature dependent MTS

3

MAX_ANGLES

Integer

Maximum number of angles in 2D kinematics block

3

MAX_EXITE

Integer

Maximum number of exit energies in 2D kinematics block

3

MAX_TEMPS

Integer

Maximum number of temperatures

3

CHANCE

Integer

2-D 1st, 2nd, 3rd, or 4th chance fission data exist

3

METASTATE

Integer

State of the nuclide, 0 indicates ground state

4

AWR

Double

Atomic weight ratio

4

ELR

Double

Lower energy boundary for resolved-resonance region (eV)

4

EHR

Double

Upper energy boundary for resolved-resonance region (eV)

4

ELU

Double

Lower energy boundary for the unresolved-resonance region (eV)

4

EHU

Double

Upper energy boundary for the unresolved-resonance region (eV)

4

TEMP(i), i=1,MAX_TEMPS

Double

Temperature (K) for the cross section data

5

SIGP

Real

Potential cross section

6–12

Not used

11.7.2.4.4. \(\bar{\nu}\) Block (if LFI=1)

The format of the \(\bar{\nu}\) record within the data block is provided in Table 11.7.5. Note that this block can have up to four different \(\bar{\nu}\) records. The first record provides the total \(\bar{\nu}\) as a function of energy, and the format has provisions to provide the delayed and prompt \(\bar{\nu}\) as a function of energy. The final record provides the ratio of delayed \(\bar{\nu}\) to total \(\bar{\nu}\) as a function of energy. This block exists in zero degree files only.

Table 11.7.5 \(\bar{\nu}\) data block format.

IZA

MB

NU_COUNT

MAX_NR

MAX_NP

452

NR

NP

NBT(n)

INT(n)

n=1,NR

E(i)

\(\bar{\nu}(\text{i})\)

i=1,NP

455

NR

NP

NBT(n)

INT(n)

n=1,NR

E(i)

\(\bar{\nu}_{\text{d}}(\text{i})\)

i=1,NP

456

NR

NP

NBT(n)

INT(n)

N=1,NR

E(i)

\(\bar{\nu}_{\text{p}}(\text{i})\)

i=1,NP

459

NR

NP

NBT(n)

INT(n)

N=1,NR

E(i)

\(\bar{\nu}_{\text{d}}(\text{i})\)/\(\bar{\nu}(\mathrm{i})\)

i=1,NP

The variables for the \(\bar{\nu}\) record are defined as follows:

Table 11.7.6 \(\bar{\nu}\) record variables

IZA

Integer form of ZA number [integer],

MB

block number (MB = 2) [integer],

NU_COUNT

Number of types of \(\bar{\nu}\) data (possible MTs listed below) [integer],

MAX_NR

Maximum number of NR values [integer],

MAX_NP

Maximum number of NP values [integer],

MT

452/455/456/459 total/delayed/prompt/ratio of delayed to total [integer],

NR

number of interpolation regions [integer],

NP

number of points [integer],

NBT(n)

end point of interpolation region n [integer],

INT(n)

interpolation type for region n (ENDF interpolation types) [integer],

E(i)

ith energy point [double],

\(\bar{\nu}(\text{i})\)

value of total \(\bar{\nu}\) corresponding to E(i) [double],

\(\bar{\nu}_{\text{d}}(\text{i})\)

value of delayed \(\bar{\nu}\) corresponding to E(i) [double],

\(\bar{\nu}_{\text{p}}(\text{i})\)

value of prompt \(\bar{\nu}\) corresponding to E(I) [double], and

\(\bar{\nu}_{\text{d}}(\text{i})\) /\(\bar{\nu}(\mathrm{i})\)

ratio of delayed \(\bar{\nu}\) to total \(\bar{\nu}\) at E(i) [double].

11.7.2.4.5. MT Block

Both zero degree and temperature-dependent files contain all MT numbers for all temperatures. Table 11.7.7 lists the structure of the two MT records.

Table 11.7.7 Reaction identifier (MT) data block format

IZA

MB

0

C1

C2

L1

L2

N1

NUM_FAST_1D

MT(i)

i=1, NUM_FAST_1D

IZA

MB

0

C1

C2

L1

L2

N1

NUM_THERM_1D

MT(i)

i=1, NUM_THERM_1D

IZA

integer form of ZA number [integer]

MB

block number (MB = 3) [integer]

C1

place holder for real quantity (typically 0.) [double]

C2

place holder for real quantity (typically 0.) [double]

L1

place holder for integer quantity (typically 0) [integer]

L2

place holder for integer quantity (typically 0) [integer]

N1

place holder for integer quantity (typically 0) [integer]

NUM_FAST_1D

number of temperature-independent reactions [integer]

NUM_THERM_1D

number of temperature-dependent reactions [integer]

MT(i)

identifier for the ith reaction [integer]

11.7.2.4.6. Unionized Energy Grid Block

The energy mesh is for MT=1 (total). Since all temperature-dependent MTs are unionized, the mesh is the same for all MTs. Note that even though the temperature-independent MTs are not unionized, the mesh contains the points for temperature-independent MTs, as well. This allows quick mapping of the temperature-independent MTs before execution in KENO. The unionized energy grid data are listed in Table 11.7.8. Note that the collision probabilities have a different energy mesh that is also included in the energy grid block. The zero degree file contains all energy grids for all temperatures (MAX_TEMPS sets of records), whereas the files for specific temperatures contain only the energy grid for that temperature.

Table 11.7.8 Unionized energy grid data block format

IZA

MB

TEMP

NE

NE_CP

E(i)

i=1,NE

E_CP(i)

i=1,NE_CP

IZA

integer form of ZA number [integer]

MB

block number (MB = 4) [integer]

TEMP

Temperature (K) [double]

NE

number of energy points [integer]

NE_CP

number of energy points for collision probabilities [integer],

E(i)

ith Energy point [double]

E_CP(i)

ith Energy point for collision probability arrays [double]

11.7.2.4.7. CE Cross Section Block

This block exists in each file with temperature-dependent files being slightly different. Since the energy grid for the temperature-dependent MTs is already in BLOCK 4 (MB=4), the energy points, E(i), are not included in the temperature-dependent files. Table 11.7.9 shows the records and their structure.

Table 11.7.9 CE microscopic cross section data block format

IZA

MB

TEMP

MAX_NR

MAX_NP

MT1

Q

TEMP

EMIN

EMAX

NOUT

NR

NP

NBT(n)

INT(n)

n=1,NR

E(i)

\(\sigma(\mathrm{i})\)

i=1,NP

MT2

Q

TEMP

EMIN

EMAX

NOUT

NR

NP

NBT(n)

INT(n)

n=1,NR

E(i)

\(\sigma(\mathrm{i})\)

i=1,NP

MTNUM_MTX

Q

TEMP

EMIN

EMAX

NOUT

NR

NP

NBT(n)

INT(n)

n=1,NR

E(i)

\(\sigma(\mathrm{i})\)

i=1,NP

IZA

integer form of ZA number [integer]

MB

block number (MB = 5) [integer]

TEMP

Temperature (K) [double]

EMIN

Minimum energy of the reaction (includes additional point with zero cross section value for interpolation purposes) [double]

EMAX

Maximum energy of the reaction (includes additional point with zero cross section value for interpolation purposes) [double]

MAX_NR

Maximum of NR values [integer]

MAX_NP

Maximum of NP values [integer]

MT

Reaction identifier [integer]

NUM_MTX

Number of MTs (NUM_FAST_1D in temperature-independent file, NUM_THERM_1D in temperature-dependent file) [integer]

Q

reaction energy or Q value [double]

NOUT

number of secondary neutrons produced by the reaction (Note: if MT=18,19,20, 21 or 38, the number of secondary neutrons is determined from the \(\bar{\nu}\) data block, and NOUT will be set to zero. For neutron disappearance reactions, NOUT is also set to zero) [integer]

L1

place holder for integer quantity (typically 0) [integer]

NR

number of interpolation regions [integer]

NP

number of points [integer]

NBT(n)

end point of interpolation region n [integer]

INT(n)

interpolation type for region n (ENDF interpolation types) [integer]

E(i)

ith energy point [double]

\(\sigma(\mathrm{i})\)

microscopic cross section value corresponding to E(i) [double].

11.7.2.4.8. Energy-Dependent Collision Probabilities

The following block of data provides the energy-dependent collision probabilities. The energy-dependent collision probabilities that are needed for the Monte Carlo random walk are the nonabsorption [Pinabs(E)], absorption [Piabs(E)] and fission [Pif(E)] probabilities:

\(\begin{aligned} & P_{n a b s}^i(E)=\frac{\sigma_s^i(E)}{\sigma_t^i(E)} \\ & P_{a b s}^i(E)=\frac{\sigma_a^i(E)}{\sigma_t^i(E)} \\ & P_f^i(E)=\frac{\nu^{i}(E) \sigma_f^i(E)}{\sigma_t^i(E)} \end{aligned}\)

where

\(\sigma_s{ }^i(E)\) = scattering cross section for isotope/nuclide i,

\(\sigma_t^i(E) \;\) = total cross section for isotope/nuclide i,

\(\sigma_a^i(E) \;\) = absorption cross section for isotope/nuclide i,

\(\sigma_f^i(E) \;\) = fission cross section for isotope i, and

\(\overline{\boldsymbol{\nu}}^i(E) \;\) = average number of neutrons released per fission at energy E for isotope i.

In addition, (n,2n) and (n,3n) reaction probabilities are also saved if those reaction cross sections exist for the nuclide. The energy-dependent absorption and fission probabilities can be used in both the forward and adjoint modes of transport; however, the nonabsorption probability defined above is not the same in the adjoint mode of transport. Therefore, an adjoint nonabsorption probability can be defined as follows:

\(P_{\text {nabs }}^{i^*}\left(E^{\prime}\right)=\frac{\int_E d E \int_\mu d \mu \sigma_s^i\left(E^{\prime} \rightarrow E, \mu\right)}{\sigma_t^i\left(E^{\prime}\right)}\)

where

\(\sigma_s{ }^i\left(E^{\prime} \rightarrow E, \mu\right)\) = isotope/nuclide i differential scattering cross section for scattering from \(E^{\prime}\) to E through angle \(\mu\), and

\(\sigma_t^i\left(E^{\prime}\right) \; \; \; \; \; \; \; \; \; \; \; \; \; \,\) = isotope/nuclide i total cross section at energy \(E^{\prime}\).

For each isotope/nuclide, the energy-dependent collision probability block may have up to five different records that correspond to the five different collision probabilities. If the LFI flag is zero, the fission probability record is zero for the isotope. Each collision probability record is provided in the format shown in Table 11.7.10.

This block is in temperature-dependent files only. Note that since the unionized energy grid data block already includes the points for the collision probability data, energy points are not included.

Table 11.7.10 Energy-dependent collision probability data block format.

IZA

MB

NREAD

TEMP

MAX_NR

MAX_NP

2006

C1

TEMP

L1

L2

NR

NP

NBT(n)

INT(n)

n=1,NR

P2006(i)

i=1,NP

2007

C1

TEMP

L1

L2

NR

NP

NBT(n)

INT(n)

n=1,NR

P2007(i)

i=1,NP

2016

C1

TEMP

L1

L2

NR

NP

NBT(n)

INT(n)

n=1,NR

P2016(i)

i=1,NP

2017

C1

TEMP

L1

L2

NR

NP

NBT(n)

INT(n)

n=1,NR

P2017(i)

i=1,NP

2018

C1

TEMP

L1

L2

NR

NP

NBT(n)

INT(n)

n=1,NR

P2018(i)

i=1,NP

2027

C1

TEMP

L1

L2

NR

NP

NBT(n)

INT(n)

n=1,NR

P2027(i)

i=1,NP

IZA

integer form of ZA number [integer]

MB

block number (MB = 6) [integer]

NREAD

Number of collision probability records (e.g., nonfissile nuclides don’t have 2018, pure-scatterers don’t have 2027) [integer]

TEMP

Temperature (K) [double]

MAX_NR

Maximum of NR values for all collision probabilities [integer]

MAX_NP

Maximum of NP values for all collision probabilities [integer]

MT

collision probability identifier [integer]

MT = 2006: nonabsorption probability

MT = 2007: adjoint nonabsorption probability

MT = 2016: (n,2n) reaction probability

MT = 2017: (n,3n) reaction probability

MT = 2018: fission probability

MT = 2027: absorption probability

C1

place holder for real quantity (typically 0.) [double]

TEMP

Temperature (K) [double]

L1

place holder for integer quantity (typically 0) [integer]

L2

place holder for integer quantity (typically 0) [integer]

NR

number of interpolation regions (NR = 1) [integer]

NP

number of points [integer]

NBT(n)

end point of interpolation region n [NBT(NR) = NP] [integer]

INT(n)

interpolation type for region n [INT(NR) = 2] [integer]

PMT(i)

collision probability at energy E(i) [double]

11.7.2.4.9. Forward Kinematics Data Block

The kinematics section of the library provides the information for determining the exiting energy and angle of a particle emerging from a collision with a target isotope/nuclide. Because of the complexity of collision kinematics, different types of collision representations may be provided depending upon the type of reaction to be processed.

Zero-temperature files contain extra records that are used to dimension the required arrays. These records are listed in Table 11.7.11. Record number 2 in Table 11.7.11 is repeated for each temperature (including zero) so that the total number of records is MAX_TEMPS+2.

Table 11.7.11 Header records in zero-temperature file only.

IZA

MB

NUM_FAST+ NUM_THERM

MAX_NR

MAX_ANGLES

MAX_EXITE

MAX_MU(n)

n=1, NUM_FAST+ NUM_THERM

MAX_EOUT(n)

n=1,NUM_FAST+NUM_THERM

11.7.2.4.10. Forward Kinematics Block

The kinematics data are provided for each reaction that has a secondary angle and energy distribution The format of the kinematics data for each reaction is provided in Table 11.7.12. The definitions for each parameter in Table 11.7.12 are provided in the description that follows the table. The data structure in Table 11.7.12 appears to be rather complex; however, the structure is needed to accommodate coupled energy-angle distributions. A universal kinematics data structure is desired to accommodate all possible secondary energy-angle distributions. The most complex structure is the coupled energy-angle data for thermal scattering and ENDF/B File 6 distributions. By addressing the most complex structure with the kinematics format, the less complex distributions can be treated by default. Therefore, the data structure outlined in Table 11.7.12 was developed to address the coupled distributions. In terms of Monte Carlo, the data structure represents the joint CDF for selecting the secondary angle and energy. As with any method, there are pros and cons to the structure in Table 11.7.12. The data structure has the advantage of uniformity; however, there is a storage penalty associated with the representation of non-coupled energy-angle distributions. For the purposes of CE KENO, the uniform data structure advantage outweighs the added storage cost that is incurred.

As shown in Table 11.7.12, the kinematics data structure has a header record that specifies the number of sections (NSECT) used to describe the secondary distributions for the reaction. The kinematics structure is divided into NSECT incident energy blocks, and the first record within each section specifies the incident energy range and number of incident energies (NE) for the section. For example, the first section in Table 11.7.12 is characterized with incident energies between E11 and E1NE, and the last section is defined for incident energies between ENSECT1 and ENSECTNE. Note that the NE values can vary between sections.

Each section is subsequently divided into multiple blocks of data that describe the secondary energy-angle distributions. The first block of data has a secondary angular cosine distribution for each incident energy; therefore, there are NE angular distributions in the \((\mathrm{E}, \mu)\) data block. In terms of Monte Carlo, each angular distribution record in the \((\mathrm{E}, \mu)\) data block corresponds to the marginal CDF for selecting the secondary angle at an incident energy. The format specifies NPU secondary cosines for each incident energy, and the number of secondary cosines can vary between incident energies. In other words, the NPU variable can change between incident energies within a section. The NPU angle cosines correspond to NPU - 1 cosine bins. For example, the first angle bin has a lower boundary of \(\mu_1\) and an upper boundary of \(\mu_2\).

Each \(\mu\) distribution is defined with NPU angle cosines and the corresponding cumulative probability, \(\mathrm{C} \mu\), for each cosine bin. In addition, the value of the PDF at each angle, \(\mathrm{P} \mu\), is also provided in the format. For the secondary angular distribution, the \(\mathrm{P} \mu\) values are needed for interpolation purposes. Because there are NPU - 1 cosine bins, there are NPU - 1 \(\mathrm{C} \mu\) values provided with the distribution; however, there are NPU values of the PDF that are provided for each angular cosine. As a result, the NPU location in the cumulative probability distribution is not needed and is zero.

Following the \((\mathrm{E}, \mu)\) data block in a section are multiple blocks of data that describe the secondary energy distributions. As noted previously, each incident energy has a secondary distribution of NPU angle cosines. For each \((\mathrm{E}, \mu)\) pair, there is a corresponding secondary energy distribution that can have NPE secondary energies. As indicated in Table 11.7.12, there is an \(\left(\mathrm{E}, \mu, \mathrm{E}^{\prime}\right)\) data block for each incident energy, and there are NPU secondary energy distribution records within each \(\left(\mathrm{E}, \mu, \mathrm{E}^{\prime}\right)\) data block. Each secondary energy distribution record within an \(\left(\mathrm{E}, \mu, \mathrm{E}^{\prime}\right)\) block represents a conditional CDF for selecting the exit energy for a given incident energy E and secondary angle \(\mu\). The term conditional CDF implies that the exit cosine has been selected, and the corresponding CDF for exit energy defines the probability of selecting the exit energy for the given secondary angle cosine.

The format of each secondary energy distribution record is analogous to the secondary angular distribution representation. For each \((\mathrm{E}, \mu)\) pair, there are NPE secondary energies that correspond to NPE - 1 energy bins. Moreover, the cumulative probabilities, \(\mathrm{CE}^{\prime}\), for each energy bin are also provided with the distribution. For each secondary energy, there is a location that can be used to store the value of the PDF for the exit energy, \(\mathrm{PE}^{\prime}\), that is used for interpolation during the sampling process. If the reaction is elastic or discrete-level inelastic scattering, the \(\mathrm{PE}^{\prime}\) values will be interpolation parameters for the power-interpolation method that was initially developed for the BONAMI module.

There are two special cases that can be described with the kinematics structure in Table 11.7.12. If the secondary angular distribution is isotropic at an incident energy E, there will be a single exit cosine specified (i.e., NPU =1) in the \((\mathrm{E}, \mu)\) block with a value of -2.0 and corresponding probability of 1.0. As a result, the exit cosine will be sampled uniformly between -1.0 and 1.0. Since there is only one exit cosine specified for isotropic scattering, the \(\left(\mathrm{E}, \mu, \mathrm{E}^{\prime}\right)\) block will have one record that specifies the secondary energy distribution for any secondary angle at an incident energy E. If the interaction mechanism is coherent or incoherent elastic scattering, there is no change in energy resulting from the collision (i.e., \(\mathrm{E}^{\prime}=\mathrm{E}\) ). Therefore, each secondary energy distribution in the \(\left(\mathrm{E}, \mu, \mathrm{E}^{\prime}\right)\) block will only have one exit energy with a value of E and corresponding probability of 1.0.

The following table shows the kinematics data structure. Zero degree file contains temperature-independent reactions only (NUM_FAST MTs). Temperature-specific files contain the temperature-dependent MTs for that temperature (NUM_THERM MTs).

Table 11.7.12 Forward kinematics data structure for a single reaction

MT

TEMP

NSECT

Header Record

\(\boldsymbol{E}_1^1\)

\(\boldsymbol{E}_ {\boldsymbol{NE}}^1\)

NR

\(\boldsymbol{NE}\)

AWP

LD

ZAP

YIELD

1st Section

\(\boldsymbol{E}_1^1\)

C2

LMU

L2

NR

\(\boldsymbol{NPU}\)

\(\mathbf {\boldsymbol{\mu} (1:N P U)}\)

\(\boldsymbol{C}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\boldsymbol{P}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\mathbf{YIELD_1}\)

\(\boldsymbol{E}_2^1\)

C2

LMU

L2

NR

\(\boldsymbol{NPU}\)

\(\mathbf {\boldsymbol{\mu} (1:N P U)}\)

\(\boldsymbol{C}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\boldsymbol{P}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\mathbf{YIELD_1}\)

\(\cdot\)

\(\left(E^1, \mu\right)\) Block

Marginal CDF

\(\cdot\)

\(\cdot\)

\(\boldsymbol{E}_ {\boldsymbol{NE}}^1\)

C2

LMU

L2

NR

\(\boldsymbol{NPU}\)

\(\mathbf {\boldsymbol{\mu} (1:N P U)}\)

\(\boldsymbol{C}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\boldsymbol{P}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\mathbf{YIELD_{NE}}\)

\(\boldsymbol{E}_1^1\)

\(\boldsymbol{\mu(1)}\)

1

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{E}_1^1\)

\(\boldsymbol{\mu(2)}\)

2

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\left(E^1{ }_1, \mu, E^{\prime}\right)\) Block

Conditional CDF

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\boldsymbol{E}_1^1\)

\(\boldsymbol{ \mu(N P U)}\)

\(\boldsymbol{NPU}\)

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{E}_2^1\)

\(\boldsymbol{\mu(1)}\)

1

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{E}_2^1\)

\(\boldsymbol{\mu(1)}\)

2

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\left(E^1{ }_2, \mu, E^{\prime}\right)\) Block

Conditional CDF

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\boldsymbol{E}_2^1\)

\(\boldsymbol{ \mu(N P U)}\)

\(\boldsymbol{NPU}\)

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\boldsymbol{E}_{ \boldsymbol{NE}}^1\)

\(\boldsymbol{\mu(1)}\)

1

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{E}_{ \boldsymbol{NE}}^1\)

\(\boldsymbol{\mu(2)}\)

2

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\left(E^1{ }_{ \mathrm{NE}}, \mu, E^{\prime}\right)\) Block

Conditional CDF

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\boldsymbol{E}_{ \boldsymbol{NE}}^1\)

\(\boldsymbol{ \mu(N P U)}\)

\(\boldsymbol{NPU}\)

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

End 1st Section

\(\boldsymbol{ E^{NSECT_{1}}}\)

\(\boldsymbol{ E^{NSECT_{NE}}}\)

NR

\(\boldsymbol{NE}\)

AWP

LD

ZAP

YIELD

NSECT Section

\(\boldsymbol{ E^{NSECT_{1}}}\)

C2

LMU

L2

NR

\(\boldsymbol{NPU}\)

\(\mathbf {\boldsymbol{\mu} (1:N P U)}\)

\(\boldsymbol{C}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\boldsymbol{P}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\mathbf{YIELD_1}\)

\(\boldsymbol{ E^{NSECT_{2}}}\)

C2

LMU

L2

NR

\(\boldsymbol{NPU}\)

\(\mathbf {\boldsymbol{\mu} (1:N P U)}\)

\(\boldsymbol{C}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\boldsymbol{P}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\mathbf{YIELD_2}\)

\(\cdot\)

\(\left( E^{\text {NSECT }}, \mu\right)\) Block

Marginal CDF

\(\cdot\)

\(\cdot\)

\(\boldsymbol{ E^{NSECT_{NE}}}\)

C2

LMU

L2

NR

\(\boldsymbol{NPU}\)

\(\mathbf {\boldsymbol{\mu} (1:N P U)}\)

\(\boldsymbol{C}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\boldsymbol{P}_ {\boldsymbol{\mu}} \mathbf{(1:N P U)}\)

\(\mathbf{YIELD_{NE}}\)

\(\boldsymbol{ E^{NSECT_{1}}}\)

\(\boldsymbol{\mu(1)}\)

1

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{ E^{NSECT_{1}}}\)

\(\boldsymbol{\mu(2)}\)

2

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\left( E^{\mathrm{NSECT}_1}, \mu, E^{\prime}\right)\) Block

Conditional CDF

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\boldsymbol{ E^{NSECT_{1}}}\)

\(\boldsymbol{ \mu(N P U)}\)

\(\boldsymbol{NPU}\)

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\boldsymbol{E}_{ \boldsymbol{NE}}^1\)

\(\boldsymbol{\mu(1)}\)

1

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{E}_{ \boldsymbol{NE}}^1\)

\(\boldsymbol{\mu(2)}\)

2

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\left( E^{\mathrm{NSECT}}_{ \mathrm{NE}}, \mu, E^{\prime}\right)\) Block

Conditional CDF

End NSECT Section

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\cdot\)

\(\boldsymbol{E}_{ \boldsymbol{NE}}^1\)

\(\boldsymbol{ \mu(N P U)}\)

\(\boldsymbol{NPU}\)

LE

NR

\(\boldsymbol{NPE}\)

\(\boldsymbol {E^{\prime}}\mathbf{(1:NPE})\)

\(\boldsymbol{C}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

\(\boldsymbol{P}_ {\boldsymbol{E^{\prime}}} \mathbf{(1:N P E)}\)

IZA

integer form of ZA number [integer]

MB

block number (MB = 7) [integer]

MT

reaction identifier [integer]

NSECT

number of angle-energy distribution sections [integer]

AWP

atomic weight [double]

LD

flag to indicate discrete reaction [0=no;1=discrete]

ZAP

particle charge [double]

YIELD

total yield for this incident energy [double]

LMU

flag for secondary angular distribution data [integer]

LMU

= 0

secondary angle data provided in equiprobable cosine bins

= 1

secondary angle data provided in nonequiprobable cosine bins

LE

flag for secondary energy distribution data [integer]

LE

= 0

secondary energy data provided in equiprobable bins

= 1

secondary energy data provided in nonequiprobable bins

\(E^{ \mathrm{n}_{ \mathrm{i}}}\)

ith incident energy point (eV) for the nth section [double]

C2

place holder for real quantity (typically 0.) [double]

TEMP

Temperature (K) [double]

L2

place holder for integer quantity (typically 0) [integer]

NR

place holder for integer quantity (typically 0) [integer]

\(NE\)

number of incident energy points [integer]

\(NPU\)

number of secondary \(\mu\) values [integer]

\(NPE\)

number of secondary energy (\(E^{ \prime}\)) values [integer]

\(\mu (\mathrm{j})\)

jth secondary angle cosine [double]

\(C_\mu(\mathrm{j})\)

cumulative probability for the \(\mathrm{j}^{ \text {th }}\) secondary angle cosine bin [double]

\(P_\mu(\mathrm{j})\)

value of the PDF for the \(\mathrm{j}^{ \text {th }}\) secondary angle cosine [double]

\(E^{ \prime}( \mathrm{j})\)

jth secondary energy point (eV) [double]

\(C_{E^{\prime}} (\mathrm{j})\)

cumulative probability for the jth secondary energy bin [double]

\(P_{E^{\prime}} (\mathrm{j})\)

value of the PDF for the jth secondary energy point or power interpolation parameter [double]

11.7.2.4.11. Probability Table Block

Probability tables are provided if the isotope has an unresolved-resonance region (URR). Note that the AMPX module PURM does not process multi-isotope nuclides with unresolved-resonance data. Consequently, a nuclide evaluation with unresolved-resonance data will not have probability table information; however, for practically all ENDF nuclide evaluations with unresolved data, there are corresponding individual isotope evaluations available in ENDF to construct the appropriate nuclide.

Table 11.7.13 provides the format for the probability tables for a particular isotope. This block exists in temperature-dependent files only. In the URR, a probability table is defined for a range of energies between \(\mathrm{E}_{\mathrm{i}}\) and \(E_{\mathrm{i}+1}\). Moreover, the probability table provides possible cross section values for the total, elastic scattering, fission and capture reactions in the unresolved range. The table is constructed based on the total cross section. Therefore, the values in the table define the probability for the total cross section value between Ei and Ei+1. During the random walk, the ith bin is selected to obtain the total cross section, and the corresponding values of the elastic scattering, fission and capture reactions are also obtained from the ith bin.

Note that the probability table block allocates four separate records for each reaction within a table. If the isotope is fissionable (LFI = 1), four separate reaction identifiers will be present in each table; however, for nonfissionable isotopes (LFI = 0), the fission cross section for each table is zero.

Based on the probability table structure, the format has a cross section band flag LBND that describes the structure of the table. If LBND is 0, the cross section bands are equiprobable, and if LBND is 1, the cross section bands are not equiprobable.

Table 11.7.13 Probability table structure for unresolved region.

IZA

MB

0

ELR

EUR

SIGO

N1

NTAB

Header Record

\(\mathbf{ M T_1}\)

\(\boldsymbol{ E_{1,1}}\)

\(\boldsymbol{ E_{1,2}}\)

\(\mathbf{ LTABLE_1}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

\(\boxed{ \mathbf{Table ~ 1}}\)

\(\mathbf{ M T_2}\)

\(\boldsymbol{ E_{1,1}}\)

\(\boldsymbol{ E_{1,2}}\)

\(\mathbf{ LTABLE_1}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

\(\mathbf{ M T_3}\)

\(\boldsymbol{ E_{1,1}}\)

\(\boldsymbol{ E_{1,2}}\)

\(\mathbf{ LTABLE_1}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

\(\mathbf{ M T_4}\)

\(\boldsymbol{ E_{1,1}}\)

\(\boldsymbol{ E_{1,2}}\)

\(\mathbf{ LTABLE_1}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

\(\boldsymbol{\cdot}\)

\(\boldsymbol{\cdot}\)

\(\boldsymbol{\cdot}\)

\(\mathbf{ M T_1}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,1}}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,2}}\)

\(\mathbf{ LTABLE_{NTAB}}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

\(\boxed{\!\begin{aligned} & \mathbf{TABLE}\\ & ~ \mathbf{NTAB} \end{aligned} }\)

\(\mathbf{ M T_2}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,1}}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,2}}\)

\(\mathbf{ LTABLE_{NTAB}}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

\(\mathbf{ M T_3}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,1}}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,2}}\)

\(\mathbf{ LTABLE_{NTAB}}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

\(\mathbf{ M T_4}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,1}}\)

\(\boldsymbol{ E}_{\mathbf{ NTAB,2}}\)

\(\mathbf{ LTABLE_{NTAB}}\)

LBND

\(\boldsymbol{ NB}\)

\(\boldsymbol{ \sigma}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ C}_ {\mathbf{MT}} \mathbf{i}\)

\(\boldsymbol{ P}_ {\mathbf{MT}} \mathbf{i}\)

\(\mathbf{i=1,} \boldsymbol{NB}\)

IZA

integer form of ZA number [integer]

MB

block number (MB = 8) [integer]

ELR

threshold for URR (eV) [double]

EUR

upper boundary for URR (eV) [double]

L1

place holder for integer quantity (typically 0) [integer]

L2

place holder for integer quantity (typically 0) [integer]

N1

place holder for integer quantity (typically 0) [integer]

NTAB

number of probability tables in block [integer]

MTi

reaction identifier [integer]

MT1

= 1:

total

MT2

= 2:

elastic scattering

MT3

= 18:

fission

MT4

= 102:

capture

\(E_{\mathrm{n}, 1}\)

lower energy bound for table n (eV) [double]

\(E_{\mathrm{n}, 2}\)

upper energy bound for table n (eV) [double]

LTABLEn

probability table number corresponding to nth table [integer]

LBND

cross section band flag [integer]

LBND

= 0: cross section bands are equiprobable

LBND

= 1: cross section bands are not equiprobable

NR

place holder for integer quantity (typically 0) [integer]

NB

number of cross section bands [integer]

NBT(n)

dummy array that is not used for probability table data [integer]

INT(n)

dummy array that is not used for probability table data [integer]

\(\sigma_{ \mathrm{MT}}(\mathrm{i})\)

cross section value for reaction MT corresponding to the ith cross section band [double]

\(C_{ \mathrm{MT}}(\mathrm{i})\)

cumulative probability for reaction MT corresponding to the ith cross section band [double]

\(P_{ \mathrm{MT}}(\mathrm{i})\)

probability for reaction MT corresponding to the ith cross section band [double]

11.7.3. Reaction Type Identifiers

Reaction types in ENDF data are identified by integers called MT numbers. Within the AMPX system, the ENDF MT numbers are used where possible to identify the appropriate cross section data. AMPX processed data with no ENDF MT number counterpart are identified by integers outside the range of the ENDF MT numbers. Special values are listed in the following sections.

11.7.3.1. Multiplicity Matrices

A MG library produced by the module X10 may contain several 1D and 2D data combining fission and multiplicity data. It is assumed that the number of source groups and sink groups is identical. For each pair of primary fission reaction f (mt=18, 19, \(_{\cdots}\)) and multiplicity \(\bar{\nu}\)(mt=452, 455, 456), the following 2D and 1D data are produced:

  1. A scattering matrix using the appropriate kinematics distribution. It is multiplied by \(f \times \bar{\nu}\)

  2. A normalized scattering matrix, which is the matrix produced in step, divided by \(f \times \bar{\nu}\)

  3. A 1D vector of the length of sink groups: \(\chi_{i s n k}=\sum_{i s r c} a_{i s r c, i s n k} f l u x_{i s r c}\) where the sum is over all source groups and \(f l u x_{i s r c}\) is the flux used for the given source group. The 1D vector is normalized so that \(\sum_{i s n k} \chi_{i s n k}=1\)

The same MT value is used for items 2 and 3. Table 11.7.14 lists the MT values used for items 1–3:

Table 11.7.14 Total and fractional multiplicity MT values.

Primary MT

Secondary MT

Distribution

Total matrix

(Item 1)

Fraction matrix

(Items 2 and 3)

1D value for \(f \times \bar{\nu}\)

18

452

18

1452

1018

452

18

456

18

1456

1056

455

18

455

455 (if no present 18)

1455

1055

456

19

456

19 (if not present 18)

1419

1019

4561

20

456

20 (if not present 18)

1420

1020

4562

21

456

21 (if not present 18)

1421

1021

4563

38

456

38 (if not present 18)

1438

1038

4564

11.7.3.2. Additional Reaction Values Used in AMPX

The reaction types given in Appendix B of the ENDF manual [ampx-Her09] are augmented where necessary to describe identifiers assigned to AMPX processed data. See Table 11.7.14 for definitions of \(\chi\) values. In addition to the matrices and 1D cross sections described in Sect. 11.7.3.1, the values given in Table 11.7.15 are used.

Table 11.7.15 Reaction numbers used in the AMPX code system.

MT

Description

1–1000

Same as ENDF

1007

Thermal scattering matrix-may contain coherent and incoherent data

1008

Thermal scattering matrix for coherent data

1099

Group integral of the weighting function for neutron cross sections

1599

Group integral of the weighting function for gamma cross section

2000

Lambda factor

2022

Removal cross section

3002

Initially the same as MT=2, may be update during transport calculations

3018

Initially the same as MT=18, may be update during transport calculations

3102

Initially the same as MT=102, may be update during transport calculations

11.7.4. Miscellaneous Useful Input Files

11.7.4.2. Convert (x,y) Data into a Weighting Function File

In order to create MG libraries, a flux file is needed. If a custom flux is used in the form of (x,y) pairs, the following input can be used to convert to a TAB1 formatted file that can be used in the sequences (please note that the flux needs to be per unit of energy, not per unit of lethargy):

=shell

cp ${RTNDIR}/weight.dat ft30f001

end

=charmin

in=30 out=10 fidas to double

end

=shell

cp ft10f001 ${RTNDIR}/weighting

end

The file weight.dat contains the weighting function in FIDO format, as shown below:

2## e

2$$ 9.900000E+01 3.000000E+00 2.099000E+03 0 0 0 0 1 n e

t

2## e

2$$ 9.900000E+01 3.000000E+00 2.099000E+03 0 0 0 0 1 n e

t

3$$ n 2.000000E+00

4##

 1.000000E-05 0.000000E+00

 3.162280E-05 1.458894E-02

 1.000000E-04 2.551780E-02

 1.019370E-04 2.599223E-02

 1.039120E-04 2.824284E-02

... .

Nth data point

t

2$$ 9.900000E+01 3.000000E+00 0

    0.000000E+00 0.000000E+00 0.000000E+00 0 0 0

2## a4 0.000000E+00 0 e t

2$$ 9.900000E+01 0.000000E+00 0

   0.000000E+00 0.000000E+00 0.000000E+00 0 0 0

2## a4 0.000000E+00 0 e t

2$$ 0.000000E+00 0.000000E+00 0

    0.000000E+00 0.000000E+00 0.000000E+00 0 0 0

2## a4 0.000000E+00 0 e t

Where n is the number of data points desired. The first pair of 2## and 2$$ arrays gives the integer and floating points values of the first control record. The first three numbers are the MAT, MF and MT values. The neutron sequences expect MAT=99 and MT=2099, the gamma sequences expect MAT=99 and MT=1599. The last two numbers simply give the number of interpolation regions (1) and the number of data points (n). The pair of 2## and 2$$ arrays are repeated to conform to the definition of a data block in File 3 in the ENDF-102 standard. The 3$$ array lists the interpolation table, which in this case is linear-linear for all data points. The 4## array lists the data points. The final block after the customary “t” ending of fidas input simply lists the SEND and FEND control records.

11.7.5. Integration Routines in AMPX6

In constructing MG cross sections, functions or products of two or more functions must frequently be integrated. Some applications, such as that of generating Bondarenko factors (See Sect. 11.6.8 on the FABULOUS module), involve considerably more complicated expressions and functions to be simultaneously treated. Over the development of AMPX, integration routines have evolved. Several integration routines support all interpolation codes allowed in the ENDF-102 standard, but it is generally expected that the point-wise data are given with linear-linear interpolation. While some of the older methods for integration are still in use, all the new modules use one of four methods:

  1. The Tab1 class provides routines to integrate one-dimensional data.

  2. A general class NumIntegrate uses a fifth-order Runge–Kutta method with adaptive step-size as described in Numerical Recipes [ampx-PVTF92]. The user must extend this class to provide the function that needs to be integrated.

  3. IntegrateCross is used to generate 1D group-averaged cross section data. It assumes that the point-wise data use linear-linear interpolation and forms a union grid, and then it solves the integral analytically as a product of two or three straight lines.

  4. IntegrateMatrix is the class used to generate MG scattering matrices. It uses a combination of option 1 and 2 in conjunction with a unit-based interpolation to calculate the scattering matrix.

Some older AMPX modules use other integration routines; these will be phased out as the modules are modernized and converted to C++.