.. Copyright Celeritas contributors: see top-level COPYRIGHT file for details .. SPDX-License-Identifier: CC-BY-4.0 Series 0.5 ========== .. _release_v0.5.2: Version 0.5.2 ------------- *Released 2025/03/29* Version 0.5.2 is a minor update to Celeritas featuring improved diagnostic output, improved CMake integration for VecGeom+CUDA, and several bug fixes. New features ^^^^^^^^^^^^ * Improve diagnostic output when offloading *(@sethrj, #1589)* * Output diagnostic information about core sizes *(@sethrj, #1591)* * Simplify and add to system config diagnostics *(@sethrj, #1590)* * Add hit manager output diagnostic *(@sethrj, #1596)* * Write out optical size diagnostic *(@sethrj, #1597)* * Default downstream CUDA/HIP architectures *(@sethrj, #1669)* * By default load CudaRdcUtils and print config message *(@sethrj, #1676)* * Add Celeritas cmake command wrappers for downstream code *(@sethrj, #1678)* Bug fixes ^^^^^^^^^ * Set step length and other data in reconstructed tracks *(@sethrj, #1595)* * Fix CUDA+VecGeom linking with Ubuntu *(@pcanal, #1618)* * Fix link errors with CUDA RDC and ``--as-needed`` flag *(@pcanal, #1661)* * Fix ``getenv_flag`` *(@amandalund, #1647)* * Fix static builds and CI reporting *(@sethrj, #1680)* Documentation improvements ^^^^^^^^^^^^^^^^^^^^^^^^^^ * Add example offloading template *(@stognini, #1573)* * Update core advisors *(@sethrj, #1598)* * Add comment directing to CMake doc of feature being used *(@pcanal, #1619)* * Increase ccache size for asanlite job *(@sethrj, #1646)* * Hotfix: remove Ubuntu 20 from CI configuration *(@sethrj, #1651)* * Hotfix: prevent vecgeom 2.0 in regular builds *(@sethrj, #1655)* Minor internal changes ^^^^^^^^^^^^^^^^^^^^^^ * Use external G4VG *(@sethrj, #1605)* * Update perfetto to v49.0 *(@esseivaju, #1608)* * Flush perfetto TrackEvents *(@esseivaju, #1630)* * Add perfetto track counters to accel LocalTransporter *(@esseivaju, #1634)* * Rename ``EXTERNAL`` CMake variable *(@sethrj, #1621)* * Update externals and enforce G4VG version *(@sethrj, #1641)* * Update cmake-git-version *(@sethrj, #1643)* * Fix downstream RDC linking and add versioning *(@pcanal, #1665)* * Extend CudaRdc compatibility *(@pcanal, #1671)* * Update CudaRdcUtils to v3 *(@pcanal, #1679)* * Drastically speed up CudaRdcUtils *(@pcanal, #1683)* Reviewers ^^^^^^^^^ - Seth R. Johnson *(@sethrj)*: 12 - Philippe Canal *(@pcanal)*: 6 - Amanda Lund *(@amandalund)*: 5 - Julien Esseiva *(@esseivaju)*: 4 - Stefano Tognini *(@stognini)*: 1 - Paul Romano *(@paulromano)*: 1 - Ben Morgan *(@drbenmorgan)*: 1 **Full Changelog**: https://github.com/celeritas-project/celeritas/compare/v0.5.1...v0.5.2 .. _release_v0.5.1: Version 0.5.1 ------------- *Released 2025/01/22* Version 0.5.1 is a minor update to Celeritas featuring: - Utilities for debugging lost and stuck tracks - Improved integration support for VecGeom CUDA in frameworks A few minor features are noteworthy: - Improved accuracy (decreased verbosity) in navigation history reconstruction - Add a per-track "maximum steps" cutoff - Use consistent random number sequences based on non-consecutive Geant4 event ID Important changes: - Sensitive detector integration with Geant4 now defaults to "on". If your problem has no SDs you must must manually disable this feature. - Geant4 environment variables set at configure time will *override* the preset data sets in Geant4's cmake installation. These are used for tests only. Notable bug fixes include: - Linking Athena with VecGeom+CUDA - Test fixes for certain new versions of Clang - Support for Geant4 11.3 New features ^^^^^^^^^^^^ * Add optical "locate vacancies" and pre-step actions *(@amandalund, #1441)* * Extend debug utilities for stuck/errored tracks *(@sethrj, #1451)* * Add CELER_NONFATAL_FLUSH to cleanly kill stuck tracks *(@sethrj, #1455)* * Add optical absorption model with imported data *(@hhollenb, #1440)* * Add multilevel "volume instance" *(@sethrj, #1461)* * Reconstruct Geant4 navigation history from stack *(@sethrj, #1466)* * Add "cut" for individual track steps *(@sethrj, #1467)* * Improve error checking and diagnostic output for managing GPU *(@sethrj, #1464)* * Add distance-to-bbox function *(@elliottbiondo, #1446)* * Add multi-level state to detector step result *(@sethrj, #1471)* * Override and save Geant4 dataset variables at configure time *(@pcanal, #1475)* * Implement spline interpolation for cross-section calculation *(@lebuller, #1444)* * Reconstruct "touchable" using navigation hierarchy *(@sethrj, #1495)* * Default SD integration to "true" *(@sethrj, #1501)* * Add support for Geant4 navigator through offload interface *(@sethrj, #1558)* Reviewers: @amandalund *(6)*, @sethrj *(4)*, @pcanal *(4)*, @mrguilima *(2)*, @whokion *(1)*, @stognini *(1)* Bug fixes ^^^^^^^^^ * Define a "unique event ID" different from event counter *(@sethrj, #1447)* * Fix optical import when unused materials are defined *(@sethrj, #1449)* * Remove trackid counter from primary *(@sethrj, #1448)* * Improve single-event mode in ``accel`` *(@sethrj, #1452)* * Fix GDML export messages and geometry-only use case *(@sethrj, #1454)* * Fix tracking cut message *(@sethrj, #1458)* * Anchor vtables to fix broken dynamic cast in tests *(@sethrj, #1474)* * Check VecGeom BVH device pointers at setup and run time *(@sethrj, #1481)* * Fix unnecessary linking when using VecGeom+CUDA *(@pcanal, #1487)* * Use canonical loop form with OpenMP *(@amandalund, #1492)* * Fix linking Athena with VecGeom+CUDA *(@pcanal, #1489)* * Fix celer-sim MC truth ROOT output file generation during tests *(@stognini, #1515)* * Fix hepmc3/macro initialization in celer-g4 *(@sethrj, #1535)* Reviewers: @pcanal *(6)*, @sethrj *(4)*, @amandalund *(3)*, @esseivaju *(2)* Documentation improvements ^^^^^^^^^^^^^^^^^^^^^^^^^^ * Improve XSCalculator documentation and tests *(@sethrj, #1450)* * Fix/standardize multi-level.gdml file and improve debug logging *(@sethrj, #1493)* * Add debugging information for app tests *(@sethrj, #1504)* * Refactor muon bremsstrahlung angular distribution *(@amandalund, #1509)* * Add a CI job for c++20 *(@esseivaju, #1511)* * Hotfix: Disable ROCm due to now-unsupported CI OS image *(@sethrj, #1521)* * Update post-PR workflow to ``actions/download-artifact@v4`` *(@esseivaju, #1523)* * Trim export data for unit tests *(@sethrj, #1527)* * Add CITATION file with CHEP 2024 article *(@sethrj, #1529)* * Update Readme and Contributing doc *(@pcanal, #1532)* * Add missing shell setup in README *(@pcanal, #1545)* * Fix accel examples and related CI issues *(@sethrj, #1557)* * Prepare to update copyrights *(@sethrj, #1559)* * Update docker and Spack CI *(@sethrj, #1555)* * Update CMake policy *(@sethrj, #1563)* * Update expected safeties in Vecgeom tests and CMake version range *(@mrguilima, #1552)* * Hotfix: fetch tags manually to fix CI *(@sethrj, #1580)* * Update Perlmutter env *(@esseivaju, #1587)* * Add ARM runner to CI *(@sethrj, #1585)* * Propagate code citations into user manual *(@sethrj, #1575)* Reviewers: @amandalund *(6)*, @sethrj *(6)*, @pcanal *(5)*, @esseivaju *(3)*, @mrguilima *(1)* Minor internal changes ^^^^^^^^^^^^^^^^^^^^^^ * Give priority to existing environment variables for G4 data location *(@pcanal, #1457)* * Define ``id_cast`` helper function *(@sethrj, #1459)* * Simplify geometry "volume" interface *(@sethrj, #1460)* * Refactor step storage to use aux state *(@sethrj, #1465)* * Refactor pinned allocator to reduce need for templates *(@sethrj, #1468)* * Tweak Perfetto integration *(@sethrj, #1470)* * Escape semicolons in exported CMake variables *(@drbenmorgan, #1472)* * Require ``CELERITAS_DEBUG`` be on to enable ``CELERITAS_DEVICE_DEBUG`` *(@amandalund, #1476)* * Use kernel launchers instead of macros *(@sethrj, #1477)* * Fix missing brace and refactor #1475 *(@sethrj, #1480)* * Fix build with latest Geant4 develop *(@pcanal, #1484)* * Refactor "touchable updater" that uses a navigator *(@sethrj, #1483)* * Improve logger when using either CUDA or MPI *(@sethrj, #1482)* * Fix dBVH memcpy size *(@esseivaju, #1490)* * Work around RDC-related link errors when +cuda+vecgeom~shared *(@esseivaju, #1498)* * Move ``alongstep`` directory to top level *(@sethrj, #1499)* * Fix redundant move warning *(@esseivaju, #1500)* * Split CeleritasUtils cmake and use VecGeom RDC if available *(@sethrj, #1514)* * Stop CMake from cleaning root test data *(@hhollenb, #1516)* * Fix spurious vecgeom warning *(@sethrj, #1584)* Reviewers: @sethrj *(7)*, @amandalund *(6)*, @pcanal *(5)*, @esseivaju *(2)*, @drbenmorgan *(1)* Deprecation and removal ^^^^^^^^^^^^^^^^^^^^^^^ * Delete obsolete demonstration apps *(@sethrj, #1463)* * Remove curand performance test *(@sethrj, #1543)* * Require less ancient CUDA architecture and OpenMP implementation *(@sethrj, #1578)* Reviewers: @amandalund *(3)*, @pcanal *(1)* **Full Changelog**: https://github.com/celeritas-project/celeritas/compare/v0.5.0...v0.5.1 .. _release_v0.5.0: Version 0.5.0 ------------- *Released 2024/10/07* Version 0.5.0 is a major update to Celeritas featuring: - Numerous performance improvements - Automatic Geant4-to-ORANGE geometry translation - Single coulomb scattering process and improved MSC options - Rasterization using any navigation engine with ``celer-geo`` Several major new capabilities are at an experimental, proof-of-concept level of readiness and reach prototype stage during the v0.5 series: - Optical photon generation and physics - Muon physics - High-energy neutron physics A few minor features are noteworthy: - Improved error detection and output - New diagnostic output for slots and steps - Support for native CLHEP or SI unit systems - CPU profiling available through Perfetto - Support for saving and loading offloaded primaries via ROOT Major infrastructure changes include: - Nlohmann JSON is now required (downloaded automatically if unavailable) - SWIG wrappers have been removed - More granular CMake options are available for threading model and debugging The release includes the following changes, plus all features and bug fixes from v0.4.4. New features ^^^^^^^^^^^^ * Add Cerenkov distribution and generator *(@amandalund, #1080)* * Add specialized "permutation" transform *(@sethrj, #1077)* * Add CSG unit and unit builder *(@sethrj, #1079)* * Define unit traits and support arbitrary RZ field map units *(@sethrj, #1088)* * Add ScintillationGenerator and related data structures *(@whokion, #1086)* * Add bounding box utilities for output and upcoming ORANGE work *(@sethrj, #1092)* * Support native CLHEP unit system *(@sethrj, #1085)* * Add bounding zone *(@sethrj, #1093)* * Support importing optical properties from Geant4 *(@amandalund, #1103)* * Reduce number of Geant4 libraries linked in G4VG and elsewhere *(@sethrj, #1109)* * Add deduplicating transform inserter *(@sethrj, #1112)* * Add Wentzel OK&VI transport cross section calculator *(@amandalund, #1116)* * Add convex surface builder *(@sethrj, #1113)* * Add Cerenkov pre-generator *(@stognini, #1108)* * Add infix string builder *(@sethrj, #1121)* * Implement convex regions *(@sethrj, #1119)* * Implement second-order convex regions *(@sethrj, #1125)* * Add shape and volume builder *(@sethrj, #1126)* * Add ORANGE, geocel, and file layout documentation *(@sethrj, #1134)* * Add transformed object construction *(@sethrj, #1128)* * Add CSG operations on objects *(@sethrj, #1130)* * Add transform simplifier *(@sethrj, #1131)* * Add JSON output for CSG objects *(@sethrj, #1133)* * Add CSG wedge and helper functions *(@sethrj, #1142)* * Add neutron elastic scattering physics *(@whokion, #1120)* * Add CSG solids *(@sethrj, #1137)* * Add a common macroscopic cross section calculator *(@whokion, #1145)* * Add "minimal" and "safety plus" Urban MSC step limit algorithms *(@amandalund, #1146)* * Import scintillation particle data *(@stognini, #1151)* * Add proto-universe and CSG Unit construction *(@sethrj, #1148)* * Add utilities for building ``UnitInput`` from ``CsgTree`` *(@sethrj, #1155)* * Import WLS data for optical photons *(@stognini, #1165)* * Add Parallelepiped shape *(@mrguilima, #1161)* * Add particle scintillation data to ``ScintillationParams``; Add ``ScintillationPreGenerator`` *(@stognini, #1153)* * Complete ORANGE construction from CSG objects *(@sethrj, #1166)* * Add minimal version of GenTrap (Arb8) shape *(@mrguilima, #1171)* * Add sense evaluator for testing *(@sethrj, #1168)* * Add additional ObjectInterface and orangeinp helpers *(@sethrj, #1174)* * Add conversion of Geant4 transforms and basic solids to ORANGE *(@sethrj, #1169)* * Implement G4Sphere conversion *(@sethrj, #1177)* * Convert Geant4 logical and physical volumes *(@sethrj, #1170)* * Add optical generator data and update pre-generators *(@amandalund, #1182)* * Construct proto-universe hierarchy from converted volumes *(@sethrj, #1179)* * Add actions and executors for generating optical distribution data *(@amandalund, #1184)* * Complete GDML-to-ORANGE geometry converter *(@sethrj, #1180)* * Add optical collector for generating scintillation and Cerenkov distribution data *(@amandalund, #1173)* * Parse log levels from Geant4 scoped logger *(@sethrj, #1189)* * Add neutron inelastic process *(@whokion, #1187)* * Add basic raytrace components *(@sethrj, #1194)* * Add Windows/Linux no-dependency builds *(@sethrj, #1196)* * Add optical track data classes *(@sethrj, #1163)* * Add generic CPU/GPU raytracer for rasterizing *(@sethrj, #1191)* * Add ORANGE converters for G4Trap and G4GenericTrap *(@mrguilima, #1213)* * Add celer-geo app for visualizing geometry *(@sethrj, #1201)* * Add ORANGE converter for G4Trd *(@mrguilima, #1218)* * Add configure-time ``CELERITAS_OPENMP`` switch to change threading *(@sethrj, #1222)* * Make accel "auto flush" threshold configurable *(@amandalund, #1231)* * Support twisted sides for the gentrap shape *(@mrguilima, #1232)* * Improve transport of single track on CPU *(@esseivaju, #1235)* * Add option to specify maximum number of substeps in field propagator *(@amandalund, #1236)* * Add custom FTFP BERT physics list with Celeritas EM physics constructor *(@amandalund, #1242)* * Add external bounding box to generic trapezoid *(@sethrj, #1244)* * Add RootPrimaryGenerator sampler to celer-sim *(@stognini, #1228)* * Support combined single and multiple Coulomb scattering *(@amandalund, #1230)* * Add support for using the build directory as an installation *(@sethrj, #1249)* * Implement polycone *(@sethrj, #1247)* * Add polyprism (G4Polyhedra) *(@sethrj, #1251)* * Integrate Perfetto as backend for ScopedProfiling *(@esseivaju, #1238)* * Import and add nuclear binding energy to isotopes *(@whokion, #1258)* * Write converted object and CSG metadata for debugging *(@sethrj, #1259)* * Add nuclear zone data *(@whokion, #1269)* * Improve HGCal build performance by a factor of 10 using surface hashing *(@sethrj, #1183)* * Add auxiliary extensible params and state *(@sethrj, #1278)* * Check units in JSON input *(@sethrj, #1283)* * Add Wentzel macro xs calculator and fix ``a_sq_factor`` *(@amandalund, #1274)* * Implement infix evaluator *(@esseivaju, #1286)* * Differentiate "geometry" from "physics" materials in ImportData *(@sethrj, #1288)* * Add Bethe-Bloch muon ionization model *(@amandalund, #1291)* * Add new track status and support user "initialization" *(@sethrj, #1294)* * Add detailed error checking for action sequence behavior *(@sethrj, #1303)* * Add debug output for track states *(@sethrj, #1304)* * Add "tracking cut" to handle errors and kill tracks *(@sethrj, #1311)* * Add Bragg and ICRU73QO ionization models *(@amandalund, #1309)* * Detect and gracefully handle ORANGE geometry errors during tracking *(@sethrj, #1316)* * Add Regula Falsi root solver *(@VHLM2001, #1324)* * Add cascade collider *(@whokion, #1326)* * Support degenerate faces for "GenTrap" and rename to GenPrism *(@sethrj, #1271)* * Add more root finding algorithms *(@VHLM2001, #1333)* * Add color and PNG for future direct raytracing/rasterization *(@sethrj, #1336)* * Fix GenPrism surface shapes to match Geant4 *(@mrguilima, #1337)* * Add involute surface to support HFIR simulation *(@VHLM2001, #1295)* * Add optical collector to celer-sim *(@stognini, #1332)* * Add inverse helpers to generic calculator *(@sethrj, #1368)* * Improve sincospi availability and implementation *(@sethrj, #1364)* * Add oriented bounding zone class to be used for safety distance calculations *(@elliottbiondo, #1362)* * Add optical absorption and Rayleigh interactors *(@hhollenb, #1317)* * Replace SWIG with JSON (via ROOT export) for data exploration *(@sethrj, #1380)* * Optimize track vector data layout for particle types *(@amandalund, #1322)* * Add volume-to-material mapping and change import data *(@sethrj, #1378)* * Implement operation to simplify negated join on CsgTree *(@esseivaju, #1289)* * Add always-on celer-sim diagnostic to count total number of tracks *(@amandalund, #1383)* * Reduce default maximum substeps in field propagator *(@amandalund, #1384)* * Implement physics constructor for OpticalPhysics *(@drbenmorgan, #1348)* * Add skeleton optical core params and launch action *(@sethrj, #1386)* * Integrate involute surface into ORANGE construction *(@VHLM2001, #1342)* * Add separate configure option for on-device assertions *(@sethrj, #1394)* * Extend Mott coefficients to include positrons and higher Z elements *(@amandalund, #1395)* * Add action to generate optical primaries from Cerenkov distributions *(@amandalund, #1399)* * Store OBZ data during runtime *(@elliottbiondo, #1402)* * Add muon EM processes to Celeritas physics list and muon brems/ioni ``Process`` classes *(@amandalund, #1411)* * Add action for generating scintillation photons from distributions *(@amandalund, #1414)* * Add initial stepping loop to optical offload *(@sethrj, #1417)* * Import muon pair production sampling table from Geant4 *(@amandalund, #1419)* * Report and annotate test failures in CI *(@sethrj, #1421)* * Add optical core track view and launcher *(@sethrj, #1424)* * Add Bethe-Bloch model and refactor muon ionization *(@amandalund, #1425)* * Fix intermittent CI failures due to corrupt XML *(@sethrj, #1431)* * Add ``track_order`` option to celer-g4 and default to partitioning by charge on GPU *(@amandalund, #1433)* * Add slot particle diagnostic *(@sethrj, #1426)* * Separate ImportOpticalModels from ImportOpticalMaterials *(@hhollenb, #1439)* * Add optical track initialization action *(@amandalund, #1438)* Reviewers: @sethrj *(53)*, @elliottbiondo *(32)*, @amandalund *(25)*, @whokion *(12)*, @stognini *(8)*, @mrguilima *(7)*, @pcanal *(5)*, @esseivaju *(4)*, @drbenmorgan *(3)*, @hhollenb *(1)* Bug fixes ^^^^^^^^^ * Change propagation fatal error to be recoverable *(@sethrj, #1090)* * Fix position check after propagating *(@amandalund, #1094)* * Workaround missing G4persistency target bug in Geant4 11.2 *(@drbenmorgan, #1122)* * Fix single-precision soft equivalence for plane *(@sethrj, #1139)* * Fix prism orientation in Geant4 ORANGE solid converter *(@sethrj, #1193)* * Fix no-JSON and Windows builds *(@sethrj, #1200)* * Fix Wentzel OK&VI transport cross section *(@amandalund, #1202)* * Fix gentrap orientation *(@sethrj, #1206)* * Fix polar angle sampling and Mott factor in Wentzel distribution *(@amandalund, #1212)* * Fix minor dependency issues *(@sethrj, #1219)* * Fix trapezoid construction for negative phi and older Geant4 *(@sethrj, #1227)* * Propagate parent bounding boxes to ensure objects have finite extents *(@sethrj, #1225)* * Regularize quadric surfaces to deduplicate opposing surfaces *(@sethrj, #1237)* * Fix windows test builds *(@sethrj, #1255)* * Fix Geant4-to-ORANGE transformation conversion *(@sethrj, #1257)* * Fix CSG tree simplification needed by tilecal *(@sethrj, #1256)* * Fix trapezoid construction *(@sethrj, #1265)* * Work around union/polysolid boundaries and fix transformation of explicit daughters *(@sethrj, #1264)* * Use pre-step optical material ID in optical pre-generators *(@amandalund, #1297)* * Fix muon bremsstrahlung energy limits and sampling *(@amandalund, #1319)* * Fix downstream CMake when using CUDA and not included at top level *(@esseivaju, #1323)* * Properly clear state counters and data for reuse *(@amandalund, #1367)* * Fix initialization of geometry state when inserting multiple sets of primaries *(@amandalund, #1369)* * Clear along-step action when track is marked as errored *(@amandalund, #1377)* * Fix Geant4 setup when single Coulomb scattering is enabled *(@amandalund, #1392)* * Improve multithread GPU performance by removing subtle device sync *(@amandalund, #1405)* * Work around GCC 12.3 compiler bugs *(@whokion, #1407)* * Fix construction of single-volume Geant4 with ORANGE and activate examples *(@sethrj, #1409)* * Loosen numerically iffy test tolerance *(@esseivaju, #1435)* * Fix weak vtables causing dynamic_cast error in apple clang 16 *(@sethrj, #1436)* * Test and fix nuclear form factors *(@sethrj, #1398)* Reviewers: @sethrj *(14)*, @elliottbiondo *(8)*, @mrguilima *(5)*, @amandalund *(2)*, @pcanal *(2)*, @hhollenb *(1)*, @whokion *(1)*, @esseivaju *(1)* Documentation improvements ^^^^^^^^^^^^^^^^^^^^^^^^^^ * Expand position check test and fix for other unit systems *(@amandalund, #1097)* * Prevent a PR with failed actions from being merged *(@sethrj, #1096)* * Fix unit tests when using SI *(@sethrj, #1100)* * Fix CTest names *(@sethrj, #1105)* * Disable ROCm builds because of constant failures *(@sethrj, #1118)* * Update CI images and workflow actions *(@sethrj, #1136)* * Fix warning about missing low-energy cross sections *(@amandalund, #1176)* * Set global execution timeout for automated testing on Jenkins *(@dalg24, #1186)* * Pin sphinx version to fix documentation build *(@sethrj, #1188)* * Define geometry traits *(@sethrj, #1190)* * Switch ORANGE unit tests to use GDML files *(@sethrj, #1181)* * Add test for assertion messages *(@sethrj, #1198)* * Improve gentrap documentation and fix typos *(@mrguilima, #1205)* * Improve ccache use on github workflows *(@sethrj, #1243)* * Add automatic external fetching for JSON and Googletest *(@sethrj, #1253)* * Refactor CMake test name generation to be based on path *(@sethrj, #1261)* * Add initial set of clang-tidy checks *(@esseivaju, #1267)* * Fix tests for Geant4 11.2 *(@sethrj, #1276)* * Tweak documentation in CoreState *(@sethrj, #1279)* * Update perlmutter build *(@esseivaju, #1285)* * Fix ORANGE docs and ccache-clearing cron job *(@sethrj, #1284)* * Regenerate ROOT files during CI testing *(@sethrj, #1287)* * Improve documentation for physics, RNG, stepping loop *(@sethrj, #1298)* * Fix device test failures *(@amandalund, #1307)* * Refactor muon bremsstrahlung differential cross section calculation and add documentation *(@amandalund, #1320)* * Add git pre-commit hook *(@esseivaju, #1329)* * Add CUDA build instructions *(@esseivaju, #1335)* * Add unit test function wrapper for diagnosing solver convergence *(@sethrj, #1331)* * Fix HepMC3 tests to work with 3.3.0 *(@sethrj, #1340)* * Use spack-based workflow for address sanitizer *(@sethrj, #1341)* * Automatically build and deploy github documentation *(@sethrj, #1350)* * Add optical physics documentation *(@sethrj, #1358)* * Automatically add Zotero publications to project site *(@sethrj, #1359)* * Add Mermaid CSG tree output *(@sethrj, #1361)* * Add documentation for config options, improve unit docs, and use doxygen todos *(@sethrj, #1360)* * Refactor user manual *(@sethrj, #1363)* * Add separate developer doc section to user manual *(@sethrj, #1365)* * Address minor documentation, contract fixes in CelerOpticalPhysics *(@drbenmorgan, #1388)* * Add clang 18 and gcc 14 builds to CI *(@sethrj, #1389)* * Fix documentation deployment *(@sethrj, #1408)* * Hotfix: untested CUDA code in #1424 *(@sethrj, #1429)* Reviewers: @amandalund *(19)*, @sethrj *(10)*, @pcanal *(5)*, @esseivaju *(5)*, @stognini *(4)*, @elliottbiondo *(1)*, @drbenmorgan *(1)* Minor internal changes ^^^^^^^^^^^^^^^^^^^^^^ * Remove unused data from ImportElement/Material *(@sethrj, #1089)* * Refactor Geant4 utilities in preparation for g4vg *(@sethrj, #1095)* * Reorganize geometry wrappers into a new "geocel" directory *(@sethrj, #1099)* * Rename ORANGE construction files *(@sethrj, #1106)* * Split CMake RDC utilities from Celeritas macros *(@pcanal, #1104)* * Fix ORANGE namespaces *(@sethrj, #1117)* * Fix missing explicit instantiations in ORANGE CSB *(@sethrj, #1124)* * Add compile-time consistency check for Celeritas and Geant4 versions *(@sethrj, #1123)* * Transform refactoring *(@sethrj, #1127)* * Use correct form of enable_if for functions *(@sethrj, #1135)* * Refactor MSC params and add Wentzel VI params and data *(@amandalund, #1129)* * Rename ``Wentzel`` model to ``CoulombScattering`` and add em/params subdirectory *(@amandalund, #1154)* * Add generic grid builder and refactor builder code that uses generic grids *(@sethrj, #1157)* * Split ExplicitActionInterface to support optical data *(@pcanal, #1160)* * Fix SWIG build *(@sethrj, #1159)* * Rename scale methods in g4vg *(@sethrj, #1175)* * Tweak ORANGE construction *(@sethrj, #1178)* * Add small utilities for rasterization work *(@sethrj, #1185)* * Update CMake user preset *(@esseivaju, #1195)* * Move unit enumeration to corecel and improve assertion flexibility *(@sethrj, #1197)* * Make "output interface" streamable *(@sethrj, #1203)* * Refactor ``ActionSequence`` to be templated on Params *(@esseivaju, #1209)* * Use string view for interface labels and descriptions *(@sethrj, #1210)* * Fix library macro compatibility wrappers *(@sethrj, #1215)* * Split optical pre-generator action into separate Cerenkov and scintillation actions *(@amandalund, #1217)* * Write celer-sim results as 'null' when they're disabled *(@sethrj, #1223)* * Refactor trapezoid construction *(@sethrj, #1221)* * Add generic grid inserter to simplify construction *(@hhollenb, #1229)* * Split ORANGE test into subtests *(@sethrj, #1234)* * Update single and multiple Coulomb scattering configurations in ``GeantPhysicsList`` *(@amandalund, #1239)* * Rename ConvexRegion to IntersectRegion *(@sethrj, #1245)* * Minor refactoring/niceties for upcoming polycone work *(@sethrj, #1246)* * Add gdml-to-dot and improve celer-geo *(@sethrj, #1252)* * Set correct energy limits for Coulomb scattering *(@amandalund, #1266)* * Refactor nuclear zone builder to separate numerical integration *(@sethrj, #1275)* * Improve GenTrap regularization and construction *(@sethrj, #1262)* * Refactor optical data to use extensible params/states *(@sethrj, #1280)* * Require JSON *(@sethrj, #1254)* * Store model action IDs in model class instead of in data *(@amandalund, #1293)* * Add helper functions for sampling/calculating direction in interactors *(@amandalund, #1301)* * Add final state helper for ionization interactions *(@amandalund, #1306)* * Add a helper function to copy a "collection group" back to the host *(@sethrj, #1310)* * Skip indirection array for sorted track slots *(@sethrj, #1315)* * Remove celeritas include in corecel *(@esseivaju, #1328)* * Refactor types to reduce duplication and cyclic dependencies *(@sethrj, #1327)* * Update frontier toolchain and backward compatibility *(@sethrj, #1330)* * Consolidate header naming convention *(@esseivaju, #1325)* * Reduce string duplication from assertion messages *(@sethrj, #1338)* * Add optical sub-namespace *(@hhollenb, #1314)* * Fix minor compile error/warning with nvcc+clang *(@esseivaju, #1343)* * Fix clang-tidy checks, including some use-after-move *(@esseivaju, #1352)* * Refactor rejection sampling using a helper class *(@sethrj, #1354)* * Improve use of distributions and simplify interactions *(@sethrj, #1357)* * Accept single CsgTree from stdin *(@esseivaju, #1366)* * Clang format develop with clang 18 *(@sethrj, #1372)* * Allow normal distribution to preserve spare value *(@sethrj, #1371)* * Define optical MaterialView and rename MaterialParams *(@sethrj, #1370)* * Sample cerenkov photons one at a time using rejection *(@sethrj, #1373)* * Sample scintillation photons individually *(@sethrj, #1376)* * Count number of optical primaries to be generated from distributions *(@amandalund, #1379)* * Fix warnings on updated Cray/ROCm toolchain *(@sethrj, #1381)* * Allow sim params without looping *(@sethrj, #1382)* * Rename ExplicitAction to StepAction and add templating *(@sethrj, #1387)* * Refactor primaries as ``aux`` data *(@sethrj, #1393)* * Change LocalTransporter deallocation semantics *(@sethrj, #1403)* * Refactor action sequence into action group plus extras *(@sethrj, #1410)* * Define "static" concrete action for those with unique name/description *(@sethrj, #1416)* * Improve PRINT_EXPECTED formatting for long strings and vectors *(@sethrj, #1420)* * Support aliased nodes during CsgTree simplification *(@esseivaju, #1418)* * Refactor action launcher components into kernel launcher *(@sethrj, #1423)* * Add ``total_energy`` accessor to ``ParticleTrackView`` *(@amandalund, #1432)* * Clang format develop with clang 18 *(@sethrj, #1437)* * Rename track slot enumerations *(@sethrj, #1434)* * Add a hack to override ORANGE max intersections/faces *(@sethrj, #1430)* * Add global MPI communicator and refactor some internals *(@sethrj, #1428)* Reviewers: @amandalund *(30)*, @sethrj *(21)*, @elliottbiondo *(7)*, @stognini *(5)*, @esseivaju *(5)*, @whokion *(4)*, @mrguilima *(4)*, @drbenmorgan *(3)*, @pcanal *(2)*, @tmdelellis *(1)* **Full Changelog**: https://github.com/celeritas-project/celeritas/compare/v0.4.4...v0.5.0