Concepts
NeoMC is a C++ Monte Carlo particle transport core library.
For a user, the important questions are direct: what particles are transported, what geometry and materials define the problem, what source is sampled, what physics data is used, what processes are active, and what result is scored.
Library Boundary
Benchmarks are example consumers and evidence producers. They are not the product API. Production integrations should use the public headers under include/neomc/:
core/: scalar types, IDs, random-number utilities, units, and vectorsgeometry/: geometry query contracts and concrete geometry backendsmaterials/: material definitions, densities, material IDs, and catalog datadata/: runtime physics tables, stopping power, range, and cross-section dataimporters/: conversion from upstream reference data into NeoMC runtime dataphysics/: process and material-process builderssource/: independent sources, general sources, decay sources, and inventory evolutiontransport/: package drivers and package routingtally/: edep, dose, hits, track-length, and filtered scoringsimulation/andapplication/: higher-level model and run assembly
Transport Packages
The current package registry exposes four implemented packages:
| Package | Status | Scope |
|---|---|---|
coupled_em | approximate | photon, electron, and positron coupled EM transport |
proton | approximate | proton CSDA electronic stopping |
alpha | approximate | alpha CSDA electronic stopping in water-table scope |
neutron | experimental | data-driven free flight with total / elastic / capture data |
TransportPackageId, transport_package_registry, and owning_transport_package make package ownership explicit. Mixed runs partition source particles by package before transport starts and combine tally and energy accounting afterwards.
Sources
Sources can be simple particle sources or decay-driven source batches.
The main source surfaces are:
IndependentSourceDefinitionGeneralSourceDefinitionStaticDecayInventorySourceDecayInventoryWindowSourceDefinition
Common controls include:
- spatial distribution: point, box, sphere, cylinder
- angular distribution: fixed direction or isotropic
- energy distribution: monoenergetic or discrete
- particle type and source weight
- decay inventory items with nuclide, activity or atoms, and optional region / material hints
Physics Data
Physics data is central to NeoMC. The user-facing contract is not just a list of processes; users must be able to see where tables came from, how they are imported, and which transport package consumes them.
Current data surfaces include:
- photon / electron runtime tables
- decay runtime data
- neutron microscopic cross sections
- NIST PSTAR / ASTAR stopping and range data
See Physics Data And Cross Sections.
Scoring And Accounting
The current tally surface covers:
- deposited energy
- dose
- hits
- track length
- energy-filtered and spatial-axis-filtered tallies
Transport results also report source, deposited, escaped, accounted energy, and energy-balance residuals. These accounting fields are part of the user-facing debugging surface.