Skip to content

Gitronics

Gitronics is a methodology and accompanying tool for maintaining and assembling MCNP neutronics models from modular, version-controlled components.

Instead of maintaining a single monolithic MCNP input file, Gitronics lets you manage a collection of independent files that can be assembled into a complete MCNP model by running the command gitronics build. Each file can represent a different aspect of the model, such as the geometry of a system, a set of materials, a source definition or a collection of tallies. The assembly process is controlled by a YAML configuration file, which specifies which components to include and how to combine them. The use of configuration files allows you to create multiple variants of a model without duplicating files, and to easily swap components in and out.

This workflow enables:

  • Version control — each component lives in its own file, making git diff meaningful.
  • Parametric variants — swap geometry fillers or data cards via configuration inheritance without duplicating files.
  • Parallelism — teams can develop different sub-models independently.
  • Reproducibility — each assembled model records the git commit hash and build timestamp in its metadata.

The Gitronics methodology is already used to maintain the most complex neutronics models of the ITER fusion reactor, and JT-60SA tokamak.


How it works

Gitronics build pipeline Gitronics build pipeline
Modular components and a YAML configuration are combined by gitronics build into a single assembled.mcnp plus an HTML report.
reference_model/
├── envelope_structure.mcnp   ← level-0 cells (the "shell" of the model)
├── filler_models/            ← per-universe MCNP snippets
│   ├── universe_101.mcnp
│   └── ...
└── data_cards/
    ├── materials/
    ├── sources/
    └── tallies/

configurations/
└── baseline.yaml             ← declares which fillers go where

output/
└── assembled.mcnp            ← produced by `gitronics build`

The build command reads a configuration file, loads all referenced components, inserts FILL cards into the envelope cells, and writes a single self-contained MCNP input file. It is highly recommended to use Git to track changes to your project files.

If you have never used Gitronics before, please take a few minutes to read the whole Getting Started guide to understand the methodology.


Publication

Gitronics is described in the following publication: