MCNP Guide
MCNP Tallies
Extracting meaningful results from your simulation
What you'll learn
- Match the tally type to the question:
F1andF2on a surface,F4in a cell,F5at a point,F6andF8for deposition and pulse height. - Turn an
F4flux into a reaction rate with anFMcard, reading its three fields as multiplier, material, and reaction number. - Bin tallies with
E,C, andT, and convert flux to dose with aDE/DFpair copied from Appendix F.1. - Read the pin cell's
F4andF7tallies, and say when avolorsdcard 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.
c Simple flux tally in fuel cellF4:n 10 $ Neutron flux in cell 10E4 6.25e-7 0.1 20 $ Thermal, epithermal, fast groups (MeV)c Multiple cells with totalF14:n (10 20 30) T $ Individual cells plus totalE14 6.25e-7 0.1 20 $ Same energy structure
F4 Flux Tally
Hover any highlighted line to see a field-by-field explanation.
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.
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 20Common 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.
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 detectorThe 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.
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 20The 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.
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 divisionsCartesian 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.
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 fuelF4 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
F4flux into a reaction rate with anFMcard, 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
F4andF7score, and whenvolorsdis required?