Transport And Models
This page summarizes the public transport and model assembly surface reflected by the current headers.
Package Registry
Transport-package ownership is explicit. The registry currently exposes:
| Package | Implemented | Status | Supported scope |
|---|---|---|---|
coupled_em | yes | approximate | photon_electron_positron_coupled_em_transport |
proton | yes | approximate | proton_csda_em_stopping_only |
alpha | yes | approximate | alpha_csda_electronic_stopping_only |
neutron | yes | experimental | neutron_data_driven_free_flight_total_elastic_capture |
Important helpers:
transport_package_registryfind_transport_package_descriptorimplemented_transport_packagesowning_transport_packagetransport_package_acceptsrequire_transport_package_particlepartition_source_sitespartition_secondary_bank_items
These helpers are used by mixed-package source batches, secondary-bank partitioning, and simulation sessions.
Coupled EM Transport
CoupledEmTransportDriver owns photon, electron, and positron transport. Its model layer is CoupledEmModel.
The main configuration surface is CoupledEmTransportConfig, which includes:
- runtime backend: currently
cpu_reference - run controls: seed, max steps, boundary push, collision-distance floor
- tracking-kill and active-transport floor energies
- production cuts for electrons, positrons, and photons
- secondary transport thresholds
- charged stepping controls, continuous loss, loss fluctuations, and MSC
- physics policies for ionization, bremsstrahlung, positron handling, and annihilation
- cut-energy policy
The result surface reports detailed counters for photon, electron, and positron collisions, charged continuous loss, MSC, production cuts, escape, kill, secondary production, relaxation, and energy accounting.
Proton Transport
ProtonTransportDriver implements a CSDA-style charged-particle path with explicit policy fields.
ProtonTransportConfig exposes:
master_seedmax_steps_per_historyboundary_pushmax_step_cmmax_energy_loss_fractionactive_transport_floor_energynuclear_reaction_policystopping_modelenergy_straggling_modelmultiple_scattering_model
Supported stopping-model choices include:
bethe_bloch_approximationnist_pstar_waternist_pstar_water_bethe_high_energy
The current supported interpretation is proton electronic stopping and range transport. Nuclear reactions are not implemented; they must fail closed or be explicitly ignored for CSDA-only runs.
Alpha Transport
AlphaTransportDriver implements the current alpha CSDA path.
AlphaTransportConfig exposes:
master_seedmax_steps_per_historyboundary_pushmax_step_cmmax_energy_loss_fractionactive_transport_floor_energynuclear_reaction_policystopping_model
The current stopping model is nist_astar_water. The package should be read as electronic-stopping / range transport in the current ASTAR-water scope. It does not validate straggling, multiple scattering, charge-state evolution, or alpha nuclear reactions.
Neutron Transport
NeutronTransportDriver implements an experimental data-driven neutron free-flight path.
The required physics data is:
NeutronTransportPhysicsData- one or more
NeutronMicroscopicCrossSectionTablerecords
NeutronTransportConfig exposes:
master_seedmax_steps_per_historyboundary_pushunsupported_reaction_tolerance_barnelastic_policyunsupported_reaction_policy
Current capabilities are deliberately narrow:
- MF3 total / elastic / capture microscopic XS interpolation
- macroscopic XS sampling for neutral free flight
- capture sink accounting
- approximate elastic final states using forward or isotropic no-energy-loss policies
Unsupported areas include isotope-level material treatment, inelastic reactions, fission, thermal scattering, temperature treatment, and capture-gamma final states.
Mixed Transport
MixedTransportDriver and MixedTransportModel route source batches across enabled transport packages and return one combined result.
The current model definition can hold:
- one geometry
- one material set
- one tally set
- coupled-EM physics data and transport configuration
- proton transport configuration
- alpha transport configuration
- neutron physics data and transport configuration
- an explicit enabled package list
MixedTransportResult reports:
- per-package summaries for coupled EM, proton, alpha, and neutron
- unified tally results
- unified source, deposited, escaped, and accounted energy
- unified energy-balance residual
Use mixed_transport_source_from_static_decay when a static decay source should carry source-rate metadata into mixed transport.
Simulation Transport Session
simulation/transport_session.hh adds the higher-level model / runtime-bundle surface:
SimulationModelSimulationPackageSetSimulationTransportSessionDefinitionSimulationRuntimeBundleSimulationTransportSessioncompile_simulation_modelrun_simulation_model
SimulationTransportMode can be:
coupled_emprotonalphaneutronmixed
This is the current path closest to the intended product model:
SimulationModel -> validate/compile -> SimulationRuntimeBundle -> resultApplication Layer
application/ provides reusable run assembly above simulation/.
The main public surfaces are:
RunManagerDetectorConstructionPhysicsListPhysicsListBuilderCoupledEmPhysicsPackageProtonPhysicsPackageAlphaPhysicsPackageNeutronPhysicsPackagePhysicsDataRegistryPrimaryGeneratorPrimaryBatchGeneratorScoringSetupActionInitializationexecute_application_macro
This layer is useful when a user wants package-based physics setup, source / scoring configuration, macro execution, and summary output without wiring every transport driver directly.