Skip to content

Input file reference

An IRMA input file is written in NJOY free-format and follows the LEAPR card structure used by LEAPR. Throughout, α and β are the dimensionless momentum and energy transfer of the thermal scattering law S(α,β) (β = E/kT, α ∝ Q²/kT; the theory page gives the exact conventions), and a tape is an ENDF output file, the historical name. This page is the authoritative card-by-card reference: the cards are read in the fixed order given below, and each conditional card (the generalized-elastic block, the per-temperature detail block, the phonopy controls) is introduced together with the mode that triggers it. Two annotated example input files (a classic one and a generalized iel=10, inelastic_mode=2 one, with the arrays abridged) close the page.

To run an input file:

python -m irma <input_file> <output_file>

<input_file> is the LEAPR-style input file; <output_file> is the path where the ENDF-6 tape is written: the inelastic MF7/MT4 section, the elastic MF7/MT2 section when an elastic option is active, and the MF1/MT451 header built from the input file's comment cards. The irma console script and the GUI (irma-gui or python -m irma --gui) accept the same input files.

Input file format rules

IRMA tokenizes input the way NJOY's list-directed (free-format) reader does, with two differences: Fortran null values (,,) and repeat counts (3*0.0) are refused, and a scalar card never continues onto the next line.

Rule Behavior
Free format Values are separated by spaces or commas. A card is not tied to a fixed number of columns.
Card terminator / A / ends the current card. Any values not supplied before the / take their documented defaults.
One record per line Each input line is one Fortran-style record. A scalar card read consumes the whole line up to the / (or to end-of-line); leftover tokens on that line are discarded, never carried into the next card.
Multi-line arrays Grid and spectrum cards (alpha, beta, rho values, …) may span several lines. Continuation lines carry no /; the array's single / terminator goes on the last data line, after the final value.
Quoting The title and comment cards are quoted strings. Both '…' and "…" delimiters are accepted. A doubled quote inside a '-quoted string ('') is a literal quote, following Fortran convention.
D-exponents Fortran D-exponent notation is accepted in numeric fields: 1.0d-5, 2D3, 3.899867e-04 all parse. The d/D is mapped to e.
Integer vs. float fields Integer-coded fields reject non-integral values: 200.0 is accepted as 200, but 1.9 is an input error rather than a silent truncation.
Underscores and overflow 1_000 (Python digit grouping) is not Fortran numeric syntax and is rejected, as is an overflowing exponent such as 1e999. Both fail loudly instead of being admitted as numbers.
Comments Only text after the card's / on the same line is ignored (any marker works there: -- …, $ …, plain text). There is no standalone comment-line syntax: a line without a / is parsed as data; mid-file it mis-feeds the next card read, and in the trailing comment section it silently becomes an MF1/MT451 comment card.

A full NJOY job stream is also accepted on input. IRMA locates the leapr … stop block automatically and ignores the surrounding modules, so you can point IRMA at an existing NJOY input file without editing it.

When an input file is malformed, IRMA raises a DeckError that names the card being read, the expected/found values, and the input line number in the file, for example:

iel must be an integer, got the non-integral value 1.9
while reading Card 5 (awr spr npr iel ncold nsk) (input line 6 of my_deck.input)

The CLI and GUI present this message without a Python traceback. Semantic checks (a lattice angle out of range, a non-increasing grid) are reported against the line where the offending card started.

Card-by-card reference

The cards below are read in order. Cards 1–6 and Cards 7–9 are read for every input file. The generalized-elastic block (Cards 6b–6g) is read only when iel=10, between Card 6 and Card 7. The per-temperature detail block (Cards 11–19) is read only for the classic kernels and inelastic_mode=0.

Control cards (every input file)

Card Fields Defaults Notes
1 nout — Output unit. Kept for LEAPR compatibility; IRMA writes the file named on the command line and ignores this value.
2 'title' empty Quoted title string. A numeric or unquoted token is stringified (this card is free text).
3 ntempr iprint nphon 1 1 100 Temperature count (≥ 1), print level, and phonon-expansion order (≥ 1). For inelastic_mode=1/2, nphon is also the multiphonon maximum order.
4 mat za isabt ilog smin [iint nver lrel] 0 0 0 0 1.0e-75 0 8 1 ENDF MAT (≥ 1; the material number that labels the evaluation in a library, yours to assign) and za; isabt (0/1) selects S(α,−β) storage; ilog (0/1) selects log storage; smin is the minimum stored S; optional iint (0/1) selects the MF7/MT4 interpolation scheme (see below, default 0); optional nver and lrel are the library version and release written to MF1/MT451 (ENDF/B-VIII.1 is 8 1, the default; to set them, give iint too). isabt=1 writes S for both signs of β; THERMR cannot process such tapes, so use it for diagnostics only. For iel=10, za must encode the physical nuclide as 1000·Z + A so the principal scatterer can be matched to a Card 6d atom (A = 0 names the natural element on both cards, e.g. za = 6000 matching a Card 6d row with A = 0).
5 awr spr npr iel ncold nsk 0 0 0 0 0 0 Principal scatterer (the atom species the evaluation is written for): mass ratio awr (> 0), free-atom cross section spr (> 0), atom count npr (≥ 1), elastic option iel, cold-hydrogen option ncold (0–4), pair-correlation option nsk (0–2). See the iel table below.
6 nss b7 aws sps mss 0 0 0 0 0 Secondary scatterer: count nss (0 or 1); b7 selects the secondary type; mass ratio aws (> 0), cross section sps (> 0), atom count mss (≥ 1). Fields 2–5 are validated only when nss > 0. A bound two-pass secondary (nss=1, b7=0) is rejected with iel=10 (see the b7 table below).

Cryogenic tapes need ilog=1 on Card 4. With ilog=0 the symmetric thermal scattering law S(α,β) is stored linearly as S·exp(−β/2). Below ~50–100 K, β = E/kT is large enough that high-energy-transfer values underflow to zero in the ENDF field, silently dropping the optic-mode structure on read-back. Set ilog=1 (ENDF LLN=1, log storage) for low-temperature tapes; IRMA warns at write time if you leave it at 0 and lose data. See Troubleshooting.

The optional iint flag sets the interpolation law between stored points (ENDF INT), while ilog sets how S is stored. It is written on both the α (per-β TAB1) and β (TAB2) tables of MF7/MT4. The default, iint=0, writes log-linear interpolation (INT=4), the classic, NJOY-faithful choice. iint=1 writes linear-linear (lin-lin, INT=2) instead, which matters for a coherent one-phonon S(α,β): the table has structural near-zeros (for example the graphite (002) dip) that logarithmic interpolation floors, which biases the cross section low in the thermal minimum. Lin-lin preserves the near-zeros, and an INT-aware THERMR (NJOY's thermal processing module) honors whichever flag is written. Stock NJOY2016 THERMR ignores INT and interpolates ln S, so the lin-lin benefit requires the patched THERMR described in NJOY interoperability. Use iint=1 only with a Q/α grid converged near sharp coherent peaks: lin-lin connects the tabulated points with straight lines, and those lines still cut below a peak the grid does not resolve.

iel (Card 5): coherent elastic treatment

iel Meaning
0 No coherent elastic. (Falls back to incoherent elastic when there is also no translational mode.)
1–6 Built-in coherent elastic for graphite, Be, BeO, Al, Pb, Fe (in that order).
10 Generalized coherent elastic: Bragg edges computed from the user's crystal structure (any material). Cards 6b–6g follow. Recommended for new evaluations.

ncold (Card 5): cold hydrogen/deuterium option

ncold Meaning
0 None.
1 Ortho-hydrogen.
2 Para-hydrogen.
3 Ortho-deuterium.
4 Para-deuterium.

Any ncold > 0 makes every temperature's detail block supply the S(κ) grid (Cards 17–18), which feeds the intramolecular structure of the cold-hydrogen kernel.

nsk (Card 5): pair-correlation option

nsk Meaning
0 None.
1 Vineyard. Cards 17–19 must be supplied, but, matching NJOY LEAPR, no correction is applied. With ncold = 0 the resulting tape is identical to nsk = 0; with ncold > 0 the S(κ) table feeds the cold-hydrogen kernel exactly as for any nsk. Use nsk = 2 for a correction that modifies S(α,β).
2 Sköld: α is rescaled by the static structure factor S(κ) (Cards 17–18) and the coherent piece is blended in with weight cfrac (Card 19). Applied only when ncold = 0.
b7 Meaning
0 Bound (two-pass): a second full temperature block follows the principal's. Not supported with generalized elastic (iel=10): the generalized MF7/MT2 builder would use the secondary's Debye-Waller data instead of the principal's, so the combination is rejected at parse time; use b7=1/2, nss=0, or classic iel=0–6.
1 Free gas.
2 Diffusion.

The phonopy-backed modes (inelastic_mode=1 or 2, set on Card 6b) do not support cold hydrogen/deuterium, the Sköld/Vineyard pair-correlation option, or a secondary scatterer. Input files combining inelastic_mode=1/2 with ncold > 0, nsk > 0, or nss > 0 are rejected at parse time, before the phonopy mesh is loaded.

Generalized-elastic cards (only when iel=10)

These cards are read between Card 6 and Card 7 when iel=10. They define the crystal structure and the elastic/inelastic treatment, following the formalism of Ramić et al., NIM-A 1027 (2022) 166227.

Card 6b: elastic mode and atom counts

elastic_mode  nat  nspec  inelastic_mode  [bins_per_decade]  [threshold_eV]  /
Field Default Notes
elastic_mode — 1 = SEF (single-channel elastic format): one elastic component per tape. Single atom type: the dominant component carries the full elastic strength, coherent (LTHR=1) if σ_coh > σ_inc, else incoherent (LTHR=2). Polyatomic: the designated-coherent atom (the species with the smallest incoherent contribution, which SEF selects to carry the coherent elastic) gets LTHR=1, every other principal gets LTHR=2 (see Theory). 2 = MEF (Mixed Elastic Format): LTHR=3 (coherent + incoherent together). Must be 1 or 2.
nat — Number of distinct atom types in the unit cell (≥ 1).
nspec — Number of Card 12e partial phonon spectra in each temperature block, after Card 12. Meaningful only for inelastic_mode=0. For inelastic_mode=1/2, nspec must be 0 (input error otherwise).
inelastic_mode — 0 = isotropic Debye-Waller + phonon expansion from the input file's DOS (no phonopy). 1 = directional DW + S(α,β) from the phonopy calculation with incoherent-approximation one-phonon plus incoherent-approximation multiphonons. 2 = directional DW + S(α,β) from the phonopy calculation with exact one-phonon (coherent + incoherent) plus incoherent-approximation multiphonons. Modes 1/2 require Cards 6f/6g.
bins_per_decade 0 (off) Optional. ENDF-102 §7.2.2 coherent-elastic Bragg-edge grouping: above threshold_eV, dense edge steps are merged into this many log-uniform bins per decade with structure-factor-weighted placement; cumulative S stays exact at each bin boundary (see Scattering modes).
threshold_eV 1.0 Optional. Grouping threshold in eV; used only when bins_per_decade > 0.

Card 6c: lattice parameters

a  b  c  alpha  beta  gamma  /

a, b, c are lattice constants in Ångström (each finite and > 0); alpha, beta, gamma are the lattice angles in degrees (alpha between the b and c axes, beta between a and c, gamma between a and b), each in (0, 180). An angle triple that does not form a valid cell (non-positive metric determinant) is rejected with Card-6c context.

The Bragg comb is built with a along x and b in the xy-plane. With inelastic_mode=1/2 the directional Debye-Waller tensors come from the phonopy model, in its own Cartesian frame. When that model's lattice is oriented differently and Card 6c is the phonopy cell (lengths within 1e-3 relative, angles within 0.01°), the tensors are rotated into the comb's frame. When Card 6c describes a different cell, they are used as they are and a NOTE line says so.

Card 6d: atom types (repeated nat times)

A names the isotope, or 0 for the natural element. It is an identity key rather than a physical input: the scattering constants on the same line (awr, b_coh, sigma_inc) carry the physics, while A is what Card 4's za and any Card 12e partial spectrum are matched against. Naming the natural element as A = 0 (ENDF's own convention) avoids borrowing an isotope's mass number for constants that are natural-abundance values.

For each atom type:

Z  A  awr  b_coh  sigma_inc  npos  /
x1 y1 z1  x2 y2 z2  ...  (npos fractional positions)  /
Field Notes
Z Atomic number (≥ 1).
A Mass number, or 0 for the natural element (≥ 0); an identity key matched against Card 4 za and Card 12e.
awr Atomic weight ratio to the neutron mass (> 0).
b_coh Coherent scattering length in fm (finite).
sigma_inc Incoherent scattering cross section in barns (≥ 0).
npos Number of positions of this atom in the cell (≥ 1; for inelastic_mode=1/2 the cell is the phonopy primitive cell).
positions npos fractional coordinate triples on the next data line(s).

For inelastic_mode=1/2, the Card 6d atom types and positions must match the phonopy primitive cell (not the conventional cell). A mismatch (wrong species, wrong positions, or a principal ZA that has no matching phonopy site) is reported as a Card 6d input error, not as a phonopy failure.

The principal nuclide may be split over several Card 6d entries. In every mode, multiple Card 6d atom types that carry the principal nuclide (the Card 4 za) are merged into a single group: their position lists are combined, the coherent-elastic comb counts the principal once, and for inelastic_mode=1/2 the MT4 S(α,β) accumulates over every represented site. The merged entries must agree in awr, b_coh, and sigma_inc; differing values are a Card 6d input error. Non-principal types are never merged.

Card 6f: phonopy mesh (inelastic_mode=1/2 only)

How to produce the phonopy calculation this card names, from your own force-constant calculation, is covered in Preparing a phonopy calculation.

'path/to/phonopy.yaml'  /                          Card 6f-1
mesh_nx  mesh_ny  mesh_nz  ncpu  use_born  /       Card 6f-2
'path/to/BORN'  /        (only if use_born = 1)    Card 6f-3

Optional minimum phonon energy (inelastic_mode=1/2 only)

An optional one-value card may appear after Card 6f (and its optional BORN path) and immediately before Card 6g:

minimum_phonon_energy_meV /

The card has one value and Card 6g has two or three, which is how the two are told apart. Omitting it, or giving 0, keeps IRMA's automatic mode floors exactly (1 µeV, and 0.1 meV at Γ), which already exclude imaginary modes and numerical noise near zero energy. A positive value removes every phonon mode with energy at or below it from every term: the phonon DOS, the Debye-Waller tensors, the coherent and incoherent one-phonon scattering, and the multiphonon expansion. Nothing replaces the removed modes and the remaining spectrum is not renormalized: the evaluation describes a truncated vibrational model, and the run log and the metadata (min_phonon_energy_meV, phonon_cutoff) say what was removed. The same setting exists on the spectra and NCrystal paths (min_phonon_energy_meV in their configurations) and in irma mlip emit --min-phonon-energy, so the three paths agree.

It is not a repair for an unstable model: a positive value only ever removes real, positive modes. And it is easy to underestimate. Mean-square displacements weight modes as 1/E², so a cutoff that removes a negligible share of the modes can remove a large share of the Debye-Waller exponent: on graphite at 296 K a 5 meV cutoff removes 0.13% of the modes but 29% of the displacement, and raises the Debye-Waller intensity factor along the c axis by 74% at Q = 10 Å⁻¹. IRMA prints a warning when the displacement trace moves by more than 1%.

Field Notes
phonopy.yaml path Quoted path to the phonopy calculation. Force constants are read from the YAML if embedded, otherwise discovered next to it in the order force_constants.hdf5, FORCE_CONSTANTS, FORCE_SETS. If none is found this is a hard error; files in the process working directory are never consulted.
mesh_nx/ny/nz Monkhorst-Pack mesh for the phonon calculation (each ≥ 1).
ncpu Worker-process count for the in-process SAB calculation (≥ 1). Values above the available core count are clamped to it (with a console warning). Workers use the spawn start method with the compute context in shared memory, so ncpu > 1 works on all platforms, Windows included. Note the standard spawn requirement: a script that drives IRMA programmatically must wrap its entry point in if __name__ == "__main__": (the irma CLI and python -m irma... already do). Native BLAS/OpenMP threads are pinned to 1 by design.
use_born 1 applies the non-analytical-term correction (LO-TO splitting) from the BORN file named on the next card; it is applied consistently to the MT2 directional Debye-Waller factors and to every MT4 mode sum. An unreadable BORN file is a hard error. With use_born=0, a nac: block embedded in the named phonopy.yaml is still honored, but a BORN file in the working directory is never auto-read, so the applied physics never depends on where IRMA runs.

The mesh line must contain exactly five values; the BORN path card is present only when use_born = 1.

Card 6g: sampling controls (inelastic_mode=1/2 only)

ndir  mpdir  [auto_order]  /
Field Default Notes
ndir — One-phonon powder-average directions, for the coherent and the incoherent term (golden-spiral quadrature; ≥ 1).
mpdir — Multiphonon powder-average directions (≥ 1). Converged by ~50–100; the GUI/production default 1000 (the validation-campaign sampling) carries ample margin. Cost is linear in mpdir.
auto_order 0 0 = honor Card 3 nphon verbatim; 1 = auto-size the multiphonon order from the anisotropic Debye-Waller physics.

The incoherent powder average is always the exact numerical orientational average.

Make sure nphon (or auto_order=1) gives the tabulated S(α,β) real support across the requested beta grid. Transfers beyond the table are covered downstream by THERMR's short-collision-time extension, driven by the tape's effective temperature (a spectrum-weighted temperature LEAPR writes for exactly this purpose). With auto_order=1 the order rises to converge the anisotropic-DW Poisson sum at the grid's Q-max; a graphite grid reaching Q ≈ 100 Å⁻¹ needs an order near 223, and a fixed nphon=100 truncates the high-Q part of the table (the engine warns).

Extinction card: crystalline extinction (optional)

An optional card placed last in the iel=10 block (after Card 6d, or Card 6g for inelastic_mode=1/2), before Card 7. It is off by default; when present it reduces the coherent-elastic Bragg edges of MF7/MT2 for dynamical-diffraction extinction, a property of the physical specimen. The card needs a coherent-elastic component: elastic_mode=2 (MEF) always has one; with elastic_mode=1 (SEF) the input file must actually route MF7/MT2 to the coherent builder, otherwise the card is rejected at parse time (see Crystalline extinction for the two SEF configurations this excludes).

extinction <model> l=<Å> g=<rad⁻¹> L=<Å> [dist=<...>] [rec=cls|std] [rmse_tol=<frac>]
Field Default Description
<model> — Sabine_uncorr, Sabine_corr, BC_pure, BC_mix, BC_mod. BC_mix/BC_mod require l>0, g>0 and L>0.
l 0 Crystallite size [Å] (primary extinction).
g 0 Mosaic-distribution parameter [rad⁻¹], inversely proportional to the mosaic spread (secondary).
L 0 Grain size [Å] (secondary).
dist Gauss/rect Gauss/Lorentz/Fresnel (BC) or rect/tri (Sabine).
rec std Becker-Coppens recipe std (BC2025) or cls (BC1974).
rmse_tol 1e-3 Adaptive MF7/MT2 tabulation tolerance below the cutoff.

See Crystalline extinction for the physics, models, validation, and references (CrysXT, Kittelmann 2026, Xu 2025).

Grid cards (every input file)

Card Fields Notes
7 nalpha nbeta lat Grid sizes: nalpha ≥ 1, nbeta ≥ 2. lat (0 or 1): lat=1 means the grids are given at the 0.0253 eV reference temperature.
8 nalpha α values Strictly increasing, all > 0. May span multiple lines; one / ends the card.
9 nbeta β values Strictly increasing, all ≥ 0. May span multiple lines; one / ends the card.

You do not have to build these grids by hand: the GUI (the Grids part) and the bundled grid generators can build them for you; the automatic grids page describes the generators and their defaults. The beta grid has three regions: a log lower tail, a linear phonon region over (0, freq_max), and a log upper tail. The upper-tail cap is specified as an energy transfer (default 5 eV). The map from energy and Q to β and α contains kT, so the generator anchors the grid to one reference temperature: 293.6 K for lat=1 (a stored value then means the same physical transfer at every temperature), or the first temperature for lat=0. The alpha grid is linear in momentum transfer Q: points every dq (default 0.05 Å⁻¹) up to a Q cut (default 12 Å⁻¹), then a logarithmic tail (default 160 points) to the beta grid's kinematic reach (alpha_max = 4·beta_max/awr). This layout resolves the upscatter windows that drive the thermal-energy cross section, which an alpha grid built by mirroring the beta grid through the recoil relation under-samples.

Temperature cards (Card 10 onward)

One temperature card per requested temperature. A negative temperature reuses the previous temperature's entire detail block unchanged and recomputes S(α,β) at |T| (the LEAPR shared-DOS convention); no detail cards follow it. Exception: the first temperature always supplies a detail block, even if written negative (there is nothing yet to reuse; S(α,β) is still computed at |T|). This matches NJOY LEAPR.

Card Fields When read Notes
10 T every temperature Temperature in K; must be nonzero. A negative value reuses the previous temperature's detail block (the first temperature always supplies one).
11 delta ni classic / inelastic_mode=0, first or positive T Continuous-spectrum energy spacing in eV (> 0) and point count ni (≥ 2).
12 rho(1..ni) with Card 11 Phonon density of states on the equidistant grid (each ≥ 0, not all zero).
12e Z A delta ni / rho(1..ni) iel=10, inelastic_mode=0, nspec times after Card 12 Partial spectrum of one other species at this temperature (below).
13 twt c tbeta with Card 11 Translational weight twt (≥ 0), diffusion constant c (0 = free gas), continuous weight tbeta (> 0).
14 nd with Card 11 Number of discrete oscillators (≥ 0).
15/16 oscillator energies / weights only if nd > 0 Energies in eV (each > 0); weights (each ≥ 0).
17/18 nka dka / S(κ) values only if nsk > 0 or ncold > 0 Sköld S(κ) grid count (≥ 1) and spacing (> 0), then nka values.
19 cfrac only if nsk > 0 Coherent fraction.

For inelastic_mode=1/2 the detail block is omitted entirely: the inelastic S(α,β) comes from the phonopy calculation, so those input files supply only the temperature cards (Card 10), and Cards 11–19 are not read.

Card 12e: partial phonon spectra (iel=10, inelastic_mode=0)

In a mode-0 iel=10 input file, every temperature block holds the phonon spectrum of every species. Cards 11–12 hold the principal scatterer's spectrum; the other species follow as Card 12e, repeated nspec times (Card 6b), right after Card 12:

Z  A  delta  ni  /
rho(1) rho(2) ... rho(ni)  /

Z/A name the Card 6d atom type, delta is the equidistant energy spacing in eV (> 0), ni the number of values (≥ 2), and rho(j) the partial phonon density of states (each ≥ 0, not all zero).

A species' spectrum sets its Debye-Waller factor in the coherent-elastic Bragg edges (MF7/MT2) at that temperature, as the principal's Cards 11–12 set its inelastic law and its own Debye-Waller factor. The rules:

  • A negative temperature reuses the previous block, Card 12e included. If the spectra do not change with temperature, write them once in the first block and give the later temperatures as negative values.
  • Every block names the same species, each at most once, and each matches exactly one Card 6d atom type by (Z, A).
  • The principal has no Card 12e spectrum: its spectrum is Cards 11–12 of the same block.
  • Each spectrum carries its species' full vibrational weight. The Debye-Waller integral normalizes it with a continuous weight of 1 (the tbeta = 1 convention); Card 12e has no translational, diffusion, or oscillator weight. A spectrum holding only part of a species' weight would bias its Debye-Waller factor.
  • A Card 6d atom type without a Card 12e spectrum takes the principal's Debye-Waller factor at each temperature, and IRMA prints a warning naming the type. For any species other than the principal this is only an approximation, and it sets that species' elastic W'(T) on the tape.

A two-temperature BeO-style block, principal Be with an O spectrum at each temperature:

296.0 /                    -- Card 10
0.0025 120 /               -- Card 11: Be spectrum grid
... 120 values ... /       -- Card 12
8 16 0.0025 140 /          -- Card 12e: O at 296 K
... 140 values ... /
0. 0. 1. /                 -- Card 13
0 /                        -- Card 14
1200.0 /                   -- Card 10: its own block at 1200 K
0.0025 120 /               -- Card 11
... 120 values ... /       -- Card 12
8 16 0.0025 140 /          -- Card 12e: O at 1200 K
... 140 values ... /
0. 0. 1. /                 -- Card 13
0 /                        -- Card 14

Earlier IRMA versions read these spectra once, as Card 6e after Card 6d, and used them at every temperature. An input file that still has them there is refused with a message saying where they go. Move them to after Card 12 of every block that has its own Cards 11–12: the first block and each later block with a positive temperature (blocks for negative temperatures have no cards and reuse the previous block's spectra).

After the last temperature block, optional quoted comment cards (one per line) become the ENDF MF1/MT451 text records. A bare / ends the comment section. The records follow the ENDF-6 layout:

Card MF1/MT451 record
1 ZSYMAM (columns 1-11), ALAB (12-22), EDATE (23-32), AUTH (34-66)
2 REF (2-22), DDATE (23-32), RDATE (34-43), ENDATE (56-63)
3-5 HSUB, the three sub-library identification lines
6 and later free-text description

When cards 3-5 are absent or blank, IRMA writes the standard ENDF/B thermal lines for the Card 4 nver and lrel, for example:

----ENDF/B-VIII.1     MATERIAL   37
-----THERMAL NEUTRON SCATTERING DATA
------ENDF-6 FORMAT

MF1/MT451 EMAX is the upper energy of the MF7/MT4 table, the same value as its B(4) entry.

End-to-end example: classic input file (iel=1, graphite)

This is a complete classic input file: a built-in coherent-elastic material (iel=1, graphite), the continuous-DOS inelastic path, and ten temperatures (the first, then nine negative-temperature cards). It reproduces the published NJOY LEAPR crystalline-graphite result (the classic kernels reproduce published LEAPR tapes to 7e-5). The alpha, beta, and rho arrays are abridged here with …; supply the full grids in a real input file.

leapr
24 /                                  -- Card 1: output unit (ignored)
'graphite'/                           -- Card 2: title
10 2 100/                             -- Card 3: ntempr=10 iprint=2 nphon=100
30 130/                               -- Card 4: mat=30, za=130 (the historical TSL ZA of the published graphite library; iel=10 input files use the physical 1000*Z+A instead)
11.898 4.73918 1 1 0/                 -- Card 5: awr, spr, npr=1, iel=1 (graphite), ncold=0
0/                                    -- Card 6: nss=0 (no secondary scatterer)
150 400 1/                            -- Card 7: nalpha=150, nbeta=400, lat=1
3.322045E-03 3.550353E-03 ... 6.644091E+01/   -- Card 8: 150 alpha values
0.000000E+00 3.952570E-02 ... /               -- Card 9: 400 beta values
296/                                  -- Card 10: first temperature (K)
0.001 201/                            -- Card 11: delta=0.001 eV, ni=201 (continuous spectrum)
0.000000E+00 2.389404E-04 ... 0.000000E+00/   -- Card 12: 201 rho values
0. 0. 1. 0./                          -- Card 13: twt=0, c=0, tbeta=1 (pure solid)
0/                                    -- Card 14: nd=0 (no discrete oscillators)
-400.0/         -- Card 10: negative T -> reuse the 296 K spectrum, recompute S(α,β) at 400 K
... (repeat negative-T cards for the remaining 8 temperatures) ...
'crystalline graphite, generated with IRMA'/   -- comment card -> MF1/MT451
/                                     -- bare '/' ends the comment section
stop

Card 13 with twt = 0 and tbeta = 1 is a pure crystalline solid: all weight sits in the continuous spectrum, with no translational or diffusion mode. The negative temperatures after the first reuse the 296 K detail block; this is how one phonon spectrum serves many temperatures.

End-to-end example: generalized iel=10, inelastic_mode=2 input file

This is the structure of a mode-2 input file (arrays abridged) for hcp beryllium using the exact coherent one-phonon treatment (inelastic_mode=2). It follows the committed mode-2 cross-validation template, and like it sets nphon=1 with auto_order omitted (0): the table carries only the one-phonon term, for cross-code validation, not an evaluation. For an evaluation, use Card 6g 10000 1000 1 (auto-sized multiphonon order), as examples/tsl/graphite_mode2.input does. The template is followed with one addition: Card 4 sets iint=1, the lin-lin MF7/MT4 interpolation recommended for the sharp structure of a coherent one-phonon S(α,β) (see the iint discussion under the control cards above). For a production input file, build the grids with the iint=1 automatic grids, whose high-β step is capped for lin-lin. Substitute a real path for PHONOPY_YAML_PATH (the phonopy.yaml plus its force-constants file must sit together). The alpha/beta arrays are abridged with ….

leapr
20 /                                                              -- Card 1: output unit
'tsl Be metal - mode2 exact n=1 (mesh 40^3, ndir=10000)' /        -- Card 2: title
1 1 1 /                                                            -- Card 3: ntempr=1, iprint=1, nphon=1
26 4009 0 0 1.0e-75 1 /                                            -- Card 4: mat=26, za=4009 (Be-9 = 1000*4+9), isabt=0, ilog=0, smin, iint=1 (lin-lin)
8.93478 6.153875 1 10 0 0 /                                        -- Card 5: awr, spr, npr=1, iel=10, ncold=0, nsk=0
0 0 0 0 0 /                                                        -- Card 6: nss=0 (no secondary scatterer)
1 1 0 2 /                                                          -- Card 6b: SEF, nat=1, nspec=0, inelastic_mode=2
2.2856 2.2856 3.5842 90.0 90.0 120.0 /                            -- Card 6c: hcp lattice (a, a, c, 90, 90, 120)
4 9 8.93478 7.79 0.0018 2 /                                        -- Card 6d: Z=4 A=9, awr, b_coh=7.79 fm, sigma_inc, 2 positions
0.33333333 0.66666667 0.75  0.66666667 0.33333333 0.25 /          --          the 2 fractional positions
'PHONOPY_YAML_PATH' /                                             -- Card 6f-1: phonopy.yaml path
40 40 40 14 0 /                                                    -- Card 6f-2: mesh 40x40x40, ncpu=14, use_born=0
10000 1000 /                                                      -- Card 6g: ndir=10000, mpdir=1000 (auto_order omitted = 0: keep Card 3's exact n=1 order)
150 200 1 /                                                       -- Card 7: nalpha=150, nbeta=200, lat=1
3.052968E-03 3.270915E-03 ... 8.847604E+01 /                      -- Card 8: 150 alpha values
0.000000E+00 2.727760E-02 ... 1.976285E+02 /                      -- Card 9: 200 beta values
296.0 /                                                            -- Card 10: temperature (no detail block in mode 2)
' IRMA mode-2 exact one-phonon (nphon=1) cross-validation input. '/   -- comment -> MF1/MT451
' Coherent+incoherent n=1 S(a,b) for hcp beryllium.               '/
/                                                                 -- bare '/' ends comments
stop

Because inelastic_mode=2, the input file supplies only the temperature card (Card 10): no continuous-DOS, oscillator, or Sköld detail block, and nspec=0 on Card 6b. The inelastic S(α,β) and the directional Debye-Waller factors come from the phonopy calculation named on Card 6f. To add LO-TO splitting, set use_born=1 on Card 6f-2 and add a BORN path card.

The mode-2 exact coherent one-phonon S(α,β) is cross-validated against Euphonic; the validation pages give the results.

See also

  • Automatic grids for the grid generators and their defaults.
  • For tapes destined for NJOY processing (THERMR/ACER), see NJOY interoperability: coherent inelastic_mode=2 tapes can trigger a cliq defect in stock THERMR regardless of the grid spacing; a one-line patch fixes it. Mode-0/1 tapes and most materials are unaffected.