Getting Started
This is the shortest path from a fresh checkout to a verified neomc build and a usable mental model for integrating it.
What You Build
The main deliverable is the library surface exposed from include/neomc/ and built by these targets:
neomc_core_runtimeneomc_dataneomc_geometryneomc_materialsneomc_physicsneomc_schedulerneomc_sourceneomc_tallyneomc_transportneomc_simulationneomc_applicationneomc_core
Benchmark executables exist to validate or demonstrate those libraries.
Minimal Library-Only Build
Build the core libraries without importer-backed benchmark dependencies:
cmake -S . -B build \
-DNEOMC_BUILD_IMPORTERS=OFF \
-DNEOMC_BUILD_BENCHMARKS=OFF \
-DNEOMC_ENABLE_BENCHMARK_CHECKS=OFF
cmake --build build --parallelThis path is useful when you want the reusable source, geometry, tally, transport, simulation, and application libraries without HDF5/Zlib benchmark setup.
Library Assembly Path
Most integrations follow this shape:
materials -> geometry -> tallies -> physics data -> model/session -> source -> runConcretely, the public headers provide these entry points:
- materials:
MaterialInputDefinition,material_definitions_from_inputs - geometry:
RectilinearGridInputDefinition,make_rectilinear_grid,GeometryHandle - tallies:
TallySetInputDefinition,make_tally_set_definition - imported physics data:
import_nndc_photon_runtime_table,import_endfb_eedl_electron_runtime_table,import_endfb_decay_runtime_table,import_endfb_neutron_mf3 - models:
CoupledEmModel,MixedTransportModel,SimulationTransportSession,SimulationModel,compile_simulation_model - sources:
IndependentSourceDefinition,GeneralSourceDefinition,StaticDecayInventorySource - application layer:
RunManager,PhysicsListBuilder,execute_application_macro
Package-level transport now includes coupled EM, proton, alpha, and experimental neutron paths. Check the reference pages before using a package as evidence for broader physics behavior.
Default Benchmark Build
The repository defaults are importer- and benchmark-enabled:
cmake -S . -B build
cmake --build build --parallel
ctest --test-dir build --output-on-failureThis path expects HDF5 and Zlib for importer-backed physics data.
With defaults enabled, CTest registers lightweight benchmark execution checks for targets such as:
neomc_decay_source_termneomc_decay_inventory_chainneomc_activation_inventoryneomc_radioisotope_gamma_shieldingneomc_positron_annihilationneomc_electron_range_doseneomc_proton_csda_rangeneomc_alpha_csda_rangeneomc_neutron_microscopic_xsneomc_mixed_decay_transport
Some benchmark directories also include helper scripts for parameter scans, such as Pb shielding thickness scans and beta source scans. Those scripts are benchmark workflows, not standalone product APIs.
Example Consumer Run
If you want to exercise one importer-backed benchmark consumer, the decay source-term benchmark is the smallest current example:
./build/neomc_decay_source_term referenceThat example prints Co-60 decay modes, emissions, source rates, and time-window decay counts, and it shows how real decay data flows into a transport-aware source summary.
What To Read Next
../tutorials/README.mdfor library-oriented assembly flows plus benchmark consumers.../concepts/README.mdfor source, package, and tally semantics.../reference/README.mdfor the public modules and topic-based reference pages.