MCNP Guide
Material Cards
What the model is made of, and which nuclear data describes it
What you'll learn
- Write an
mcard, keeping the fraction sign on themcard apart from the density sign on the cell card. - Read a library suffix such as
.80cfor what it is — an index into a processed library, not a version number. - Attach an
mttable to a moderator, and say what silently goes wrong without one. - Write the four materials the pin cell needs: fuel, gap, cladding, and moderator.
Before you start
What a material card is
An m card is a composition and nothing else: a list of nuclides paired with fractions. It carries no density, no temperature, and no geometry. Density arrives later, on whichever cell card fills itself with this material, which is why one material can describe both hot and cold water in the same deck.
c Material card structurec mN ZAID.XXc fraction $ commentm1 92235.80c 0.045 $ U-235 (4.5 at% enriched)92238.80c 0.955 $ U-238 (remainder)8016.80c 2.000 $ O-16 (stoichiometric oxygen)c Breaking down the format:c m1 = material number 1 (referenced on cell cards)c 92235 = ZAID: Z=92 (uranium), A=235c .80c = library identifier + class letterc 0.045 = atom fraction (positive = atom, negative = weight)c $ ... = inline comment
Material Card Format
Hover any highlighted line to see a field-by-field explanation.
Two sign conventions run through MCNP and they mean different things on different cards. On the m card, a positive fraction is an atom fraction and a negative fraction is a weight fraction. On the cell card, a negative density is g/cm³ and a positive density is atoms/barn·cm. Getting the second one backwards is the classic way to build a model that runs happily and reports the wrong answer — see Cell Cards for that half.
A single card must pick one convention. MCNP rejects a card that mixes positive and negative entries rather than trying to interpret it. It does not care whether the numbers sum to one, though: unnormalized ratios are normalized for you, which is what lets the UO₂ card above be written as a plain 0.045 / 0.955 / 2.0 stoichiometry.
Where you have a choice, prefer atom fractions. Converting weight fractions to atom fractions requires atomic weight ratios, which MCNP reads from the transport tables, and the manual recommends atom fractions specifically to avoid that step. Natural isotopic abundances are tabulated by atom, so a natural-composition card takes positive entries — writing those negative describes a different mix, quietly.
What the suffix actually points at
The two digits before the class letter identify a processed library, and they encode the evaluation and the temperature together. They are not a version number. In the ACE files LANL publishes with MCNP6:
c Same nuclide, same temperature, three different evaluations
m1 92235.00c 1.0 $ ENDF/B-VIII.0 (Lib80x) at 293.6 K
m2 92235.80c 1.0 $ ENDF/B-VII.1 (ENDF71x) at 293.6 K
m3 92235.70c 1.0 $ ENDF/B-VII.0 (ENDF70) at 293.6 K
c Same evaluation, four different temperatures
c .80c = 293.6 K .81c = 600 K .82c = 900 K .83c = 1200 K
c Lib80x runs the same ladder at .00c through .03cThe resemblance between .80c and the name ENDF/B-VIII.0 is a coincidence, and a costly one — .80c is VII.1. Nor is the numbering portable between vendors: KAERI issues ENDF/B-VI.8 as .80c, and JAEA ships JENDL-5 at .20c. The MCNP manual declines to publish a mapping at all and points you at your own xsdir instead, which is the right instinct. The NRDP library reference collects the LANL numbering in one table.
Rather than editing every ZAID when you switch libraries, set a default. NLIB on an m card changes the default neutron library for that material, and an M0 card applies its keywords to every other material in the deck. A ZAID that names its own suffix still wins over both.
M0 NLIB=80c $ every bare ZAID below resolves to ENDF/B-VII.1
m1 92235 0.045 92238 0.955 8016 2.0
m2 1001 2.0 8016 1.0
m3 26056.00c 1.0 $ explicit suffix overrides the M0 defaultThermal scattering, and the failure that makes no noise
Below roughly 10 eV a neutron can no longer treat a hydrogen nucleus as a free particle at rest: the nucleus is bound into a molecule, and scattering has to account for the molecular and lattice modes it can excite. An mt card supplies that treatment by naming an S(α,β) table.
m3 1001.80c 2.0 $ hydrogen in H2O
8016.80c 1.0 $ oxygen
mt3 lwtr.20t $ binds the hydrogen — ENDF71SaB at 293.6 K
m4 6000.80c 1.0 $ natural carbon
mt4 grph.20t $ binds the carbonEach table alters exactly one target element, and MCNP matches on that target. Point an mt card at a material that does not contain the target and nothing happens — no error, no warning, and a thermal spectrum that is wrong in a way no summary table will show you. The same matching rule means the effect is all-or-nothing: you cannot bind some of the hydrogen in a material and leave the rest free.
Keep the thermal and neutron libraries from the same generation. ENDF71SaB runs .20t at 293.6 K up to .28t at 800 K and pairs with .80c; the older endf70sab covers the same ladder at .10t–.18t and pairs with .70c. ENDF/B-VIII.0's thermal set also renamed the tables, so lwtr becomes h-h2o there.
Temperature reaches the physics through three separate mechanisms and it is worth keeping them apart. The library suffix carries Doppler-broadened resonances, baked in during processing. The mt table carries the bound-scattering kernel. The TMP card carries only the free-gas scattering temperature.
c Hot fuel at 1200 K
c kT(MeV) = 8.617e-11 x T(K), so 1200 K -> 1.0340e-7
m10 92235.83c 0.045 $ resonances broadened to 1200 K by the library
92238.83c 0.955
8016.83c 2.000
c TMP takes one entry per cell in the problem, in that cell order.
c A zero entry for a non-void cell is a fatal error.
TMP 1.0340e-7 1.0340e-7 5.1702e-8 2.5300e-8That TMP card is easy to get wrong in two ways. It is not a single global value — the data-card form takes one entry per cell in the problem, in cell order. And it runs in the opposite direction from most people's intuition: leave it off and MCNP adjusts scattering back toward room temperature using an approximation that does not touch resonances at all. A deck built on .83c data with no TMP cards is therefore inconsistent, and the manual asks you to set TMP on every cell whose library is not at room temperature.
The pin cell's four materials
The running example for this path is a PWR pin cell, and it needs four materials: fuel, the helium in the pellet–clad gap, the cladding, and the moderator. This is the block that opens the deck on Example: Pin Cell, and it matches mcnp-examples/example_pin/pin_cell.i line for line.
c --- Materials ---
c Fuel: UO2 at 4.5% enrichment, 10.4 g/cm3 on the cell card
m1 92235.70c 0.045 $ U-235
92238.70c 0.955 $ U-238
8016.70c 2.0 $ O-16, two per formula unit
c Gap: helium at fill-gas density
m2 2004.70c 1.0 $ He-4
c Cladding: natural zirconium, atom fractions from natural abundance
m3 40090.70c 0.5145 $ Zr-90
40091.70c 0.1122 $ Zr-91
40092.70c 0.1715 $ Zr-92
40094.70c 0.1738 $ Zr-94
40096.70c 0.0280 $ Zr-96
c Moderator: light water, atom fractions, with the thermal kernel
m4 1001.70c 2.0 $ H-1
8016.70c 1.0 $ O-16
mt4 lwtr.10t $ binds the hydrogen at 293.6 KThree things in that block are worth noticing. Every fraction is positive, because all four compositions come from ratios of atoms — stoichiometry for UO₂ and water, natural abundance for zirconium. Natural abundances in particular are tabulated by atom, so writing those five zirconium entries as negative numbers would describe a different metal.
The cladding is modelled as pure natural zirconium rather than true Zircaloy-4. The 1.5 wt% tin and the trace iron and chromium are neglected, which is a standard simplification for a single pin cell and worth about a few tens of pcm; the density stays at the alloy's 6.56 g/cm³. Add the alloying elements when the absorption in the cladding is the thing you are trying to measure.
And only the water gets an mt card. Zirconium is a structural solid here, not a moderator, so there is no thermal kernel to attach.
The neutron suffix here is .70c and the thermal table is lwtr.10t — both ENDF/B-VII.0, deliberately paired. Swap one and you should swap the other.
Try it: one card, one convention
Enrichment gets quoted both ways in the literature, so the first job when copying a composition is working out which kind of number you are holding. The deck below gets it half right.
m1 mixes the two conventions. The uranium entries are atom fractions for 4.5 at% enrichment, so the oxygen has to be one too — two oxygen atoms per uranium atom. Leave m2 alone: an all-negative card is consistent and correct.Neither sign is the right one in general. Match the source you are copying from, stay consistent within the card, and reach for atom fractions when the choice is yours.
Try it: thermal scattering
This is the failure mode from earlier, made concrete. Both mt cards below name a real table and both materials are physically sensible, so nothing in the output will announce the problem.
mt cards are swapped. lwtr binds hydrogen in water and grph binds carbon in graphite; give each material the kernel for the element it actually contains.Card semantics on this page follow MCNP6.3.1 Theory & User Manual (LA-UR-24-24602 Rev. 1), §5.6.1 M: Material Specification, §5.6.2 MT: S(α,β) Thermal Neutron Scattering, §5.7.5 TMP: Free-gas Thermal Temperature and §1.2.3 Table Identifiers.
The sign conventions — negative density for g/cm3, negative fraction for weight fraction — are the most misremembered part of the card. §5.6.1 also records the recommendation to prefer atom fractions, and that M0 sets defaults for every other material.
Full reference list on the attribution page.
Check yourself
- Write an
mcard, keeping the fraction sign rule apart from the density sign rule on the cell card? - Say what
.80cpoints at, and where to look when you do not know? - Attach the right
mttable to a moderator, and describe what changes when you leave it off? - Explain why Doppler broadening comes from the library while
TMPdoes not? - Write the four materials of the pin cell from memory?