Introduction

What is FLUKA?

FLUKA is a general purpose tool for calculations of particle transport and interactions with matter, covering an extended range of applications spanning from proton and electron accelerator shielding​​ to target design​, calorimetry​, activation​, dosimetry​, detector design​, Accelerator Driven Systems​, cosmic rays​, neutrino physics​, radiotherapy​ etc.

The highest priority in the design and development of FLUKA has always been the implementation and improvement of sound and modern physical models​. Microscopic models ​ are adopted whenever possible, consistency​ among all the reaction steps and/or reaction types is ensured, conservation laws​ are enforced at each step, results are checked against experimental data at single interaction level​. As a result, final predictions are obtained with a minimal set of free parameters ​ fixed for all energy/target/projectile combinations. Therefore results in complex cases, as well as properties and scaling laws​, arise naturally from the underlying physical models, predictivity​ is provided where no experimental data are directly available, and correlations within interactions ​ and among shower components ​ are preserved.

FLUKA can simulate with high accuracy the interaction and propagation in matter of about 60 different particles, including photons and electrons from 100 eV–1 keV to thousands of TeV, neutrinos, muons of any energy, hadrons of energies up to 20 TeV (up to 10 PeV by linking FLUKA with the DPMJET code) and all the corresponding antiparticles, neutrons down to thermal energies and heavy ions. The program can also transport polarised photons​ (e.g. synchrotron radiation​) and optical photons​. Time evolution and tracking of emitted radiation from unstable residual nuclei ​ can be performed on line.

FLUKA can handle even very complex geometries, using an improved version of the well-known Combinatorial Geometry (CG)​ package. The FLUKA CG has been designed to track correctly also charged particles (even in the presence of magnetic​ or electric fields). Various visualisation​ and debugging tools​ are also available.

For most applications, no programming is required from the user. However, a number of user interface​ routines (in Fortran 77) are available for users with special requirements.

The FLUKA physical models​ are described in several journal and conference papers; on the technical side the stress has been put on four apparently conflicting requirements, namely efficiency​, accuracy​, consistency​ and flexibility​.

Efficiency​ has been achieved by having a frequent recourse to table look-up sampling and a systematic use of double precision​ has had a great impact on overall accuracy​: both qualities have benefited from a careful choice of the algorithms adopted. To attain a reasonable flexibility while minimising the need for user-written code, the program has been provided with a large number of options available to the user, and has been completely restructured introducing dynamical dimensioning​.

Another feature of FLUKA, probably not found in any other Monte Carlo program, is its double capability to be used in a biased ​ mode as well as a fully analogue mode. That means that while it can be used to predict fluctuations​, signal coincidences​ and other correlated events​, a wide choice of statistical techniques​ are also available to investigate punchthrough​ or other rare events in connection with attenuations​ by many orders of magnitude.

A quick look at FLUKA’s physics, structure and capabilities

Here we only give a very short summary list of the capabilities and limitations of FLUKA, since this is meant to be mainly a practical guide. More detailed descriptions of the physical models, algorithms and techniques will be found in cited references.

Physics

Hadron inelastic nuclear interactions

​ ​ The FLUKA hadron-nucleon​ interaction models are based on resonance production and decay below a few GeV, and on the Dual Parton model above. One model, PEANUT  is now used in hadron-nucleus​ interactions at all energies. At The PEANUT​ package includes a very detailed Generalised Intra-Nuclear Cascade (GINC)​ and a preequilibrium​ stage, while at high energies a sophsticated Gribov-Glauber​​ multiple collision mechanism is included before the GINC stage. The GINC stage is followed by equilibrium processes: evaporation​, fission​, Fermi break-up​, gamma deexcitation​. FLUKA can also simulate virtual and real photonuclear interactions​ (described by Vector Meson Dominance​, Delta Resonance​, Quasi-Deuteron​ and Giant Dipole Resonance​), electronuclear interactions​, photomuon production​ and electromagnetic dissociation​. A schematic outline is presented below:
  • Inelastic cross sections for hadron-hadron interactions are represented by parameterised fits​ based on available experimental data [PDG].

  • For hadron-nucleus interactions, a mixture of tabulated data and parameterised fits is used [Bar72, Moh83, She91, Pra98, Pra98a].

  • Elastic and charge exchange reactions are described by phase-shift analyses and eikonal approximation.

  • Inelastic hadron-hadron interactions​ are simulated by different event generators​, depending on energy:
    • Momentum \(< 20\) TeV/c and \(> 5\) GeV/c:
      Dual Parton Model​ (DPM)​ [Cap94]. The version used in FLUKA has been derived by A. Ferrari​ and P.R. Sala​ [Fer94, Fas95, Fer95, Fer96b] from the original version by J. Ranft​ and collaborators [Ran83, Ran83a]. A description of modifications and improvements can be found in [Fer96b, Col00]
    • Momentum from threshold to 5 GeV/c:
      Resonance​ production and decay model [Fer96b] (Improved version of Hänssgen​ et al. model [Han79, Han80, Han84, Han84a, Han84b, Han86, Han86a])
  • Inelastic hadron-nucleus interactions​ are simulated by different event generators​ depending on energy and projectile:

    • Momentum \(< 20\) TeV/c and \(> 5\) GeV/c:
      Glauber-Gribov multiple scattering followed by Generalised Intranuclear Cascade (GINC)
    • Below 5 GeV/c for nucleons, anti-nucleons and pions; below 1.5 GeV kinetic for kaons:
      Preequilibrium-cascade​ model PEANUT​ (Ferrari-Sala) [Fer94, Fas95]​​
    • In between PEANUT and DPM for kaons: K. Hänssgen et al. GINC modified to take into account correlations among cascade particles and more refined nuclear effects (Ferrari-Sala)​​

  • All three models include evaporation​ and gamma deexcitation​ of the residual nucleus [Fer96, Fer96a]. Light residual nuclei​ are not evaporated but fragmented​ into a maximum of 6 bodies, according to a Fermi break-up model.

  • Treatment of antiparticle capture​: the basic antinucleon-nucleon process is modeled through the production and decay of two or more intermediate states whose branchings are adjusted to reproduce experimental pion/kaon/resonances multiplicities. ​ In nuclei, all nuclear effects (density, Fermi motion, Pauli-blocking, reinteraction of secondaries…) are treated by the Peanut​ model as for all other hadronic interactions. Annihilations occur at shallow depths inside the nucleus. The depth is chosen as a function of the atomic number, the interaction being more and more peripheral as the nuclear mass increases. In case of compounds, the relative annihilation probabilities are calculated following [Pon73] for hydrogenated compounds, and [Dan75] for other compounds.

Elastic Scattering

​

  • Parameterised nucleon-nucleon cross sections.​

  • Tabulated nucleon-nucleus​ cross sections [Pra98, Pra98a].

  • Tabulated phase shift​ data for pion-proton​ and phase-shift analysis for kaon-proton scattering​.

  • Detailed kinematics of elastic scattering on hydrogen nuclei​ and transport of proton recoils​ (Ferrari-Sala)​​.

Nucleus-Nucleus interactions

​ ​ Nuclear interactions generated by ions are treated through interfaces to external event generators.

  • Above 10 GeV per nucleon: Dpmjet-III [Fed12, Roe01], ​ with special initialisation procedure.

  • Between 0.125 and 5 GeV per nucleon: modified Rqmd (Relativistic Quantum Molecular Dynamics) [Sor89, Sor89a, Sor95] ​

  • Below 0.125 GeV per nucleon: Bme (Boltzmann Master Equation) [Cav96, Cav01, Cer06] ​​

Transport of charged hadrons and muons

An original treatment of multiple Coulomb scattering ​ and of ionisation fluctuations ​ allows the code to handle accurately some challenging problems such as electron backscattering​ and energy deposition in thin layers​ even in the few keV energy range.

Energy loss​:
  • Bethe-Bloch​ theory [Bet30, Bet32, Bet34, Blo33, Blo33a]. Barkas Z\(^3\) effect [Bar56, Bar63] and Bloch Z\(^4\) effect [Blo33]. Mott correction to the Rutherford scattering cross section [Mot29, Ins09]. ​​​ Improved ionisation potential​, handling of porous substances​, ranging out particles below energy cutoff [Fas97]. ​

  • Optional delta-ray​ production and transport with account for spin effects​ and ionisation fluctuations.​ The present version includes a special treatment [Fas97a] which combines delta-ray production with properly restricted ionisation fluctuations​ and includes corrections for particle spin and electrons/positrons and “distant collision” ​ straggling corrections​ (similar to Blunck-Leisegang​ ones). Original approach making use of very general statistical properties of the problem. Within this framework “practical” solutions have been implemented into the code with very satisfactory results. This approach exploits the properties of the cumulants​ of distributions, and in particular of the cumulants of the distribution of Poisson​ distributed variables.

  • Shell​ and other low-energy corrections derived from Ziegler [Zie77]​.

  • Ionisation potentials and density effect​ parameters according to Sternheimer, Berger and Seltzer [Ste84]​.

  • Non-ionising energy losses (NIEL) [Sum95, Ins09] ​

  • Displacements Per Atom (DPAs) [Fas10]​

  • Special transport algorithm, based on Molière’s​ theory of multiple Coulomb scattering​ improved by Bethe [Mol48, Mol55, Bet53]​, with account of several correlations: ​

    • between lateral​ and longitudinal​ displacement and the deflection ​ angle

    • between projected angles​

    • between projected step length​ and total deflection

  • Accurate treatment of boundaries​ and curved trajectories​ in magnetic ​ and electric​ fields

  • Automatic control of the step​

  • Path length correction​

  • Spin-relativistic effects​ at the level of the second Born​ approximation [Fer91a].

  • Nuclear size effects​ (scattering suppression)​ on option (simple nuclear charge form factors​ are implemented, more sophisticated ones can be supplied by the user).

  • Fano correction​ for heavy charged particle multiple scattering​.

  • Single scattering​: algorithm based on the Rutherford​ formula with a screening factor​ in the form used by Molière​ (for consistency with the multiple scattering model used by FLUKA), integrated analytically without any approximation. Nuclear form factors​ and spin-relativistic corrections​ at the first or second Born approximation​ level accounted for by a rejection technique.

  • Correction for cross section variation ​ with energy over the step.

  • Bremsstrahlung​ and electron pair production​ at high energy by heavy charged particles, treated as a continuous energy loss and deposition or as discrete processes depending on user choice.

  • Muon photonuclear interactions​, ​ with or without transport of the produced secondaries.

Low-energy neutrons

​

For neutrons​ with energy lower than 20 MeV, FLUKA uses its own neutron cross section library ​. Two possibilities exist:

  1. A multi-group library (P5 Legendre angular expansion, 260 neutron energy groups) containing more than 300 different materials​, selected for their interest in physics, dosimetry and accelerator engineering and derived from the most recently evaluated data:
    • multigroup P5 cross sections with 260 groups [Cuc91].

      ​​

    • Gamma-ray generation​ and different temperatures​ available.

    • Doppler​ broadening for temperatures above 0 K.

    Transport:
    • Standard multigroup transport​ with photon and fission​ neutron​ generation.

    • Detailed kinematics of elastic scattering​ on hydrogen nuclei​

    • Transport of proton recoils​ and protons from N(n,p)​ reaction.

    • Capture photons​ generated according to the multigroup treatment, but transported with the more accurate Emf package which performs continuous transport in energy and allows for secondary electron generation.

  2. A poiwntwise, fully correlated neutron cross section library containing all stable isotopes plus afew other imprtant ones at different temperatures and derived from the most recently evaluated data:
    • Fully correlated, event-by-event neutron collisions possible;

    • Fully correlated explicit generation of charged particle products, including recoils;

    • Fully correlated capture gamma cascades;

    • Fully continuous treatment based on Thermal Scattering Laws for several isotopes available, supporting inelastic scattering (S(\(\alpha,\beta\)), incoherent elastic, and coherent elastic.

​ For nuclei other than hydrogen, kerma factors​ are used to calculate energy deposition​ (including from low-energy fission​). For details about the available materials, group structure etc., see Low-energy neutrons in FLUKA.

Electrons

  • FLUKA uses an original transport algorithm for charged particles [Fer91a], including a complete multiple Coulomb scattering​ treatment giving the correct lateral displacement even near a boundary​ (see hadron and muon transport above).

  • The variations with energy​ of the discrete event cross sections and of the continuous energy loss in each transport step are taken into account exactly.

  • Differences between positrons​ and electrons are taken into account concerning both stopping power​ and bremsstrahlung [Kim86].​

  • The bremsstrahlung​ differential cross sections of Seltzer and Berger [Sel85, Sel86]​​ have been extended to include the finite value at “tip” energy​, and the angular distribution​ of bremsstrahlung photons is sampled accurately.

  • The Landau-Pomeranchuk-Migdal​​ ​​ suppression effect [Lan53, Lan53a, Mig56, Mig57] and the Ter-Mikaelyan​ polarisation effect​ in the soft part of the bremsstrahlung spectrum [Ter54] are also implemented.

  • Electrohadron production (only above \(\rho\) mass energy 770 MeV) via virtual photon spectrum and Vector Meson Dominance Model [Moh89]. (The treatment of the latter effect has not been checked with the latest versions, however).

  • Positron annihilation​ in flight and at rest

  • Delta-ray​ production via Bhabha​ ​ and Møller​ scattering​

Note: the present lowest transport limit​ for electrons is 1 keV. Although in high-Z materials the Molière multiple scattering model becomes unreliable below 20-30 keV, a single-scattering​​ option is available which allows to obtain satisfactory results in any material also in this low energy range.

The minimum recommended energy for primary electrons is about 50 to 100 keV for low-Z materials and 100-200 keV for heavy materials, unless the single scattering algorithm is used. Single scattering transport allows to overcome most of the limitations at low energy for the heaviest materials at the price of some increase in CPU time.

Photons

  • Pair production​ with actual angular distribution​ of electrons and positrons.

  • Landau-Pomeranchuk-Migdal​​ ​​ pair production suppression effect [Lan53, Lan53a, Mig56, Mig57]

  • Compton​ effect with Doppler broadening​ using a fit of the Compton profiles [Rib75, Big75]​, and account for atomic bonds​ through use of inelastic Hartree-Fock​ form factors.​

  • Photoelectric​ effect with actual photoelectron angular distribution [Sau31]​, according to the fully relativistic theory of Sauter​. Interactions sampled separately for each component element and for each edge. The edge fine structure​ is taken into account. Parameterisations/tabulations for photoelectric cross sections ​ including all known edges up to Z = 100 and down to a few eV. Optional emission of fluorescence​ photons and approximate treatment of Auger​ electrons for all K and most L lines.

  • Rayleigh scattering​

  • Photon polarisation​ taken into account for Compton, Rayleigh and Photoelectric effects.

  • Photohadron​ production:

    • Vector Meson Dominance​ Model (Ranft [Ran87b])​, modified and improved (Ferrari-Sala)​​ using PEANUT​ below 770 MeV [Fas95].

    • Quasideuteron​ interactions

    • Giant Dipole Resonance​

Note: the present lowest transport limit​ for photons is 100 eV. However, fluorescence emission may be underestimated at energies lower than the K-edge in high-Z materials, because of lack of Coster-Kronig​ effect.
The minimum recommended energy for primary photons is about 1 keV.

Optical photons

  • Generation and transport (on user’s request) of Cherenkov​, Scintillation and Transition Radiation​.

  • Transport of light​ of given wavelength in materials with user-defined optical properties.

Neutrinos

  • Electron and muon (anti)neutrinos are produced and tracked on option, without interactions.​

  • Neutrino interactions however are implemented, but independently from tracking.​

Geometry

​ A part of the code where efficiency, accuracy, consistency and flexibility have combined giving very effective results is the FLUKA geometry. Derived from the Combinatorial Geometry​ package, it has been entirely rewritten. A completely new, fast tracking strategy has been developed, with special attention to charged particle transport, especially in magnetic fields​. New bodies​ have been introduced, resulting in increased rounding accuracy, speed and even easier input preparation.

  • Combinatorial Geometry​ (CG) from MORSE [Emm75]​, with additional bodies​ (infinite circular​ and elliptical​ cylinder parallel to X,Y,Z axis, generic plane​, planes perpendicular to the axes, generic quadrics​).

  • Possibility to use body and region names instead of numbers​​.

  • Possibility of using body combinations inside nested parentheses ​.

  • Geometry directives for body expansions and roto-translation transformations​

  • Distance to nearest boundary​ ​ taken into account for improved performance.

  • Accurate treatment of boundary crossing​ with multiple scattering and​ magnetic or electric fields.

  • The maximum number of regions​ (without recompiling the code) is 10000.

  • The tracking​ strategy has been substantially changed with respect to the original CG package. Speed has been improved and interplay with charged particle transport (multiple scattering, magnetic and electric field transport) has been properly set.

  • A limited repetition capability (lattice​ capability) is available. This allows to avoid describing repetitive structures in all details. Only one single module has to be described and then can be repeated as many times as needed. This repetition does not occur at input stage but is hard-wired into the geometry package, namely repeated regions are not set up in memory, but the given symmetry is exploited at tracking time using the minimum amount of bodies/regions required. This allows in principle to describe geometries with even tens of thousands regions (e.g. spaghetti​ calorimeters) with a reasonable number of region and body definitions.

  • Voxel geometry is available on option, completely integrated into CG.

Special options:

  • Geometry debugger.​

  • Plotting​ of selected sections of the geometry, based on the Ispra Plotgeom​ program.

  • Pseudo-particle​ RAY​ to scan the geometry in a given direction.

Transport

  • Condensed history​ tracking for charged particles, with single scattering option.​

  • Time cutoff.​

  • Legendre​ angular expansion for low-energy neutron scattering.​

  • Transport of charged particles in magnetic​ and electric fields.​

Transport limits:​

Secondary particles

Primary particles

charged hadrons

1 keV–20 TeV (\(^\ast\))

100 keV–20 TeV (\(^\ast\)) (\(^\dagger\))

neutrons

thermal–20 TeV(\(^\ast\))

thermal–20 TeV (\(^\ast\))

antineutrons

1 keV–20 TeV (\(^\ast\))

10 MeV–20 TeV (\(^\ast\))

muons

1 keV–1000 TeV

100 keV–1000 TeV (\(^\dagger\))

electrons

1 keV–1000 TeV

70 keV–1000 TeV (low-Z materials) (\(^\dagger\))

150 keV–1000 TeV (high-Z materials) (\(^\dagger\))

photons

100 eV–10000 TeV

1 keV–10000 TeV

heavy ions

\(<10000\) TeV/n

\(<10000\) TeV/n

(\(^\ast\)) upper limit 10 PeV with the DPMJET interface
(\(^\dagger\)) lower limit 10 keV in single scattering mode

Biasing

  • Leading particle biasing​ for electrons and photons: region dependent, below user-defined energy threshold and for selected physical effects.

  • Russian Roulette​ and splitting​ at boundary crossing based on region relative importance.​

  • Region-dependent multiplicity reduction​ in high energy nuclear interactions.

  • Region-dependent biased downscattering​ and non-analogue absorption​ of low-energy neutrons.

  • Biased decay length​ for increased daughter production.

  • Biased inelastic​ nuclear interaction length.

  • Biased interaction lengths for electron and photon electromagnetic interactions

  • Biased angular distribution​ of decay secondary particles.

  • Region-dependent weight window​ in three energy ranges (and energy group dependent for low-energy neutrons).

  • Bias setting according to a user-defined logics​

  • User-defined neutrino direction biasing​

  • User-defined step by step importance biasing​

Optimisation

  • Optimisation of the step length​, user-defined or automatic, by material and/or by region.

Scoring

  • Star density​ by producing particle and region.

  • Energy density​ by region, total or from electrons/photons only.

  • Star, energy and momentum transfer density and specific activity in a geometry-independent binning ​ structure (Cartesian or cylindrical), averaged over the run or event by event.

  • Energy deposition weighted by a quenching​ factor (Birks​ law).

  • Step size​ independent of bin size.

  • Time window.​

  • Coincidences​ and anti-coincidences.​

  • Fluence​ and current​ scoring as a function of energy and angle, via boundary crossing​, collision​ and track-length​ estimators coincident with regions or region boundaries.

  • Dose Equivalent via boundary-crossing, collision and track-length estimators coincident with regions or region boundaries, convoluted with conversion coefficients or obtained multiplying doses by a LET-dependent quality factor

  • Track-length fluence or Dose Equivalent in a binning​ structure (Cartesian or cylindrical) independent of geometry.

  • Particle yield​ from a target or differential​ cross section with respect to several different kinematic variables​.

  • Residual nuclei.​

  • Fission density.​

  • Momentum transfer density.​

  • Neutron balance.​

  • No limit to the number of detectors​ and binnings​ within the total memory available (but a maximum number must be fixed at compilation time).

  • Energy deposition​ can be scored on option disregarding the particle weights (useful for studying computer performance, etc.)

  • All quantities from radioactive decay​ of residual nuclei can be scored according to user-defined irradiation and cooling time profiles​ ​.

Code structure, technical aspects

  • The whole program, including the numerical constants, is coded in double precision​ (at least the versions for 32-bit word machines). The only exceptions are the low-energy neutron cross sections, which are stored in single precision to save space.

  • Consistent use of the latest recommended set of physical constant values [PDG].

  • Dynamical memory​ allocation is implemented as far as possible.

  • Extensive use of INCLUDE​ and of constant parameterisation​

  • 64-bit random number generator [Mar04]

Main differences between FLUKA and earlier codes with same name

​ The history of FLUKA, spanning more than 40 years, is narrated in detail in History of FLUKA. It is possible to distinguish three different generation of “FLUKA” codes along the years, which can be roughly identified as the FLUKA of the ’70s (main authors J. Ranft​ and J. Routti​), the FLUKA of the ’80s (P. Aarnio​, A. Fassò​, H.-J. Möhring​, J. Ranft, G.R. Stevenson​), and the FLUKA of today (A. Fassò, A. Ferrari​, J. Ranft and P.R. Sala​). These codes stem from the same root and of course every new “generation” originated from the previous one. However, each new “generation” represented not only an improvement of the existing program, but rather a quantum jump in the code physics, design and goals. The same name “FLUKA” has been preserved as a reminder of this historical development — mainly as a homage to J. Ranft who has been involved in it as an author and mentor from the beginning until the present days — but the present code is completely different from the versions which were released before 1990, and in particular from the last one of the second generation, Fluka87 [Aar86, Aar87].

Major changes and additions have affected the physical models used, the code structure​, the tracking strategy​ and scoring​. Important additions, such as a wider range of biasing​ possibilities and some specialised tools for calorimeter​ simulation, have extended the field of its possible applications.
An exhaustive description of all these changes and new features along the years is reported in History of FLUKA. However, the best gauge of the program evolution is probably the widening of the application fields, and the boost of its recognition and diffusion all over the world.

Applications

​ While Fluka86-87​ was essentially a specialised program to calculate shielding​ of high energy proton accelerators, the present version can be regarded as a general purpose tool for an extended range of applications. In addition to traditional target design​ and shielding, applications are now spanning from calorimetry​ to prediction of activation​, radiation damage​, isotope transmutation​, dosimetry​ and detector​ studies.

Prediction of radiation damage has always been a traditional field of application of FLUKA, restricted however in earlier versions to hadron damage to accelerator components. The new capability to deal with the low-energy neutron component of the cascade ​ has extended the field of interest to include electronics​ and other sensitive detector parts. In addition, radiation damage​ calculations and shielding design are not limited to proton accelerators​ any longer, but include electron accelerators​ of any energy, photon factories​, and any kind of radiation source, be it artificial or natural.

The present version of FLUKA has been used successfully in such diverse domains as background studies for underground detectors​, cosmic ray​ physics, shielding of synchrotron radiation​ hutches, calculation of dose received by aircraft crews​, evaluation of organ dose​ in a phantom​ due to external radiation, detector design for radiation protection​ as well as for high energy physics​, electron, proton and heavy ion radiotherapy​, nuclear transmutation​, neutrino physics​, shielding of free-electron lasers​, calculation of tritium production​ at electron accelerators, energy amplifiers​, maze design​ for medical accelerators​, etc.