Celeritas 0.5
Creators
- 1. ORNL
- 2. ANL
- 3. LBNL
- 4. FNAL
- 5. UVA
- 6. U Warwick
Contributors
Editors:
Project leaders:
Project manager:
- 1. ORNL
- 2. ANL
- 3. FNAL
- 4. LBNL
- 5. U Warwick
- 6. UVA
- 7. BNL
Description
Version 0.5 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
fromCsgTree
(@sethrj, #1155) - Import WLS data for optical photons (@stognini, #1165)
- Add Parallelepiped shape (@mrguilima, #1161)
- Add particle scintillation data to
ScintillationParams
; AddScintillationPreGenerator
(@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 toCoulombScattering
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 toParticleTrackView
(@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
Version 0.5.1
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 enableCELERITAS_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
Version 0.5.2
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)
- Release v0.5.2 (@sethrj, #1706)
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): 6
- 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
Version 0.5.3
Version 0.5.3 is a minor update to Celeritas featuring an important physics bugfix to Urban MSC and additional minor fixes targeting CUDA VecGeom compatibility.
Changes since v0.5.2 follow.
Bug fixes
- Fix OBZ bugs (@elliottbiondo, #1704)
- Fix sampling of angle in Urban MSC model (@amandalund, #1709)
Documentation improvements
- Release v0.5.2 (@sethrj, #1706)
- Add JLSE CMake preset and a few small fixes (@amandalund, #1611)
Minor internal changes
- CUDA RDC: Improve handling of object library and CUDA_RUNTIME_LIBRARY (@pcanal, #1696)
- CUDA RDC: fix static builds (@pcanal, #1699)
- Update to CudaRdcUtils v12 - (@pcanal, #1721)
Reviewers
- Seth R. Johnson (@sethrj): 6
- Amanda Lund (@amandalund): 1
- Soon Yung Jun (@whokion): 1
Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.5.2...v0.5.3
Files
Files
(2.1 MB)
Name | Size | Download all |
---|---|---|
md5:2cc98c83cc4207f5d3990330ba867851
|
2.1 MB | Download |
Additional details
Software
- Repository URL
- https://github.com/celeritas-project/celeritas
- Programming language
- C++, Cuda, Python