MCNP Tallies

Extracting meaningful results from your simulation

What you'll learn

First pin cell · 7 / 1015 min read
  • Match the tally type to the question: F1 and F2 on a surface, F4 in a cell, F5 at a point, F6 and F8 for deposition and pulse height.
  • Turn an F4 flux into a reaction rate with an FM card, reading its three fields as multiplier, material, and reaction number.
  • Bin tallies with E, C, and T, and convert flux to dose with a DE/DF pair copied from Appendix F.1.
  • Read the pin cell's F4 and F7 tallies, and say when a vol or sd card is required.

Before you start

What a tally is

Tallies extract physical quantities from the Monte Carlo run. Without them, MCNP would track particles and report almost nothing you can use. Each tally type estimates a different quantity — flux in a cell, current across a surface, energy deposition, a point detector — with a different estimator.

The starting set is small enough to learn in one sitting. Two tallies score on surfaces: f1 counts the particles crossing one, and f2 gives the flux averaged over it. Two score in volumes: f4 gives the track-length flux averaged over a cell, and f6 gives the energy deposited in it. Then there is f5, a point detector, and f8, a pulse-height tally that answers what a physical detector would register rather than what the field is. Finally fmesh lays a rectangular mesh over the problem, scoring on a grid that ignores the cell structure entirely.

In practice you start with f4, because volume-averaged flux and reaction rates are what most questions reduce to. Reach for f5 when the score sits far from the source and too few histories arrive to make a volume average converge, for f1 or f2 when the question is about leakage or a boundary crossing rather than about a region, and for fmesh when you want a map whose resolution is yours to choose rather than the geometry's.

None of this helps if the sampling is inadequate. Relative errors below 10 % are the working threshold for most results, below 5 % when the number feeds a safety argument, and the figure of merit is how you compare two ways of getting there — it measures precision per unit of run time, which wall-clock time alone does not.

F4: track-length flux and energy bins

The F4 tally estimates average flux in a cell with a track-length estimator. That makes it the default for reactor-physics flux and reaction-rate work. Hover each line below for the field-by-field reading.

mcnp — hover a line to explain it
c Simple flux tally in fuel cell
F4:n 10 $ Neutron flux in cell 10
E4 6.25e-7 0.1 20 $ Thermal, epithermal, fast groups (MeV)
 
c Multiple cells with total
F14:n (10 20 30) T $ Individual cells plus total
E14 6.25e-7 0.1 20 $ Same energy structure

F4 Flux Tally

Hover any highlighted line to see a field-by-field explanation.

F4:n — track-length flux tally
E4 — energy bin boundaries
F14:n — multi-cell tally with total
E14 — energy bins for F14

An F4 divides track length by cell volume, so the reported flux is per unit volume. The matching E card lists energy-bin upper boundaries in MeV; MCNP supplies the zero lower bound. The three-group example above is thermal (below 0.625 eV), epithermal (0.625 eV to 100 keV), and fast (above 100 keV).

FM multipliers: flux to reaction rate

An FM card multiplies an F4 flux by a cross section (and often by atom density) to produce a reaction rate. The three fields inside the parentheses are multiplier, material, and reaction number.

mcnp
c Fission rate in fuel
F24:n  10                $ Flux in fuel cell
FM24   (-1 1 -6)         $ (multiplier, material, ENDF reaction MT)
c       -1 = multiply by atom density (macroscopic rate)
c        1 = use material 1
c       -6 = total fission (-6 is an MCNP shortcut)
E24    1e-11  1e-6  20   $ Energy bin upper bounds (MeV)

c Absorption rate
F34:n  10
FM34   (-1 1 -2)         $ Absorption cross-section
E34    1e-11  1e-6  20

c Multiple reactions
F44:n  10
FM44   (-1 1 102) (-1 1 16) (-1 1 17)  $ Capture, (n,2n), (n,3n)
E44    1e-11  1e-6  20

Common reaction shortcuts include -6 (fission), -2 (absorption), and 102 (capture). A negative multiplier such as -1 includes multiplication by atom density, so the score is a macroscopic reaction-rate density (reactions per unit volume per source particle).

F5: point detectors and dose

Point detectors use next-event estimation to score flux at a location. They are the tool for deep-penetration problems where almost no histories would reach the detector on their own. Place them away from surfaces and in regions with a reasonable particle density.

mcnp
c Dose rate detector outside shield
F5:n   200  0  0   0     $ Point at (200,0,0), zero radius
c ANSI/ANS-6.1.1-1977 neutron flux-to-dose factors, copied verbatim
c from Appendix F.1 (Listing F.1) of the 6.3 manual. Energies in MeV,
c factors in (rem/h)/(n/cm2/s). The standard assumes log-log
c interpolation, which is also MCNP's default.
DE5   log  2.5e-8  1.0e-7  1.0e-6  1.0e-5  1.0e-4  1.0e-3
           0.01    0.1     0.5     1.0     2.5     5.0
           7.0     10.0    14.0    20.0
DF5   log  3.67e-6 3.67e-6 4.46e-6 4.54e-6 4.18e-6 3.76e-6
           3.56e-6 2.17e-5 9.26e-5 1.32e-4 1.25e-4 1.56e-4
           1.47e-4 1.47e-4 2.08e-4 2.27e-4

c Multiple detector positions
F15:n  100  0  0   0     $ First detector
       150  0  0   0     $ Second detector  
       200  0  0   0     $ Third detector

The DE and DF cards convert flux to dose rate: DE lists energies in MeV, DF the response at each. They must have the same number of entries and the energies must increase monotonically. Both default to log-log interpolation, which is what the ANSI/ANS factors above are published for.

If you have seen the shorter form DF5 IU=1 IC=20 in an older deck or an older tutorial, note that it no longer works. MCNP 6.3 removed the built-in flux-to-dose tables over copyright concerns and reprinted them in Appendix F.1 as paste-ready DE/DF input, deliberately without a tally number so that you have to engage with the table rather than invoke it blind. The IC= keyword survives, but only for IC=99, which applies ICRP-60 weighting to an energy deposition tally, and for named detector response functions such as IC=he3-1. The IU= and FAC= keywords are valid only alongside IC=99; IU=1 gives rem/h and IU=2, the default, gives Sv/h. MCNP6.3.1 Theory & User Manual (LA-UR-24-24602 Rev. 1) §5.9.8 and Appendix F.1.

Whichever route you take, do not type a dose table from memory. The ANSI/ANS neutron response spans a factor of about 64 between its softest and hardest points, and it is not monotonic — it dips between 1 and 2.5 MeV and again between 5 and 7 MeV. An invented table is smooth, plausible, and wrong, and nothing in the output will tell you so.

Surface tallies: F1 and F2

Surface tallies measure particle flow across boundaries. F1 counts crossings (current); F2 estimates flux with angular weighting. Both are the usual tools for leakage and boundary checks.

mcnp
c Current leaking from reactor core
F1:n   100              $ Current across surface 100
E1     1e-11  1e-6  20  $ Energy groups
c Cosine bins. The lower bound of -1 is built in, so do not list it
c yourself - that would make an empty bin from -1 to -1.
C1     -0.5  0  0.5  1

c Flux at detector surface
F2:n   200              $ Flux across surface 200
E2     1e-11  1e-6  20

c Time-dependent leakage
F11:n  100
c Time bins in shakes (1 shake = 1e-8 s). This grid spans 10 ns to
c 10 ms, which brackets prompt leakage at one end and the thermal
c neutron lifetime at the other.
T11    1  1e2  1e3  1e4  1e5  1e6
E11    1e-11  1e-6  20

The C card adds angular binning and the T card adds time dependence. The cosine card is for surface tallies: types 1 and 2, and nothing else. Both have a surface normal to measure an angle against. A cell tally like F4 has no such normal, so the card does not apply there. Bins run from the largest angle to the normal, and the lower bound of −1 is built into the code rather than entered.

The F2 case comes with a caveat worth knowing before you trust the numbers. Flux across a surface is estimated as 1/|μ| per crossing, which diverges for a particle travelling nearly parallel to the surface, so MCNP applies a grazing-angle approximation. That approximation is least accurate in exactly the bins nearest tangential, and the code prints a warning whenever a C card is used with an F2. The card is accepted; the near-tangential bins are the ones to treat with suspicion. MCNP6.3.1 Theory & User Manual (LA-UR-24-24602 Rev. 1) §5.9.5, with the approximation itself in §2.5.2.2.

Time bins are the easiest of these to get wrong, because the shake is an unfamiliar unit and 10−8 s is a very short time. A 1 MeV neutron travels at about 4.6% of the speed of light, so it covers roughly 14 cm in a single shake. A grid of a few shakes therefore describes about a metre of flight, and in a reactor-sized problem nearly every score lands in the last bin. Work out how far a neutron travels in your smallest bin before you commit to the grid.

Mesh tallies: spatial mapping

Mesh tallies overlay a geometric grid on the problem and score a distribution that does not have to follow the cell structure. They are the usual route to maps and hotspots. Finer meshes need more particles for the same relative error.

mcnp
c Cartesian mesh for dose mapping
c IMESH/JMESH/KMESH = upper mesh boundary along each axis
c IINTS/JINTS/KINTS = number of bins in that direction
FMESH14:n  GEOM=xyz         $ Rectangular mesh
           ORIGIN=-50 -50 0  $ Starting corner (x,y,z)
           IMESH=50          $ X upper boundary (cm)
           IINTS=50          $ X bins (2 cm each)
           JMESH=50          $ Y upper boundary (cm)
           JINTS=50          $ Y bins
           KMESH=100         $ Z upper boundary (cm)
           KINTS=50          $ Z bins
           OUT=cf            $ Column format output

c Cylindrical mesh for reactor
FMESH24:n  GEOM=cyl         $ Cylindrical mesh
           ORIGIN=0 0 0      $ Center
           AXS=0 0 1         $ Z-axis
           IMESH=150         $ Radial boundary
           IINTS=30          $ Radial divisions
           KMESH=400         $ Axial boundary
           KINTS=80          $ Axial divisions

Cartesian meshes suit general geometries; cylindrical meshes suit reactor problems. Balance resolution against statistics — a bin that almost never scores is not a map, it is noise.

The pin cell's tallies

The running example for this path is a PWR pin cell. Its data block scores a flux spectrum and fission heating in the fuel — the same cards that appear on Example: Pin Cell and in mcnp-examples/example_pin/pin_cell.i.

mcnp
c Tallies
f4:n  1                   $ Track-length flux in fuel cell
e4    1e-9 1e-8 1e-7 1e-6 1e-5 1e-4 1e-3 1e-2
      0.1 1 2 3 4 5 6 7 8 9 10   $ Energy bin upper bounds (MeV)
f7:n  1                   $ Fission energy deposition in fuel

F4 and F7 both divide by a cell volume. The pin closes every cell with reflecting pz planes at 0 and 1 cm, so MCNP can compute that volume and the run proceeds. Leave the axial ends open and the same tallies are a fatal error before transport starts.

A lattice or fill= universe is the other place this fails. MCNP will not compute a volume for a cell inside a repeated structure, so an F4 or F7 over those cells needs an explicit vol or sd divisor — the assembly example on this path supplies sd4 for exactly that reason. Always check that the tally location is a finite, known volume before trusting the score.

Card semantics on this page follow MCNP6.3.1 Theory & User Manual (LA-UR-24-24602 Rev. 1), §5.9.1 F: Standard Tallies, §5.9.5 C: Tally Cosine Bins (Tally Type 1 and 2) and §5.9.8 DE and DF: Dose Energy and Dose Function.

The built-in flux-to-dose tables were removed in 6.3; Appendix F.1 reprints them as DE/DF input.

Full reference list on the attribution page.

Check yourself

  • Match a tally type to the question being asked, rather than reaching for F4 every time?
  • Turn an F4 flux into a reaction rate with an FM card, and read its three fields?
  • Convert flux to dose from a published table, rather than one typed from memory?
  • Add energy, cosine, and time bins, sizing a time grid in shakes deliberately?
  • Say what the pin cell's F4 and F7 score, and when vol or sd is required?