Recent Releases of celeritas

celeritas - Version 0.6.0

Version 0.6.0 is a major update to Celeritas featuring:

  • High-level integration utilities for Geant4 applications
  • Optical physics implementation including volumetric physics
  • Advanced field mapping capabilities with 3D cylindrical and cartesian field maps and volume-specific uniform fields
  • Extended geometry conversion and optimization-oriented features for ORANGE
  • Support for VecGeom 2.0
  • Spline interpolation for cross-section calculations and energy loss

A few minor features are noteworthy:

  • Improved debugging utilities for diagnosing stuck/errored tracks
  • Support for sensitive detectors in replica/parameterized volumes
  • Better handling of tracks that fail or get stuck during simulation

Notable bug fixes include:

  • Fixed navigation and mapping of reflecting volumes for VecGeom
  • Resolved crashes related to process construction and memory access
  • Fixed issues with GDML file loading and SD hit scoring
  • Fixed Urban MSC scattering distribution (backported to v0.5.3)

Some interfaces have been removed:

  • Obsolete demonstration apps and celer-dump-data
  • Macro setup from celer-g4
  • The ability to run on the default stream

Known deficiencies:

  • Surface optical physics (reflection, refraction) is not yet implemented
  • ORANGE performance is significantly degraded compared to v0.5

Changes since v0.5.0, excluding those released in v0.5.3, follow.

New features

  • Add optical "locate vacancies" and pre-step actions (@amandalund, #1441)
  • Extend debug utilities for stuck/errored tracks (@sethrj, #1451)
  • Add CELERNONFATALFLUSH 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)
  • Implement optical Rayleigh model (@hhollenb, #1469)
  • Allow core and optical loops to have different numbers of track slots (@amandalund, #1491)
  • Add muon decay interactor (@stognini, #1456)
  • Add option to use spline-interpolated energy loss (@lebuller, #1496)
  • Add option to use spline-interpolated energy loss (@lebuller, #1496)
  • Add an Optical WLS (@whokion, #1507)
  • Add muon pair production (@amandalund, #1518)
  • Extend BIH capabilities for intersection operations (@elliottbiondo, #1479)
  • Add along-step and tracking cut optical executors (@sethrj, #1540)
  • Enable optical stepping loop (@sethrj, #1546)
  • Simplify UnitProto after building a CsgUnit (@esseivaju, #1415)
  • Implement device bitset (@esseivaju, #1547)
  • Reduce celer-sim memory usage and improve its CELER_LOG transport output (@stognini, #1550)
  • Support sense caching for future lazy evaluation (@esseivaju, #1539)
  • Support building infix logic representation (@esseivaju, #1530)
  • Import and use muon+hadron EM physics parameters (@amandalund, #1581)
  • Extend Coulomb scattering to support additional particle types (@amandalund, #1574)
  • Add optical model importer and refactor imported optical materials (@hhollenb, #1520)
  • Add global Celeritas input definition (@sethrj, #1562)
  • Always select at-rest process for stopped tracks (@amandalund, #1592)
  • Use BIH to accelerate background_intersect (@elliottbiondo, #1599)
  • Add ultra-simple tracking manager integration (@sethrj, #1609)
  • Implement cubic spline interpolation (@amandalund, #1607)
  • Add a calculator to integrate range from energy loss (@amandalund, #1544)
  • Add G4Ellipsoid without bottom/top cuts (@elliottbiondo, #1617)
  • Add safety visualization tool (@sethrj, #1614)
  • Remove pointers from Geant4 labels (@sethrj, #1620)
  • Add high-level user/fast sim integration helpers (@sethrj, #1615)
  • Support spline interpolation on a nonuniform grid (@amandalund, #1625)
  • Prune primaries that start outside the world volume (@sethrj, #1624)
  • Add support for Z cuts when converting G4Solids (@elliottbiondo, #1638)
  • Support sensitive detectors in replica/parameterized volumes (@sethrj, #1649)
  • Add an option to enable status checker through celer-sim (@sethrj, #1650)
  • Add support for elliptical cylinders and elliptical cones in orange and g4org (@elliottbiondo, #1642)
  • Support post-step touchable location and step status (@sethrj, #1653)
  • Support surface-based VecGeom 2.x navigator (@mrguilima, #1422)
  • Approximate G4Torus using inner/outer bounding cylinders (@elliottbiondo, #1654)
  • Support volume-specific uniform field (@amandalund, #1659)
  • Implement discrete optical physics (@hhollenb, #1604)
  • Add an example user action for gathering statistics on GPU (@sethrj, #1664)
  • Add quantity support to FindInterp and template Turn (@sethrj, #1675)
  • Support VecGeom 2.0 (@sethrj, #1674)
  • Add 3D Cylindrical field map (@esseivaju, #1662)
  • Make SB energy limit configurable and partially fix failures when using a single brems model (@amandalund, #1686)
  • Add timers to accel integration classes (@amandalund, #1693)
  • Use float for field interpolation (@esseivaju, #1684)
  • Allow some "required" SetupOptions to be set via Geant4 UI (@sethrj, #1697)
  • Support counter with NVTX (@esseivaju, #1702)
  • Use programmatic optical counters instead of absurdly verbose printout (@sethrj, #1707)
  • Allow G4 applications to query celeritas offload mode (@sethrj, #1711)
  • Reduce logging verbosity during Geant4 runs (@sethrj, #1705)
  • Improve messages when multiple tracks fail in flight (@sethrj, #1715)
  • Estimate scintillation wavelength distribution parameters from tabulated values when only the latter is provided (@amandalund, #1722)
  • Add utilities to stabilize downstream use of ORANGE (@sethrj, #1736)
  • Expand support for spline interpolation (@amandalund, #1633)
  • Add cartesian magnetic field using Covfie (@esseivaju, #1744)

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)
  • Fix documentation (@sethrj, #1502)
  • Fix clang-tidy weekly cron (@esseivaju, #1541)
  • Fix multiple release() calls to ensure nullptr is not used in process construction (@amandalund, #1612)
  • Support different grid spacings for cross section data (@amandalund, #1622)
  • Fix crash in multithreaded celer-g4 (@amandalund, #1627)
  • Fix loading of GDML files with reflection (@sethrj, #1626)
  • Fix navigation and mapping of reflecting volumes (@sethrj, #1629)
  • Fix reading and writing HepMC3 events (@amandalund, #1635)
  • Initialize MPI in high-level integration classes (@sethrj, #1672)
  • Fix bremsstrahlung process construction when using only a single model (@amandalund, #1677)
  • Lazily fetch volumes for UniformAlongStepFactory (@rahmans1, #1666)
  • Fix BoundingZone floating point issue (@elliottbiondo, #1681)
  • Fix out-of-bounds memory access in CylMapField (@amandalund, #1689)
  • Fix Geant4 SD hit scoring (@amandalund, #1708)
  • Fix field map usage from accel (@sethrj, #1724)
  • Fix failures when integral approach is disabled (@amandalund, #1727)

Documentation improvements

  • Improve XSCalculator documentation and tests (@sethrj, #1450)
  • Require clang-tidy in CI (@esseivaju, #1524)
  • Tidy headers (@esseivaju, #1534)
  • Run clang-tidy on modified files only (@esseivaju, #1531)
  • Build VecGeom in weekly clang-tidy cron (@esseivaju, #1551)
  • Document and slightly refactor Bethe-Heitler interactor (@sethrj, #1553)
  • Update copyrights (@sethrj, #1560)
  • Enable more dependencies in clang-tidy checks (@esseivaju, #1561)
  • Fix Doxygen member group formatting (@amandalund, #1567)
  • Improve and fix documentation (@sethrj, #1588)
  • Add generic geometry test interface to reduce duplication (@sethrj, #1623)
  • Improve testing and documentation for VecGeom (@sethrj, #1639)
  • Fix rendering of README (@dalg24, #1640)
  • Add ORCID to citation (@esseivaju, #1645)
  • Improve geometry testing (@sethrj, #1652)
  • Move offload template into a celeritas::example namespace (@sethrj, #1663)
  • Enable optical GPU tests (@amandalund, #1682)
  • Update ROOT data and tests with Geant4 version 11.3.0 (@amandalund, #1687)
  • Split EM physics and Geant4 interface into sub-files (@sethrj, #1698)
  • Improve doc generation and brems-related documentation (@sethrj, #1701)
  • Update Geant4 version to 11.3 in CI build (@amandalund, #1712)
  • Add histogram helper class to simplify distribution tests (@amandalund, #1717)
  • Add string simplifier helper class for testing (@sethrj, #1719)
  • Improve MSC test code coverage (@sethrj, #1723)
  • Add quick-start documentation for integrating (@sethrj, #1725)
  • Fix pedantic warning in tests (@elliottbiondo, #1730)
  • Add authorship guidelines (@sethrj, #1747)
  • Support testing nested container equivalence and tweak Histogram class (@amandalund, #1753)

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)
  • Store edge bounding boxes on BIH and refactor for upcoming intersection capabilities (@elliottbiondo, #1478)
  • Add FourVector helper functions (@sethrj, #1510)
  • Define hypotenuse function using fma (@sethrj, #1513)
  • Add a helper class for inverse transform sampling (@amandalund, #1525)
  • Rename Cerenkov to Cherenkov (@amandalund, #1533)
  • Clean up optical mock test data (@hhollenb, #1519)
  • Store a single process-integrated energy loss and range table per particle (@amandalund, #1536)
  • Add piecewise integrator and CDF utilities (@sethrj, #1537)
  • Define precision-agnostic Constant class (@sethrj, #1549)
  • Adapt bitset word size (@esseivaju, #1554)
  • Add 'LogicalTrue' functor (@sethrj, #1564)
  • Fix unnecessary use of inline constexpr (@sethrj, #1568)
  • Replace "volid" with "vol_id" throughout ORANGE (@elliottbiondo, #1486)
  • Compose caching functionality of LazySenseCalculator (@esseivaju, #1569)
  • Use lazy sense calculator (@esseivaju, #1576)
  • Change PrimaryGeneratorAction to be a wrapper (@sethrj, #1593)
  • Refactor primary generator using new inp (@sethrj, #1583)
  • Add postfix to infix conversion utility (@esseivaju, #1582)
  • Move physics lists out of details and rename tracking offload (@sethrj, #1603)
  • Add TrackingManagerConstructor and SharedParams::GetMode (@sethrj, #1606)
  • Move PolyEvaluator to corecel/math (@amandalund, #1610)
  • Rename fast simulation offload (@sethrj, #1613)
  • Rename Generic grid to Nonuniform (@amandalund, #1616)
  • Require VecGeom 1.2.10 for CUDA RDC support (@pcanal, #1628)
  • Construct CoreParams from new problem input in celer-sim (@sethrj, #1601)
  • Move Geant4 SD integration into celeritas/ext (@sethrj, #1631)
  • Refactor log handlers for better reuse (@sethrj, #1636)
  • Rename CoreTrackView methods (@amandalund, #1658)
  • Refactor geometry tests into common file (@sethrj, #1656)
  • Use extern static data for versions, configuration (@sethrj, #1657)
  • Use CLI11 for front end command line parsing (@sethrj, #1660)
  • Hide Thrust from .cc code (@sethrj, #1670)
  • Remove G4EmExtraPhysics from FtfpBertPhysicsList (@whokion, #1644)
  • Define dependency helper targets and reorganize CMakeLists (@sethrj, #1673)
  • Change default field substeps in accel (@esseivaju, #1690)
  • Update and fix G4VG external integration (@sethrj, #1700)
  • Use inp to build accel core params (@sethrj, #1632)
  • Move random to corecel (@sethrj, #1716)
  • Remove dependency of orange test on celeritas (@sethrj, #1718)
  • Simplify Geant4 user application interface (@sethrj, #1729)
  • Replace ImportPhysicsVector with inp::Grid (@amandalund, #1735)
  • Add ExtThrust for more explicit dependencies (@sethrj, #1694)
  • Rename field integration interfaces: Stepper→Integrators, Driver→Substepper (@sethrj, #1737)
  • Add uniform grid input and continue to simplify grid construction (@amandalund, #1739)
  • Rename material ID types (@sethrj, #1742)
  • Simplify grid construction in a few more places (@amandalund, #1743)
  • Fix ROCTX find: hip not cuda (@sethrj, #1755)
  • Move types around to fix ROOT error (@sethrj, #1757)
  • Simplify MSC angular sampling (@sethrj, #1714)

Deprecation and removal

  • Delete obsolete demonstration apps (@sethrj, #1463)
  • Remove 'default_stream' option (@sethrj, #1667)
  • Remove deprecations for v0.6 (@sethrj, #1691)
  • Remove macro setup from celer-g4 (@sethrj, #1710)
  • Remove per-process switch for integral cross section method (@amandalund, #1734)
  • Remove celer-dump-data app (@amandalund, #1740)

Reviewers

  • Seth R. Johnson (@sethrj): 89
  • Amanda Lund (@amandalund): 68
  • Philippe Canal (@pcanal): 22
  • Stefano Tognini (@stognini): 10
  • Guilherme Lima (@mrguilima): 9
  • Julien Esseiva (@esseivaju): 7
  • Elliott Biondo (@elliottbiondo): 5
  • Soon Yung Jun (@whokion): 3

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.5.0...v0.6.0

- C++
Published by sethrj about 1 year ago

celeritas - 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 CUDARUNTIMELIBRARY (@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

- C++
Published by sethrj about 1 year ago

celeritas - 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

- C++
Published by sethrj about 1 year ago

celeritas - v0.6.0-rc.1

This pre-release will be used for running the Geant4 GPU benchmark problems.

What's Changed

  • Store edge bounding boxes on BIH and refactor for upcoming intersection capabilities by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1478
  • Improve logger when using either CUDA or MPI by @sethrj in https://github.com/celeritas-project/celeritas/pull/1482
  • Check VecGeom BVH device pointers at setup and run time by @sethrj in https://github.com/celeritas-project/celeritas/pull/1481
  • Implement optical Rayleigh model by @hhollenb in https://github.com/celeritas-project/celeritas/pull/1469
  • Fix unnecessary linking when using VecGeom+CUDA by @pcanal in https://github.com/celeritas-project/celeritas/pull/1487
  • Fix dBVH memcpy size by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1490
  • Fix/standardize multi-level.gdml file and improve debug logging by @sethrj in https://github.com/celeritas-project/celeritas/pull/1493
  • Use canonical loop form with OpenMP by @amandalund in https://github.com/celeritas-project/celeritas/pull/1492
  • Allow core and optical loops to have different numbers of track slots by @amandalund in https://github.com/celeritas-project/celeritas/pull/1491
  • Add muon decay interactor by @stognini in https://github.com/celeritas-project/celeritas/pull/1456
  • Fix linking Athena with VecGeom+CUDA by @pcanal in https://github.com/celeritas-project/celeritas/pull/1489
  • Reconstruct "touchable" using navigation hierarchy by @sethrj in https://github.com/celeritas-project/celeritas/pull/1495
  • Work around RDC-related link errors when +cuda+vecgeom~shared by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1498
  • Move alongstep directory to top level by @sethrj in https://github.com/celeritas-project/celeritas/pull/1499
  • Fix redundant move warning by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1500
  • Fix documentation by @sethrj in https://github.com/celeritas-project/celeritas/pull/1502
  • Default SD integration to "true" by @sethrj in https://github.com/celeritas-project/celeritas/pull/1501
  • Add debugging information for app tests by @sethrj in https://github.com/celeritas-project/celeritas/pull/1504
  • Refactor muon bremsstrahlung angular distribution by @amandalund in https://github.com/celeritas-project/celeritas/pull/1509
  • Add FourVector helper functions by @sethrj in https://github.com/celeritas-project/celeritas/pull/1510
  • Define hypotenuse function using fma by @sethrj in https://github.com/celeritas-project/celeritas/pull/1513
  • Add a CI job for c++20 by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1511
  • Fix celer-sim MC truth ROOT output file generation during tests by @stognini in https://github.com/celeritas-project/celeritas/pull/1515
  • Split CeleritasUtils cmake and use VecGeom RDC if available by @sethrj in https://github.com/celeritas-project/celeritas/pull/1514
  • Hotfix: Disable ROCm due to now-unsupported CI OS image by @sethrj in https://github.com/celeritas-project/celeritas/pull/1521
  • Update post-PR workflow to actions/download-artifact@v4 by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1523
  • Add a helper class for inverse transform sampling by @amandalund in https://github.com/celeritas-project/celeritas/pull/1525
  • Require clang-tidy in CI by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1524
  • Stop CMake from cleaning root test data by @hhollenb in https://github.com/celeritas-project/celeritas/pull/1516
  • Trim export data for unit tests by @sethrj in https://github.com/celeritas-project/celeritas/pull/1527
  • Add CITATION file with CHEP 2024 article by @sethrj in https://github.com/celeritas-project/celeritas/pull/1529
  • Add option to use spline-interpolated energy loss by @lebuller in https://github.com/celeritas-project/celeritas/pull/1496
  • Add an Optical WLS by @whokion in https://github.com/celeritas-project/celeritas/pull/1507
  • Rename Cerenkov to Cherenkov by @amandalund in https://github.com/celeritas-project/celeritas/pull/1533
  • Add muon pair production by @amandalund in https://github.com/celeritas-project/celeritas/pull/1518
  • Update Readme and Contributing doc by @pcanal in https://github.com/celeritas-project/celeritas/pull/1532
  • Tidy headers by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1534
  • Fix hepmc3/macro initialization in celer-g4 by @sethrj in https://github.com/celeritas-project/celeritas/pull/1535
  • Clean up optical mock test data by @hhollenb in https://github.com/celeritas-project/celeritas/pull/1519
  • Run clang-tidy on modified files only by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1531
  • Store a single process-integrated energy loss and range table per particle by @amandalund in https://github.com/celeritas-project/celeritas/pull/1536
  • Add piecewise integrator and CDF utilities by @sethrj in https://github.com/celeritas-project/celeritas/pull/1537
  • Fix clang-tidy weekly cron by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1541
  • Extend BIH capabilities for intersection operations by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1479
  • Remove curand performance test by @sethrj in https://github.com/celeritas-project/celeritas/pull/1543
  • Add along-step and tracking cut optical executors by @sethrj in https://github.com/celeritas-project/celeritas/pull/1540
  • Add missing shell setup in README by @pcanal in https://github.com/celeritas-project/celeritas/pull/1545
  • Enable optical stepping loop by @sethrj in https://github.com/celeritas-project/celeritas/pull/1546
  • Simplify UnitProto after building a CsgUnit by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1415
  • Implement device bitset by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1547
  • Build VecGeom in weekly clang-tidy cron by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1551
  • Document and slightly refactor Bethe-Heitler interactor by @sethrj in https://github.com/celeritas-project/celeritas/pull/1553
  • Define precision-agnostic Constant class by @sethrj in https://github.com/celeritas-project/celeritas/pull/1549
  • Adapt bitset word size by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1554
  • Fix accel examples and related CI issues by @sethrj in https://github.com/celeritas-project/celeritas/pull/1557
  • Update copyrights by @sethrj in https://github.com/celeritas-project/celeritas/pull/1560
  • Prepare to update copyrights by @sethrj in https://github.com/celeritas-project/celeritas/pull/1559
  • Update docker and Spack CI by @sethrj in https://github.com/celeritas-project/celeritas/pull/1555
  • Enable more dependencies in clang-tidy checks by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1561
  • Reduce celer-sim memory usage and improve its CELER_LOG transport output by @stognini in https://github.com/celeritas-project/celeritas/pull/1550
  • Support sense caching for future lazy evaluation by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1539
  • Support building infix logic representation by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1530
  • Update CMake policy by @sethrj in https://github.com/celeritas-project/celeritas/pull/1563
  • Add 'LogicalTrue' functor by @sethrj in https://github.com/celeritas-project/celeritas/pull/1564
  • Fix Doxygen member group formatting by @amandalund in https://github.com/celeritas-project/celeritas/pull/1567
  • Fix unnecessary use of inline constexpr by @sethrj in https://github.com/celeritas-project/celeritas/pull/1568
  • Replace "volid" with "vol_id" throughout ORANGE by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1486
  • Compose caching functionality of LazySenseCalculator by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1569
  • Update expected safeties in Vecgeom tests and CMake version range by @mrguilima in https://github.com/celeritas-project/celeritas/pull/1552
  • Add support for Geant4 navigator through offload interface by @sethrj in https://github.com/celeritas-project/celeritas/pull/1558
  • Hotfix: fetch tags manually to fix CI by @sethrj in https://github.com/celeritas-project/celeritas/pull/1580
  • Fix spurious vecgeom warning by @sethrj in https://github.com/celeritas-project/celeritas/pull/1584
  • Import and use muon+hadron EM physics parameters by @amandalund in https://github.com/celeritas-project/celeritas/pull/1581
  • Update Perlmutter env by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1587
  • Add ARM runner to CI by @sethrj in https://github.com/celeritas-project/celeritas/pull/1585
  • Require less ancient CUDA architecture and OpenMP implementation by @sethrj in https://github.com/celeritas-project/celeritas/pull/1578
  • Fix weird edge cases when trying to find_package(Celeritas) by @sethrj in https://github.com/celeritas-project/celeritas/pull/1586
  • Propagate code citations into user manual by @sethrj in https://github.com/celeritas-project/celeritas/pull/1575
  • Extend Coulomb scattering to support additional particle types by @amandalund in https://github.com/celeritas-project/celeritas/pull/1574
  • Use lazy sense calculator by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1576
  • Release v0.5.1 by @sethrj in https://github.com/celeritas-project/celeritas/pull/1577
  • Improve and fix documentation by @sethrj in https://github.com/celeritas-project/celeritas/pull/1588
  • Improve diagnostic output when offloading by @sethrj in https://github.com/celeritas-project/celeritas/pull/1589
  • Add optical model importer and refactor imported optical materials by @hhollenb in https://github.com/celeritas-project/celeritas/pull/1520
  • Add example offloading template by @stognini in https://github.com/celeritas-project/celeritas/pull/1573
  • Output diagnostic information about core sizes by @sethrj in https://github.com/celeritas-project/celeritas/pull/1591
  • Change PrimaryGeneratorAction to be a wrapper by @sethrj in https://github.com/celeritas-project/celeritas/pull/1593
  • Simplify and add to system config diagnostics by @sethrj in https://github.com/celeritas-project/celeritas/pull/1590
  • Add global Celeritas input definition by @sethrj in https://github.com/celeritas-project/celeritas/pull/1562
  • Set step length and other data in reconstructed tracks by @sethrj in https://github.com/celeritas-project/celeritas/pull/1595
  • Refactor primary generator using new inp by @sethrj in https://github.com/celeritas-project/celeritas/pull/1583
  • Add hit manager output diagnostic by @sethrj in https://github.com/celeritas-project/celeritas/pull/1596
  • Update core advisors by @sethrj in https://github.com/celeritas-project/celeritas/pull/1598
  • Always select at-rest process for stopped tracks by @amandalund in https://github.com/celeritas-project/celeritas/pull/1592
  • Add postfix to infix conversion utility by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1582
  • Write out optical size diagnostic by @sethrj in https://github.com/celeritas-project/celeritas/pull/1597
  • Move physics lists out of details and rename tracking offload by @sethrj in https://github.com/celeritas-project/celeritas/pull/1603
  • Use BIH to accelerate background_intersect by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1599
  • Update perfetto to v49.0 by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1608
  • Use external G4VG by @sethrj in https://github.com/celeritas-project/celeritas/pull/1605
  • Add TrackingManagerConstructor and SharedParams::GetMode by @sethrj in https://github.com/celeritas-project/celeritas/pull/1606
  • Move PolyEvaluator to corecel/math by @amandalund in https://github.com/celeritas-project/celeritas/pull/1610
  • Add JLSE CMake preset and a few small fixes by @amandalund in https://github.com/celeritas-project/celeritas/pull/1611
  • Add ultra-simple tracking manager integration by @sethrj in https://github.com/celeritas-project/celeritas/pull/1609
  • Fix multiple release() calls to ensure nullptr is not used in process construction by @amandalund in https://github.com/celeritas-project/celeritas/pull/1612
  • Rename fast simulation offload by @sethrj in https://github.com/celeritas-project/celeritas/pull/1613
  • Implement cubic spline interpolation by @amandalund in https://github.com/celeritas-project/celeritas/pull/1607
  • Rename Generic grid to Nonuniform by @amandalund in https://github.com/celeritas-project/celeritas/pull/1616
  • Add a calculator to integrate range from energy loss by @amandalund in https://github.com/celeritas-project/celeritas/pull/1544
  • Add G4Ellipsoid without bottom/top cuts by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1617
  • Fix CUDA+VecGeom linking with Ubuntu by @pcanal in https://github.com/celeritas-project/celeritas/pull/1618
  • Add comment directing to CMake doc of feature being used by @pcanal in https://github.com/celeritas-project/celeritas/pull/1619
  • Rename EXTERNAL CMake variable by @sethrj in https://github.com/celeritas-project/celeritas/pull/1621
  • Add safety visualization tool by @sethrj in https://github.com/celeritas-project/celeritas/pull/1614
  • Remove pointers from Geant4 labels by @sethrj in https://github.com/celeritas-project/celeritas/pull/1620
  • Support different grid spacings for cross section data by @amandalund in https://github.com/celeritas-project/celeritas/pull/1622
  • Add high-level user/fast sim integration helpers by @sethrj in https://github.com/celeritas-project/celeritas/pull/1615
  • Support spline interpolation on a nonuniform grid by @amandalund in https://github.com/celeritas-project/celeritas/pull/1625
  • Fix crash in multithreaded celer-g4 by @amandalund in https://github.com/celeritas-project/celeritas/pull/1627
  • Prune primaries that start outside the world volume by @sethrj in https://github.com/celeritas-project/celeritas/pull/1624
  • Fix loading of GDML files with reflection by @sethrj in https://github.com/celeritas-project/celeritas/pull/1626
  • Add generic geometry test interface to reduce duplication by @sethrj in https://github.com/celeritas-project/celeritas/pull/1623
  • Bump VecGeom minimum version to 1.2.10 by @pcanal in https://github.com/celeritas-project/celeritas/pull/1628
  • Fix navigation and mapping of reflecting volumes by @sethrj in https://github.com/celeritas-project/celeritas/pull/1629
  • Construct CoreParams from new problem input in celer-sim by @sethrj in https://github.com/celeritas-project/celeritas/pull/1601
  • Flush perfetto TrackEvents by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1630
  • Move Geant4 SD integration into celeritas/ext by @sethrj in https://github.com/celeritas-project/celeritas/pull/1631
  • Add perfetto track counters to accel LocalTransporter by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1634
  • Fix reading and writing HepMC3 events by @amandalund in https://github.com/celeritas-project/celeritas/pull/1635
  • Improve testing and documentation for VecGeom by @sethrj in https://github.com/celeritas-project/celeritas/pull/1639
  • Fix rendering of README by @dalg24 in https://github.com/celeritas-project/celeritas/pull/1640
  • Add support for Z cuts when converting G4Solids by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1638
  • Update externals and enforce G4VG version by @sethrj in https://github.com/celeritas-project/celeritas/pull/1641
  • Add ORCID to citation by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1645
  • Increase ccache size for asanlite job by @sethrj in https://github.com/celeritas-project/celeritas/pull/1646
  • Update cmake-git-version by @sethrj in https://github.com/celeritas-project/celeritas/pull/1643
  • Fix getenv_flag by @amandalund in https://github.com/celeritas-project/celeritas/pull/1647
  • Refactor log handlers for better reuse by @sethrj in https://github.com/celeritas-project/celeritas/pull/1636
  • Support sensitive detectors in replica/parameterized volumes by @sethrj in https://github.com/celeritas-project/celeritas/pull/1649
  • Hotfix: remove Ubuntu 20 from CI configuration by @sethrj in https://github.com/celeritas-project/celeritas/pull/1651
  • Add an option to enable status checker through celer-sim by @sethrj in https://github.com/celeritas-project/celeritas/pull/1650
  • Improve geometry testing by @sethrj in https://github.com/celeritas-project/celeritas/pull/1652
  • Add support for elliptical cylinders and elliptical cones in orange and g4org by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1642
  • Hotfix: prevent vecgeom 2.0 in regular builds by @sethrj in https://github.com/celeritas-project/celeritas/pull/1655
  • Support post-step touchable location and step status by @sethrj in https://github.com/celeritas-project/celeritas/pull/1653
  • Support surface-based VecGeom 2.x navigator by @mrguilima in https://github.com/celeritas-project/celeritas/pull/1422
  • Approximate G4Torus using inner/outer bounding cylinders by @elliottbiondo in https://github.com/celeritas-project/celeritas/pull/1654
  • Rename CoreTrackView methods by @amandalund in https://github.com/celeritas-project/celeritas/pull/1658
  • Refactor geometry tests into common file by @sethrj in https://github.com/celeritas-project/celeritas/pull/1656
  • Use extern static data for versions, configuration by @sethrj in https://github.com/celeritas-project/celeritas/pull/1657
  • Support volume-specific uniform field by @amandalund in https://github.com/celeritas-project/celeritas/pull/1659
  • Fix link errors with CUDA RDC and --as-needed flag by @pcanal in https://github.com/celeritas-project/celeritas/pull/1661
  • Use CLI11 for front end command line parsing by @sethrj in https://github.com/celeritas-project/celeritas/pull/1660
  • Move offload template into a celeritas::example namespace by @sethrj in https://github.com/celeritas-project/celeritas/pull/1663
  • Implement discrete optical physics by @hhollenb in https://github.com/celeritas-project/celeritas/pull/1604
  • Update frontier toolchain for Feb 2025 by @sethrj in https://github.com/celeritas-project/celeritas/pull/1668
  • Remove 'default_stream' option by @sethrj in https://github.com/celeritas-project/celeritas/pull/1667
  • Fix downstream RDC linking and add versioning by @pcanal in https://github.com/celeritas-project/celeritas/pull/1665
  • Extend CudaRdc compatibility by @pcanal in https://github.com/celeritas-project/celeritas/pull/1671
  • Default downstream CUDA/HIP architectures by @sethrj in https://github.com/celeritas-project/celeritas/pull/1669
  • Hide Thrust from .cc code by @sethrj in https://github.com/celeritas-project/celeritas/pull/1670
  • Add an example user action for gathering statistics on GPU by @sethrj in https://github.com/celeritas-project/celeritas/pull/1664
  • Initialize MPI in high-level integration classes by @sethrj in https://github.com/celeritas-project/celeritas/pull/1672
  • Add quantity support to FindInterp and template Turn by @sethrj in https://github.com/celeritas-project/celeritas/pull/1675
  • By default load CudaRdcUtils and print config message by @sethrj in https://github.com/celeritas-project/celeritas/pull/1676
  • Support VecGeom 2.0 by @sethrj in https://github.com/celeritas-project/celeritas/pull/1674
  • Fix bremsstrahlung process construction when using only a single model by @amandalund in https://github.com/celeritas-project/celeritas/pull/1677
  • Add 3D Cylindrical field map by @esseivaju in https://github.com/celeritas-project/celeritas/pull/1662
  • Lazily fetch volumes for UniformAlongStepFactory by @rahmans1 in https://github.com/celeritas-project/celeritas/pull/1666
  • Remove G4EmExtraPhysics from FtfpBertPhysicsList by @whokion in https://github.com/celeritas-project/celeritas/pull/1644
  • Define dependency helper targets and reorganize CMakeLists by @sethrj in https://github.com/celeritas-project/celeritas/pull/1673
  • Update CudaRdcUtils to v3 by @pcanal in https://github.com/celeritas-project/celeritas/pull/1679
  • Add Celeritas cmake command wrappers for downstream code by @sethrj in https://github.com/celeritas-project/celeritas/pull/1678
  • Fix static builds and CI reporting by @sethrj in https://github.com/celeritas-project/celeritas/pull/1680

New Contributors

  • @rahmans1 made their first contribution in https://github.com/celeritas-project/celeritas/pull/1666

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.5.1...v0.6.0-rc.1

- C++
Published by sethrj about 1 year ago

celeritas - 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 CELERNONFATALFLUSH 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

- C++
Published by sethrj over 1 year ago

celeritas - Version 0.5.0

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

- C++
Published by sethrj over 1 year ago

celeritas - Version 0.4.4

Version 0.4.4 is a bugfix and minor feature update to Celeritas.

  • Correctly sets track weight when integrating with Geant4 SDs
  • Fix ARM build to support Grace Hopper architectures
  • Add a CELER_DEVICE_ASYNC environment variable to fix ROCm 5.7 multithread hang
  • Improve multi-universe support for ORANGE

New features

  • Support safety and reentrant boundaries for multi-universe ORANGE (@elliottbiondo, #1140)

Reviewers: @sethrj (1)

Bug fixes

  • Fix ORANGE JSON reading and tests (@sethrj, #1164)
  • Set SD track weight and warn if offload weight is not unity (@sethrj, #1270)
  • Set step point weights in addition to track weight (@drbenmorgan, #1281)
  • Add environment variable to disable broken HIP asynchronous allocation (@sethrj, #1318)
  • Fix safety calculation at center of sphere/cyl (@sethrj, #1166)

Reviewers: @elliottbiondo (2), @drbenmorgan (1), @sethrj (1), @esseivaju (1)

Documentation improvements

  • Fix Spack CI (@sethrj, #1241)
  • Hotfix: work around ROCm failures due to Node20 incompatibility (@sethrj, #1305)
  • Fix aarch64 compilation and add Grace Hopper preset (@ptheywood, #1277)

Reviewers: @amandalund (1), @sethrj (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.4.3...v0.4.4

- C++
Published by sethrj almost 2 years ago

celeritas - Version 0.4.3

Released 2024/05/01

Version 0.4.3 is a bugfix and minor feature update to Celeritas.

  • Adds diagnostic output for celer-sim even when not recording all steps
  • Fixes a sampling error for keV electron ionization
  • Builds with ROCm 5.7.1
  • Builds with Geant4 10.5–10.7, 11.1.0

New features

  • Add JSON test comparator to improve testing reliability (@sethrj, #1115)
  • Add spack-based workflow to add all supported Geant4 versions to CI (@sethrj, #1149)
  • Add always-on basic diagnostics to celer-sim (@amandalund, #1214)

Reviewers: @amandalund (1), @drbenmorgan (1), @sethrj (1)

Bug fixes

  • Fix Moller-Bhahba energy distribution (@amandalund, #1138)
  • Fix Geant4 build from 10.5–10.7 and example build for 11.1 onward (@sethrj, #1152)
  • Fix missing Werror in build-fast workflow (@sethrj, #1141)
  • Fix build error with Geant4@11.1.0 (@amandalund, #1199)

Reviewers: @sethrj (2), @whokion (1), @drbenmorgan (1), @amandalund (1)

Documentation improvements

  • Update Frontier installation (@sethrj, #1208)

Reviewers: @esseivaju (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.4.2...v0.4.3

- C++
Published by sethrj about 2 years ago

celeritas - Version 0.4.2

Version 0.4.2 is a bugfix and minor feature update to Celeritas.

Key enhancements compared to version 0.4.1 are:

  • Full reproducibility of results in Geant4 multithreaded mode
  • A new CELER_KILL_OFFLOAD environment variable that immediately kills EM tracks to help estimate a maximum offloading speedup
  • Support for Geant4-VecGeom conversion of parameterized volumes
  • Support for Geant4 11.2

Important bug fixes:

  • GCC 14 compatibility
  • Support for ROOT-exported GDML booleans

New features

  • Warn and set default threads when OpenMP and Geant4 MT might collide (@sethrj, #1056)
  • Add environment variable to kill Celeritas-supported tracks in Geant4 (@amandalund, #1060)
  • Support Geant4-VecGeom conversion of parameterized volumes (@sethrj, #1071)
  • Save action times on multi-stream CPU celer-sim (@sethrj, #1065)
  • Automatically calculate number of events in apps (@amandalund, #1072)
  • Add option to use CLHEP and SI unit systems instead of Gaussian CGS (@sethrj, #1076)

Reviewers: @amandalund (4), @sethrj (2), @esseivaju (1), @sawenzel (1)

Bug fixes

  • Fix celer-g4 primary generator MT reproducibility (@amandalund, #1057)
  • Insert SortTrackAction when sorting by particle type (@esseivaju, #1059)
  • Fix range constexpr (@sethrj, #1064)
  • Ensure reproducibility when using MT Geant4 with Celeritas offloading (@amandalund, #1061)
  • Fix conversion of boolean solids when the "left" solid is displaced (@sethrj, #1069)
  • Use environment variables to control OpenMP behavior in celer-sim (@amandalund, #1073)
  • Add support for Geant4@11.2 (@whokion, #1075)
  • Fix CMake for linking CUDA RDC for executables (@pcanal, #1102)

Reviewers: @sethrj (6), @pcanal (1), @amandalund (1)

Documentation improvements

  • Include documentation as mandatory CI (@sethrj, #1053)
  • Remove deprecated code from v0.4 (@sethrj, #1063)
  • Add additional documentation about fields (@sethrj, #1066)
  • Update copyrights for 2024 (@sethrj, #1083)

Reviewers: @pcanal (3), @amandalund (2)

Minor internal changes

  • Remove extra constructor templates in device ActionLauncher (@esseivaju, #1062)
  • Rename GenericXsCalculator (@amandalund, #1081)
  • Add algorithm for difference of squares and move is_monotonic_increasing() to utils (@amandalund, #1082)
  • Clang-format entire repository (@sethrj, #1084)
  • Fix link errors in edge cases and restore HIP testing (@sethrj, #1042)
  • Fix and avoid including algorithms header for ROOT/CLING (@sethrj, #1087)
  • Fix non-sticky CMake options (@sethrj, #1098)
  • Add missing include needed in GCC 14 (@hartsw, #1110)

Reviewers: @amandalund (4), @sethrj (3), @pcanal (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.4.1...v0.4.2

- C++
Published by sethrj over 2 years ago

celeritas - Version 0.4.1

Released 2023/12/07

Version 0.4.1 is a bugfix and minor feature update to Celeritas, primarily to support CMSSW integration.

Key enhancements compared to version 0.4.0 are:

  • A new G4VTrackingManager interface to Celeritas from Geant4
  • Support for using a GDML-free VecGeom installation
  • Improved provenance and reporting in JSON output for apps
  • The ability to use stdin/stdout to drive celer-g4 with JSON

Important bug fixes:

  • GeantSimpleCalo can now be used with Celeritas offload enabled.

New features

  • Write celer-g4 input to output file or screen (@sethrj, #1034)
  • Support sorting tracks by particle types (@esseivaju, #1044)
  • Improve JSON I/O for celer-g4/sim apps (@sethrj, #1045)
  • Support JSON via stdin for celer-g4 (@sethrj, #1048)
  • Support using VecGeom without VGDML (@sethrj, #1046)
  • Implement jump ahead for XORWOW RNG (@amandalund, #1049)
  • Implement offload to Celeritas from Geant4 using G4VTrackingManager hook (@drbenmorgan, #1050)

Reviewers: @amandalund (3), @sethrj (3), @whokion (1)

Bug fixes

  • Fix GeantSimpleCalo output when Celeritas is enabled (@sethrj, #1040)
  • Uniquify ROOT file name when output is directed to stdout (@pcanal, #1051)
  • Fix ROOT dictionary paths (@pcanal, #1054)

Reviewers: @sethrj (2), @amandalund (1)

Documentation improvements

  • Update tests to pass with cuRAND (@amandalund, #1052)

Reviewers: @sethrj (1)

Minor internal changes

  • Fix Jenkins CI build and ccache use (@sethrj, #1036)
  • Update Perlmutter CMake profile and env script (@esseivaju, #1041)
  • Fix Jenkins CI (@sethrj, #1038)
  • Update cuda build instructions (@esseivaju, #1043)
  • Refactor TrackSortUtils (@esseivaju, #1047)

Reviewers: @sethrj (3), @pcanal (2)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.4.0...v0.4.1

- C++
Published by sethrj over 2 years ago

celeritas - Version 0.4.0

Released 2023/11/27

Version 0.4.0 is a major update to Celeritas that focuses on performance and integration with Geant4. It also contains major improvements to the ORANGE navigation engine.

This is the first version of ORANGE that supports GPU neutron transport in SCALE. It is also the first version to fully support integration into ATLAS FullSimLight and CMSSW.

Key enhancements compared to version 0.3.2 are:

  • Addition of the single Coulomb scattering process and Wentzel model
  • Major performance improvements when running Celeritas to accelerate multithreaded Geant4
  • Major performance improvements when using ORANGE
  • A new G4VFastSimulationModel interface to Celeritas for offloading tracks with Geant4 11.1
  • Experimental support for surface-based VecGeom
  • Experimental support for Windows and for single-precision arithmetic

Key changes are:

  • The interface for celer-g4 now takes JSON input and writes JSON output, as the app is to be less of an example and more of a Celeritas front end to Geant4 with support for offloading.
  • The hit output from celer-g4 has been rewritten so that it can be opened in downstream applications that have celeritas in their library path.

New features

  • Launch kernels only with active tracks using "action range" (@esseivaju, #765)
  • Add utility for constructing SD "force_volumes" option (@sethrj, #825)
  • Add scoped NVTX ranges for improved profiling (@esseivaju, #827)
  • Add isotope data to MaterialParams (@stognini, #831)
  • Add ScopedProfiling to device actions (@esseivaju, #836)
  • Gather and set more Step/Track attributes when calling sensitive detectors (@sethrj, #839)
  • Add isotope selector (@stognini, #843)
  • Add a HepMC3 event writer (@sethrj, #851)
  • Add option to disable Celeritas offloading in celer-g4 (@amandalund, #860)
  • Add option to dump offloaded tracks as an event file (@sethrj, #854)
  • Expose SDSetupOptions "enabled" flag in SetupOptionsMessenger (@drbenmorgan, #859)
  • Add track step counter to celer-g4 (@amandalund, #862)
  • Define arithmetic operators for Array (@sethrj, #868)
  • Support Geant4@10.5 (@sethrj, #869)
  • Add __launch_bounds__ to kernels based on Executor properties (@esseivaju, #853)
  • Add option to use RZ magnetic field and along step action in the celer-g4 application (@whokion, #874)
  • Add basic field driver option support to RZ map field (@sethrj, #880)
  • Implement BIH tree (@elliottbiondo, #849)
  • Implement new matrix utilities for ORANGE (@sethrj, #885)
  • Implement remaining quadric surfaces (@sethrj, #867)
  • Add Wentzel single Coulomb scattering model (@hhollenb, #861)
  • Accelerate ORANGE track initialization with Bounding Interval Hierarchy (@elliottbiondo, #881)
  • Implement GPU-compatible transformations with ORANGE (@sethrj, #872)
  • Add e-/e+ single Coulomb scattering process (@hhollenb, #899)
  • Add JSON input and more control options to celer-g4 (@amandalund, #890)
  • Implement surface promotion in ORANGE (@sethrj, #893)
  • Refactor StepLimit to SoA (@esseivaju, #901)
  • Implement surface translation and transformation (@sethrj, #887)
  • Add more bounding box utilities (@sethrj, #889)
  • Add surface "variant" class for host processing (@sethrj, #895)
  • Add ROOT-based event exporter (@stognini, #900)
  • Use radix sort for ordering tracks (@esseivaju, #903)
  • Implement chained transformations/translations (@sethrj, #897)
  • Connect ROOT event writer to accel and reader to celer-sim (@sethrj, #904)
  • Define CELER_ASSUME for simpler always-on compiler assumptions (@sethrj, #905)
  • Implement surface simplification (@sethrj, #894)
  • Accelerate ORANGE boundary crossing with BIH (@elliottbiondo, #909)
  • Add bounding box transformation (@sethrj, #906)
  • Add surface clipping helper class (@sethrj, #896)
  • Add option to generate primaries without an event file in celer-g4 (@amandalund, #914)
  • Automatically calculate ORANGE universe depth (@elliottbiondo, #915)
  • Use par_nosync execution policy to execute thrust algorithms (@esseivaju, #908)
  • Implement generic transforms in multi-universe ORANGE (@sethrj, #917)
  • Implement CSG tree simplification in ORANGE (@sethrj, #923)
  • Add Windows support (@sethrj, #930)
  • Add soft equivalence for quadric surfaces (@sethrj, #933)
  • Add pinned allocator and asynchronous memory operations (@esseivaju, #910)
  • Add option to disable SD hit collection in celer-g4 (@amandalund, #943)
  • Define unified tolerances class for ORANGE (@sethrj, #941)
  • Add timers to celer-g4 (@amandalund, #944)
  • Implement asynchronous DeviceAllocation (@esseivaju, #953)
  • Support energy loss fluctuations in uniform field along-step (@amandalund, #954)
  • Add collection builder that deduplicates on insertion (@sethrj, #955)
  • Improve CPU along-step performance (@amandalund, #961)
  • Implement TrackerVisitor for multiply-dispatched tracker types (@elliottbiondo, #959)
  • Deduplicate ORANGE geometry on insertion (@sethrj, #956)
  • Implement CSG tree simplification algorithms (@sethrj, #939)
  • Improve JSON conversion for bounding box edge cases (@sethrj, #962)
  • Add unified memory support (@esseivaju, #965)
  • Implement ScopedProfiling for HIP/ROCM (@esseivaju, #970)
  • Enable tracking through rectangular arrays (@elliottbiondo, #973)
  • Export ORANGE input from JSON and add full support for transforms (@sethrj, #976)
  • Improve Quantity for field conversions and non-real_type use cases (@sethrj, #987)
  • Adapt to the new BVH navigator from VecGeom (@mrguilima, #978)
  • Implement concrete G4VFastSimulationModel for offload to Celeritas (@drbenmorgan, #992)
  • Add compile-time support for single-precision Celeritas (@sethrj, #988)
  • Implement LdgIterator abstraction (@esseivaju, #996)
  • Use LdgIterator in Collection and Span (@esseivaju, #1000)
  • Add ORANGE surface construction components (@sethrj, #1001)
  • Allow celer-g4 hit output to be opened in downstream ROOT (@stognini, #999)
  • Add environment variable to disable ROOT and update celer-g4 input (@sethrj, #1011)
  • Refactor ParticleState and ParticleParams to SoA (@esseivaju, #1012)
  • Use Celeritas error and output handling in celer-g4 app (@sethrj, #1013)
  • Add support for VecGeom surface model (@mrguilima, #1016)
  • Add G4SD "simple calorimeter" that outputs to JSON (@sethrj, #1014)
  • Optimize data access through ORANGE visitors (@esseivaju, #1018)
  • Add multithread exception support and logging to Geant4 app (@sethrj, #1026)

Reviewers: @sethrj (38), @elliottbiondo (19), @amandalund (16), @whokion (5), @stognini (2), @hhollenb (1), @drbenmorgan (1), @esseivaju (1), @pcanal (1)

Bug fixes

  • Fix errors when building and loading Celeritas through CMSSW (@sethrj, #821)
  • Divide initializer capacity by number of streams in celer-sim (@amandalund, #824)
  • Fix build errors from Geant4@10 (@drbenmorgan, #830)
  • Fix default combined_brems option to work with multiple-element materials (@sethrj, #837)
  • Fix app/demo-geo-check test failure when using MPI (@stognini, #838)
  • Unify convergence criteria in field driver (@sethrj, #829)
  • Fix minor issues with exceptions (@sethrj, #846)
  • Fix linking errors with CUDA+VecGeom caused by #847 (@pcanal, #856)
  • Fix inconsistencies in Geant4-to-VecGeom boolean conversion (@sethrj, #857)
  • Fix HepMC3 reading of vertices and status codes (@sethrj, #863)
  • Restore "small step updates momentum" condition (part of #875) in field propagator (@sethrj, #882)
  • Fix sampling of secondary gamma energies in EPlusGGInteractor (@whokion, #888)
  • Fix multi-level ORANGE direction change (@tmdelellis, #912)
  • Fix unit conversion errors when reading from event file (@amandalund, #916)
  • Fix Seltzer-Berger max xs for positrons (@amandalund, #922)
  • Fix Geant4 step limiter when ionization is disabled (@amandalund, #920)
  • Fix resetting of CUDA streams when running through accel (@sethrj, #927)
  • Fix uniform field unit conversion (@amandalund, #931)
  • Correctly map HepMC3 events to Geant4 events (@sethrj, #938)
  • Improve and fix Geant4 volume conversion on boundaries (@sethrj, #936)
  • Fix ORANGE multi-level surface crossing (@tmdelellis, #929)
  • Fix ORANGE bounding box bumping to be consistent with tracking tolerances (@sethrj, #940)
  • Fix Geant4 field construction in celer-g4 (@amandalund, #942)
  • Fix accumulated action times in celer-sim (@amandalund, #951)
  • Fix using ORANGE geometry with pointer-appended GDML (@sethrj, #960)
  • Fix performance regression on HIP (@sethrj, #968)
  • Fix uninitialized memory access in TrackInitParams (@amandalund, #974)
  • Run "warmup step" to hide once-off overhead from total run time (@sethrj, #985)
  • Fix linking to CUDA toolkit when using VecGeom (@esseivaju, #989)

Reviewers: @sethrj (15), @amandalund (9), @esseivaju (4), @whokion (2), @mrguilima (1), @stognini (1), @tmdelellis (1)

Documentation improvements

  • Document how to link loadable shared libraries with Celeritas (@drbenmorgan, #842)
  • Extend geometry robustness testing (@sethrj, #858)
  • Release v0.3.1 (@sethrj, #876)
  • Fix density correction calculation in Seltzer-Berger test (@amandalund, #921)
  • Release v0.3.2 (@sethrj, #925)
  • Update roles to distinguish "core advisor" (@sethrj, #947)
  • Add environment scripts for exalearn4 (@esseivaju, #971)
  • Stop previous builds when new changes are pushed (@aprokop, #997)
  • Fix test build with single precision and disable failing tests (@sethrj, #998)
  • Add Orange Shift tracking flow control test (@tmdelellis, #1003)
  • Use consistent energy intervals for model applicability and selection (@amandalund, #1015)
  • Update cmake presets for Zeus (@esseivaju, #1028)

Reviewers: @sethrj (7), @amandalund (4), @paulromano (1), @pcanal (1), @stognini (1)

Minor internal changes

  • Add field template deduction and parameterized test (@sethrj, #820)
  • Update CI to VecGeom 1.2.3 (@sethrj, #819)
  • Improve logger construction and add test helper class (@sethrj, #826)
  • Hotfix: fix warning when building with Geant4@11 (@sethrj, #833)
  • Remove variadic templating from track executor (@sethrj, #832)
  • Refactor hit manager SD mapping (@sethrj, #835)
  • Apply C++ core guidelines for copy/move assignment/construction (@esseivaju, #834)
  • Add screening_factor to ImportEmParameters (@stognini, #840)
  • cmake-rdc: add support for MODULE library. (@pcanal, #848)
  • Add some quality-of-life CMake defaults (@sethrj, #847)
  • Require semicolon for statement-like CELERXCOPY_MOVE macros (@sethrj, #855)
  • Hotfix: fix duplicate HepMC3 symbols by creating a wrapper function (@sethrj, #865)
  • Fix large function warnings by disabling device debug code by default (@sethrj, #866)
  • Add PolyEvaluator deduction guides (@hhollenb, #871)
  • Add thread-safe assertion to RootStepWriter (@stognini, #873)
  • Export full Celeritas version string as well as defaulted CMake variables (@sethrj, #870)
  • Reuse chord length between successive field advances (@sethrj, #875)
  • Improve polynomial deduction guide (@sethrj, #878)
  • Validate KernelParamCalculator block size using CUDA/HIP function attributes (@esseivaju, #877)
  • Refactor and extend BoundingBox (@elliottbiondo, #879)
  • Allow downstream packages to find a newer version of Celeritas (@sethrj, #884)
  • Hotfix: fix missing include from #849 (@stognini, #898)
  • Refactor event IO test for reusability (@sethrj, #902)
  • Hardcode PrimaryGenerator RNG engine and inherit from EventReaderInterface (@amandalund, #913)
  • Define variant helpers and refactor surface type dispatch (@sethrj, #911)
  • Use trailing underscore for "sentinel" classes in OpaqueId (@sethrj, #919)
  • Bikeshedding changes to BIH (@sethrj, #918)
  • Hotfix: fix crash when running celer-g4 without cuda (@sethrj, #928)
  • Rewrite soft equality for simplicity (@sethrj, #932)
  • Optimize ORANGE surface intersection testing (@sethrj, #934)
  • Hotfix: warning in ipow template instantiation (@sethrj, #937)
  • Update documentation and precalculate Wenzel nuclear form factor constants (@sethrj, #926)
  • Use async allocation for temporary track sorting storage. (@esseivaju, #946)
  • Fix build errors on macOS (@stognini, #950)
  • Add defaults and runtime checking to primary generator (@sethrj, #957)
  • Simplify nearly-zero surface displacements to zero (@sethrj, #945)
  • Avoid maybe_unused attribute because of old GCC (@sethrj, #952)
  • Fix ORANGE rectangular array construction from SCALE (@elliottbiondo, #958)
  • Fix build errors in SCALE CI (@sethrj, #963)
  • Add option to disable track count output in celer-sim (@amandalund, #964)
  • Hotfix: windows build error and missing bbox construction (@sethrj, #966)
  • Hotfix: build errors due to if constexpr on NVCC < 11.5 (@sethrj, #969)
  • Reorganize JSON input and unit test for ORANGE (@sethrj, #972)
  • Improve inlining and warning messages for scoped profiling (@sethrj, #975)
  • Drop trailing underscores for private functions and leading this-> for private data (@sethrj, #980)
  • Support HIP 5.1.0 and add Frontier build scripts (@sethrj, #981)
  • Add more profiling ranges and fix return code checks (@sethrj, #982)
  • Refactor surface input with vector of variants (@sethrj, #924)
  • Improve performance with lower launch bounds (@sethrj, #984)
  • Refactor universe insertion and add universe accessors to orange params (@sethrj, #977)
  • Unify names for celer-sim and celer-g4 input (@amandalund, #993)
  • Use fused multiply-add to improve performance and numerical accuracy (@sethrj, #995)
  • Support device-specific launch bounds (@esseivaju, #986)
  • Make boundary distance persistent to improve Shift performance (@sethrj, #1002)
  • Fix exception handling flags for Windows MSVC builds (@sethrj, #1005)
  • Optimize ORANGE surface crossings and checks (@sethrj, #1004)
  • Refactor detector construction and SharedParams output (@sethrj, #1007)
  • Add GitHub actions to CI (@sethrj, #1020)
  • Fix unchecked merge train wreck (@sethrj, #1021)
  • Refactor vecgeom setup in preparation for surface support (@sethrj, #1017)
  • Fix CI for "push" events (@sethrj, #1022)
  • Use default field driver options in celer-g4 test (@amandalund, #1024)
  • Fix duplicate libvecgeom.a in some components' build (@mrguilima, #1027)
  • Simplify data access for host collections (@esseivaju, #1029)
  • Update Celeritas CMake defaults and add documentation build (@sethrj, #1030)
  • Hotfix: CUDA 12.3.52 build error (@sethrj, #1033)
  • Add preflight github action (@sethrj, #1032)

Reviewers: @amandalund (19), @sethrj (18), @pcanal (13), @elliottbiondo (8), @esseivaju (7), @drbenmorgan (3), @hhollenb (3), @whokion (1), @tmdelellis (1), @mrguilima (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.3.0...v0.4.0

- C++
Published by sethrj over 2 years ago

celeritas - Version 0.3.2

Version 0.3.2

Released 2023/09/07

Version 0.3.2 is a bug fix release of Celeritas that addresses all identified discrepancies between Geant4 and Celeritas EM physics processes. It also should provide better performance when running Celeritas through Geant4 with many threads sharing the same GPU.

Bug fixes

  • Fix sampling of secondary gamma energies in EPlusGGInteractor (@whokion, #888)
  • Fix unit conversion errors when reading from event file (@amandalund, #916)
  • Fix Seltzer-Berger max xs for positrons (@amandalund, #922)
  • Fix Geant4 step limiter when ionization is disabled (@amandalund, #920)
  • Fix resetting of CUDA streams when running through accel (@sethrj, #927)

Reviewers: @sethrj (4), @mrguilima (1), @stognini (1), @amandalund (1)

Documentation improvements

  • Release v0.3.1 (@sethrj, #876)
  • Fix density correction calculation in Seltzer-Berger test (@amandalund, #921)

Reviewers: @amandalund (1), @sethrj (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.3.1...v0.3.2

- C++
Published by sethrj over 2 years ago

celeritas - Version 0.3.1

Version 0.3.1 is a bug fix and minor feature release of Celeritas targeted at supporting experiment frameworks. Key enhancements are:

  • More track and step attributes can be set when calling back to Geant4 sensitive detectors.
  • Offloaded tracks can be exported as a HepMC3 event file.
  • Sensitive detectors callbacks from Celeritas can be disabled with a new macro flag.
  • Linking against Geant4 10.5 is supported.
  • A new diagnostic in celer-g4 prints step distributions from Geant4 CPU execution.

Key fixes:

  • Backward compatibility with Geant4 10.6 is restored.
  • Having multiple MSC models defined in Geant4 prints a warning instead of aborting execution.
  • Initializer capacity in celer-sim is now scaled to be per thread.

New features

  • Launch kernels only with active tracks using "action range" (@esseivaju, #765)
  • Add utility for constructing SD "force_volumes" option (@sethrj, #825)
  • Add scoped NVTX ranges for improved profiling (@esseivaju, #827)
  • Add isotope data to MaterialParams (@stognini, #831)
  • Add ScopedProfiling to device actions (@esseivaju, #836)
  • Gather and set more Step/Track attributes when calling sensitive detectors (@sethrj, #839)
  • Add isotope selector (@stognini, #843)
  • Add a HepMC3 event writer (@sethrj, #851)
  • Add option to disable Celeritas offloading in celer-g4 (@amandalund, #860)
  • Add option to dump offloaded tracks as an event file (@sethrj, #854)
  • Expose SDSetupOptions "enabled" flag in SetupOptionsMessenger (@drbenmorgan, #859)
  • Add track step counter to celer-g4 (@amandalund, #862)
  • Define arithmetic operators for Array (@sethrj, #868)
  • Support Geant4@10.5 (@sethrj, #869)
  • Add __launch_bounds__ to kernels based on Executor properties (@esseivaju, #853)
  • Add option to use RZ magnetic field and along step action in the celer-g4 application (@whokion, #874)
  • Add basic field driver option support to RZ map field (@sethrj, #880)

Reviewers: @sethrj (10), @amandalund (3), @whokion (3), @hhollenb (1), @drbenmorgan (1)

Bug fixes

  • Fix errors when building and loading Celeritas through CMSSW (@sethrj, #821)
  • Divide initializer capacity by number of streams in celer-sim (@amandalund, #824)
  • Fix build errors from Geant4@10 (@drbenmorgan, #830)
  • Fix default combined_brems option to work with multiple-element materials (@sethrj, #837)
  • Fix app/demo-geo-check test failure when using MPI (@stognini, #838)
  • Unify convergence criteria in field driver (@sethrj, #829)
  • Fix minor issues with exceptions (@sethrj, #846)
  • Fix linking errors with CUDA+VecGeom caused by #847 (@pcanal, #856)
  • Fix inconsistencies in Geant4-to-VecGeom boolean conversion (@sethrj, #857)
  • Fix HepMC3 reading of vertices and status codes (@sethrj, #863)
  • Restore "small step updates momentum" condition (part of #875) in field propagator (@sethrj, #882)

Reviewers: @amandalund (5), @sethrj (4), @whokion (2), @esseivaju (1)

Documentation improvements

  • Update CI to VecGeom 1.2.3 (@sethrj, #819)
  • Document how to link loadable shared libraries with Celeritas (@drbenmorgan, #842)
  • Extend geometry robustness testing (@sethrj, #858)

Reviewers: @pcanal (1), @sethrj (1), @amandalund (1)

Minor internal changes

  • Add field template deduction and parameterized test (@sethrj, #820)
  • Improve logger construction and add test helper class (@sethrj, #826)
  • Hotfix: fix warning when building with Geant4@11 (@sethrj, #833)
  • Remove variadic templating from track executor (@sethrj, #832)
  • Refactor hit manager SD mapping (@sethrj, #835)
  • Apply C++ core guidelines for copy/move assignment/construction (@esseivaju, #834)
  • Add screening_factor to ImportEmParameters (@stognini, #840)
  • cmake-rdc: add support for MODULE library. (@pcanal, #848)
  • Add some quality-of-life CMake defaults (@sethrj, #847)
  • Require semicolon for statement-like CELERXCOPY_MOVE macros (@sethrj, #855)
  • Hotfix: fix duplicate HepMC3 symbols by creating a wrapper function (@sethrj, #865)
  • Fix large function warnings by disabling device debug code by default (@sethrj, #866)
  • Add PolyEvaluator deduction guides (@hhollenb, #871)
  • Add thread-safe assertion to RootStepWriter (@stognini, #873)
  • Export full Celeritas version string as well as defaulted CMake variables (@sethrj, #870)
  • Reuse chord length between successive field advances (@sethrj, #875)
  • Improve polynomial deduction guide (@sethrj, #878)
  • Validate KernelParamCalculator block size using CUDA/HIP function attributes (@esseivaju, #877)

Reviewers: @sethrj (6), @amandalund (5), @drbenmorgan (3), @pcanal (2), @hhollenb (2), @esseivaju (1), @whokion (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.3.0...v0.3.1

- C++
Published by sethrj almost 3 years ago

celeritas - Version 0.3.0

Version 0.3.0 is a major new release of Celeritas. Key enhancements are:

  • Full, efficient support for multithreading inside Geant4 apps
  • Improved Geant4 integration, including support for Geant4 11.1
  • Automatic in-memory conversion of Geant4 geometry to VecGeom
  • New diagnostic functionality and quality-of-life improvements
  • Performance improvements

Key changes:

  • "Stuck" tracks are killed after a certain number of steps without an intersection
  • The Urban cross section model is used by default for all energies
  • demo-loop is now celer-sim and is installed alongside the library
  • demo-geant is now celer-g4 and is also installed
  • Building with the C++17 or later is required

New features

  • Add filtering to RootStepWriter (@stognini, #630)
  • Add math operators to Quantity (@sethrj, #658)
  • Disable Geant4+ROOT system signal hooks (@sethrj, #656)
  • ORANGE: find next step across multiple universes (@elliottbiondo, #607)
  • Wrap track extender/initializer functions inside concrete Actions (@drbenmorgan, #664)
  • Read EM processes from G4GammaGeneral (@sethrj, #690)
  • Identify and kill looping tracks (@amandalund, #685)
  • Add StreamId to allow thread-safe data access in Actions (@sethrj, #693)
  • Cross universe boundaries in ORANGE (@elliottbiondo, #684)
  • Import a few more EM parameters from Geant4 (@amandalund, #703)
  • Add UniformAlongStepFactory for Geant4 integration (@sethrj, #702)
  • Add option for ordering and shuffling track slots (@esseivaju, #701)
  • Define SimpleOffload for dead-simple Geant4 integration (@sethrj, #704)
  • Extend Urban MSC to high energy by default (@sethrj, #705)
  • Add an option to apply cuts to all secondaries (@amandalund, #709)
  • Add more output diagnostics from internal classes (@sethrj, #714)
  • Add new capabilities to run CMS with sensitive detectors (@sethrj, #713)
  • Add memory diagnostic (@sethrj, #716)
  • Convert Geant4 geometry to VecGeom in memory (@mrguilima, #557)
  • Create ORANGE RectArrayRecord objects (@elliottbiondo, #718)
  • Add StreamStore for thread-safe storage of states in a params object (@sethrj, #722)
  • Partition tracks by status at the start of each simulation step (@esseivaju, #717)
  • Sort track slots by step limit ActionId (@esseivaju, #727)
  • Add simple calorimeter (@sethrj, #733)
  • Add debugging/profiling utilities (@sethrj, #738)
  • Add an along step action with a RZMapField (@whokion, #736)
  • Add G4LogicalVolume* to VolumeId mapping (@mrguilima, #739)
  • Add ActionDiagnostic, replacing ParticleProcessDiagnostic (@amandalund, #740)
  • Replace demo loop StepDiagnostic with thread-safe version (@amandalund, #746)
  • Improve and add internal utilities before refactoring action interface (@sethrj, #742)
  • Expand GeantPhysicsOptions to encompass all physics processes (@stognini, #744)
  • Output descriptive state on CPU when an offloaded track dies (@sethrj, #752)
  • Use separate along-step kernel for neutral particles for 25% performance boost (@sethrj, #745)
  • Extend and update SWIG wrappers (@sethrj, #767)
  • Add option to throw an exception when ROOT encountered an "error" (@sethrj, #760)
  • Support Geant4 11.1+ (@sethrj, #768)
  • Add begin-of-run interface to initialize states and actions (@sethrj, #769)
  • Support multithreaded CPU using single GPU in demo loop (@amandalund, #774)
  • Support running kernels on different CUDA streams (@amandalund, #777)
  • Rename demo loop/geant to celer-sim and celer-g4 (@sethrj, #779)
  • Implement a Geant4 geometry tracker for comparing with VecGeom (@sethrj, #759)
  • Add RectArrayTracker class (@elliottbiondo, #758)
  • Rename max_num_tracks to num_track_slots and divide by num_streams (@sethrj, #785)
  • Simulate zero cross section for particles without processes (@stognini, #782)
  • Improve logger interaction with Geant4 (@sethrj, #804)
  • Improve stream redirection behavior and logger destination (@sethrj, #815)
  • Add G4ExtrudedSolid conversion (@sethrj, #813)
  • Improve performance of gathering and copying detector step data on device (@amandalund, #814)
  • Extend user-facing app/environment options (@sethrj, #816)
  • Support manual addition/exclusion of volumes in HitManager (@sethrj, #772)

Reviewers: @sethrj (21), @amandalund (19), @pcanal (4), @esseivaju (4), @whokion (4), @stognini (2), @drbenmorgan (1), @mrguilima (1)

Bug fixes

  • Fix MSC cross section units (@sethrj, #644)
  • Fix SWIG and update requirements (@sethrj, #657)
  • Only capture kernel context if corresponding track is alive (@sethrj, #661)
  • Fix hit mapping when using GDML geometry with pointers (@sethrj, #673)
  • Fix small bugs and remove special cases in Urban MSC (@sethrj, #674)
  • Fix imported micro xs when lower energy grid bound is higher than upper bound (@amandalund, #679)
  • Fix unique Geant4/GDML volume names (@amandalund, #680)
  • Fix Collection usage from inside .cu files (@sethrj, #688)
  • Give different streams unique RNG seeds (@sethrj, #696)
  • Fix a few edge cases in field propagation (@amandalund, #700)
  • Fix multithreading in Geant4 and HitManager (@sethrj, #694)
  • Fix SWIG and mac builds (@sethrj, #706)
  • Fix energy deposition for killed looping positrons (@amandalund, #708)
  • Fix minor warning with VecGeom and test failures when JSON is unavailable (@sethrj, #729)
  • Use weak_ptr to fix ActionDiagnostic shared cycle (@sethrj, #748)
  • Fail consistently when trying to track in unsupported volumes (@sethrj, #751)
  • Fix duplicate volume warnings and missing material IDs (@sethrj, #753)
  • Fix conversion of Geant4 reflected shapes (@mrguilima, #761)
  • Remove next-distance caching from geometry and add limited-distance safety search (@sethrj, #776)
  • Fix step limiter when losing all energy over a step (@sethrj, #780)
  • Fix G4VExceptionHandler lifetime and improve exception wrapping (@sethrj, #773)
  • Only use ROOT in celer-g4 when Celeritas uses Geant4 (@drbenmorgan, #798)
  • Fix celer-g4 ROOT PCM load error (@pcanal, #799)
  • Fix UrbanMsc safety edge case (@sethrj, #803)
  • Fix build on Summit (@sethrj, #806)
  • Fix along-step with uniform field on CPU when no MSC (@sethrj, #807)
  • Fix assertion when field driver step has zero error (@sethrj, #808)
  • Fix Bremsstrahlung process construction based on Geant4PhysicsOptions (@stognini, #811)
  • Fix some VecGeom CMS Run 3 issues (@sethrj, #797)
  • Rewrite VecGeom converter to fix mapping issues with reflecting volumes (@sethrj, #812)

Reviewers: @amandalund (12), @sethrj (8), @whokion (4), @pcanal (3), @stognini (1), @drbenmorgan (1), @elliottbiondo (1), @mrguilima (1)

Documentation improvements

  • Add minimal failing test for #620 (@amandalund, #655)
  • Fix documentation links and update celeritas logo (@sethrj, #686)
  • Fix KernelContext Exception test for cases where ThreadId != TrackSlotId (@esseivaju, #695)
  • Improve documentation failure mode when sphinx is unavailable (@sethrj, #712)
  • Reenable and patch up HIP tests (@sethrj, #711)
  • Add documentation about deprecation (@sethrj, #723)
  • Add tests for AlongStepAction with RZMapField (@whokion, #747)
  • Improve documentation and action descriptions (@sethrj, #749)
  • Define virtual geometry interface and improve documentation (@sethrj, #754)
  • Release v0.2.2 (@sethrj, #763)
  • Refactor TrackInitTest and fix when JSON is unavailable (@sethrj, #793)
  • Add new vecgeom tests to emulate CMS run 3 issues (@sethrj, #800)

Reviewers: @amandalund (6), @sethrj (3), @mrguilima (1), @paulromano (1), @stognini (1)

Minor internal changes

  • Remove multiple scattering from Processes (@sethrj, #631)
  • Require C++17 and use a few C++17 features (@sethrj, #633)
  • Auto-write ROOT objects before deleting (@stognini, #610)
  • Refactor import process into multiple import models (@sethrj, #634)
  • Switch from genreflex/xml to rootcling/LinkDef for demo-geant-integration (@pcanal, #636)
  • Disable rootmap file for demo-geant-integration dictionary. (@pcanal, #647)
  • Fix duplicate CMake presets (@sethrj, #660)
  • Differentiate between local and global Volume and Surface Ids within ORANGE (@elliottbiondo, #669)
  • Refactor MSC implementation and add further tests (@sethrj, #641)
  • Use TrackSlotId to index into states (@sethrj, #676)
  • Update CI VecGeom to 1.2.2 (@sethrj, #682)
  • Loosen test tolerances for VecGeom (@sethrj, #681)
  • Update the CMakePreset and env script for building on Zeus (@esseivaju, #689)
  • Index tracks by TrackSlotId (@esseivaju, #678)
  • Fix HIP test failure in field propagation (@sethrj, #697)
  • Use more IIFE, constexpr inline, string_view (@sethrj, #699)
  • Use SoA for SimTrackView state data (@esseivaju, #707)
  • Rename OutputManager to OutputRegistry and add to CoreParams (@sethrj, #710)
  • Move basic grid functionality to corecel (@elliottbiondo, #719)
  • Use independent params and state arguments for actions (@sethrj, #720)
  • Remove universetypes/universeindices from OrangeInput and rename UnitIndexer (@elliottbiondo, #724)
  • Add more assertions and minor fixes (@amandalund, #730)
  • Move some ROOT files and refactor demo-app input (@sethrj, #728)
  • Move Label to corecel/io (@sethrj, #731)
  • Replace RZ field reader with JSON (@sethrj, #735)
  • Refactor demo-loop into Runner class (@sethrj, #732)
  • Move and rename volume-based magnetic field map classes (@whokion, #725)
  • Allow geometry selection independent of VecGeom being enabled (@sethrj, #726)
  • Decompose along-step GPU kernel for 10% performance boost (@sethrj, #737)
  • Pass host-only classes to actions (@sethrj, #741)
  • Access params/state through global rather than constant memory (@sethrj, #743)
  • Add a VecGeom+RelWithDebInfo+debug build to the CI (@amandalund, #715)
  • Update CMake presets and gitignore (@esseivaju, #756)
  • Use UniformGrid for RZMapField (@whokion, #755)
  • Refactor primary-to-initializer as an action (@sethrj, #764)
  • Consolidate Geant4 geometry conversion utilities (@sethrj, #771)
  • Improve VecGeom testing (@sethrj, #770)
  • Refactor track initialization kernels and initialization scalars (@sethrj, #766)
  • Separate app CMakeLists and install executables (@sethrj, #775)
  • Rename Launch⇄Execute (@sethrj, #781)
  • Add a Launch helper functor to fully abstract device execution (@sethrj, #783)
  • Use ActionLauncher for Moller-Bhabha, action diagnostic, and step gather action (@amandalund, #790)
  • Use ActionLauncher for LivermorePE, CombinedBrem, MuBremsstrahlung, RelativisticBrem (@pcanal, #789)
  • Use ActionLauncher for Klein-Nishina model (@esseivaju, #787)
  • Use ActionLauncher for boundary action (@esseivaju, #788)
  • Use ActionLauncher for positron annihilation, Rayleigh scattering, and Seltzer-Berger models (@stognini, #786)
  • Remove CelerGen and associated scripts (@sethrj, #792)
  • Use ActionLauncher for along-step methods (@sethrj, #791)
  • Use constrained safety distance for MSC step limit and scattering (@sethrj, #784)
  • Account for zero-processes only in pre-step action (@sethrj, #795)
  • Finalize launch simplification (@sethrj, #796)
  • Create CUDA streams when integrating with Geant4 (@amandalund, #805)
  • Fix G4 version check for G4Step::Reset[Pre|Post]StepPoint (@esseivaju, #810)

Reviewers: @amandalund (21), @sethrj (21), @pcanal (4), @esseivaju (4), @whokion (2), @stognini (2), @mrguilima (1)

- C++
Published by sethrj almost 3 years ago

celeritas - Version 0.2.2

Version 0.2.2 will be the last release in the v0.2 series and includes a few minor bug fixes. Additional fixes on the v0.3 develop branch require enhancements specific to the new code base, so those were not backported.

Bug fixes

  • Fix hit mapping when using GDML geometry with pointers (@sethrj, #672)
  • Fail fast instead of giving wrong answers for multithreading (@sethrj, #691)
  • Fix a few edge cases in field propagation (@amandalund, #700)

Reviewers: @stognini (1), @amandalund (1), @sethrj (1)

Documentation improvements

  • Reenable and patch up HIP tests (@sethrj, #711)

Reviewers: @amandalund (1)

Minor internal changes

  • Update CI VecGeom to 1.2.2 (@sethrj, #682)

Reviewers: @pcanal (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.2.1...v0.2.2

- C++
Published by sethrj about 3 years ago

celeritas - Version 0.2.1

Version 0.2.1

Version 0.2.1 corrects several major tracking and physics bugs in the 0.2.x series. Notably:

  • Positron annihilation is no longer ignored.
  • The 1 keV standard EM physics cutoff applies to electrons and positrons after slowing down in addition to before, reducing the number of low-energy particles being tracked.
  • Field propagation no longer advances particles to boundaries slightly past their physics path length. This previously produced numerous instances of a coincident boundary crossing plus physics interaction.
  • In high-Z materials, Geant4 produces MSC cross sections for positrons that are not monotonically decreasing with increasing energy (there is a discontinuity around 10 MeV). This behavior previously caused a miscalculation of the step length when slowing down near 10 MeV.

This is also the first release to support Geant4 version 10.6.

Note that many of the changes are the same as those in Version 0.1.5.

New features

  • Add an example of I/O writing sensitive hits to a ROOT file (@whokion, #606)
  • Write particle params to diagnostic output (@sethrj, #612)
  • Provide detailed track and kernel information when CPU exceptions are thrown (@sethrj, #611)
  • Add enum string mapper (@sethrj, #626)
  • Support for geant4 v10.6.3 and Cmake preset for Zeus (@esseivaju, #665)

Reviewers: @amandalund (2), @pcanal (1), @sethrj (1)

Bug fixes

  • Allow invalid volume IDs in ROOT MC truth output (@amandalund, #603)
  • Fix missing Geant4 environment in unit test (@drbenmorgan, #602)
  • Fix missing positron annihilation process and process diagnostic (@amandalund, #625)
  • Fix NaN/assertion when taking extremely small steps in a field (@sethrj, #628)
  • Fix ORANGE intersection along cylinder axis (@sethrj, #627)
  • Fix incorrect Urban MSC path length correction due to discontinuity in positron cross section (@amandalund, #642)
  • Check for unlikely "zero speed" condition (@sethrj, #646)
  • Avoid XS scaling factor > 1 in SBPositronXSCorrector (@stognini, #649)
  • Fix volume mapping and navigation issues found with HGCal prototype (@sethrj, #637)
  • Fix coincident boundary/step created by field propagator (@sethrj, #654)
  • VecGeom/Cuda: set the stack limit to 16K when CELERITAS_DEBUG=ON (@pcanal, #638)
  • Apply electron tracking cut after slowing down in addition to before (@sethrj, #648)
  • Fix Geant4/GDML volume names to get TileCal running (@sethrj, #666)
  • Ignore Geant4 muons and muon processes by default in accel (@sethrj, #667)

Reviewers: @sethrj (6), @whokion (4), @amandalund (3), @stognini (2), @elliottbiondo (1), @mrguilima (1)

Documentation improvements

  • Add new examples and flesh out user documentation (@sethrj, #605)
  • Minor documentation updates (@sethrj, #622)
  • Characterize and remove field driver convergence assertions (@sethrj, #650)
  • Document available physics processes and models (@drbenmorgan, #653)
  • Release v0.1.5 (@sethrj, #663)

Reviewers: @amandalund (3), @whokion (1), @sethrj (1)

Minor internal changes

  • Remove MSC data from core physics class (@sethrj, #604)
  • Update crusher environment to use AMD LLVM compilers (@sethrj, #609)
  • Support linking to Geant4 static libraries (@drbenmorgan, #623)
  • Refine ImportProcess enums and importing code (@sethrj, #624)
  • Use ProcessBuilder for ROOT and Geant4 tests (@sethrj, #629)
  • Activate fine-grid MSC test and make GeantImporter less verbose (@sethrj, #645)

Reviewers: @amandalund (3), @whokion (1), @sethrj (1), @stognini (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.2.0...v0.2.1

- C++
Published by sethrj over 3 years ago

celeritas - Version 0.1.5

Version 0.1.5

Version 0.1.5 corrects several major tracking and physics bugs in the 0.1.x series. Notably:

  • Positron annihilation is no longer ignored.
  • The 1 keV standard EM physics cutoff applies to electrons and positrons after slowing down in addition to before, reducing the number of low-energy particles being tracked.
  • Field propagation no longer advances particles to boundaries slightly past their physics path length. This previously produced numerous instances of a coincident boundary crossing plus physics interaction.
  • In high-Z materials, Geant4 produces MSC cross sections for positrons that are not monotonically decreasing with increasing energy (there is a discontinuity around 10 MeV). This behavior previously caused a miscalculation of the step length when slowing down near 10 MeV.

Bug fixes

  • Fix build documentation and issues with newer toolchains (@sethrj, #571)
  • Fix missing positron annihilation process and process diagnostic (@amandalund, #625)
  • Fix NaN/assertion when taking extremely small steps in a field (@sethrj, #628)
  • Fix ORANGE intersection along cylinder axis (@sethrj, #627)
  • Fix incorrect Urban MSC path length correction due to discontinuity in positron cross section (@amandalund, #642)
  • Check for unlikely "zero speed" condition (@sethrj, #646)
  • Avoid XS scaling factor > 1 in SBPositronXSCorrector (@stognini, #649)
  • Fix coincident boundary/step created by field propagator (@sethrj, #654)
  • VecGeom/Cuda: set the stack limit to 16K when CELERITAS_DEBUG=ON (@pcanal, #638)
  • Apply electron tracking cut after slowing down in addition to before (@sethrj, #648)

Reviewers: @sethrj (4), @whokion (4), @amandalund (2), @paulromano (1), @elliottbiondo (1)

Documentation improvements

  • Characterize and remove field driver convergence assertions (@sethrj, #650)

Reviewers: @whokion (1)

Minor internal changes

  • CI: use Geant4 11, C++17, VecGeom 1.2, CUDA 11.8, GCC 11 (@sethrj, #566)
  • CI: add no-debug HIP (ROCM 5.4) build (@sethrj, #569)

Reviewers: @pcanal (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.1.4...v0.1.5

- C++
Published by sethrj over 3 years ago

celeritas - Version 0.2.0

Version 0.2.0 enables new coupled integration between Celeritas and Geant4 using the Acceleritas interface library. It features new ROOT output capabilities including MC truth output, a set of high-level API classes for integrating into existing Geant4 toolkit-based apps, and better support for multithreaded use.

New features

  • Export SB, Livermore PE, and atomic relaxation data to ROOT file (@stognini, #481)
  • Refactor ORANGE input to be more extensible (@sethrj, #510)
  • Make primary generator more general (@amandalund, #514)
  • Support arbitrary user/internal kernels as part of stepping loop (@sethrj, #525)
  • Improve CMake version/host metadata (@sethrj, #529)
  • Baby steps toward Geant4 integration (@sethrj, #531)
  • Add "background" volume support to ORANGE (@sethrj, #530)
  • Build Livermore/SB data from ImportedData (@sethrj, #535)
  • Load and build multiple universes in ORANGE (@elliottbiondo, #534)
  • Support adding primaries at any step in the transport loop (@amandalund, #542)
  • Add basic step collector (@sethrj, #544)
  • Add finer granularity to step collector (@sethrj, #549)
  • Add a Celeritas handler for ROOT Error (messages) (@pcanal, #552)
  • Enable resizing of CUDA malloc heap to fix VecGeom failures (@mrguilima, #554)
  • Add detector mapping and filtering to hit collector (@sethrj, #555)
  • Add helper class for extracting detector hits to CPU (@sethrj, #559)
  • Add initialization of particles in multi-universe ORANGE geometries (@elliottbiondo, #546)
  • Add upper_bound functions to corecel/math (@elliottbiondo, #565)
  • Add ROOT MC truth output (@stognini, #564)
  • Handle exceptions from inside OpenMP parallel pragmas (@sethrj, #563)
  • Add skeleton classes for Celeritas/Geant4 integration (@sethrj, #567)
  • Add thread-local transporter and Celeritas shared params setup to Acceleritas (@amandalund, #575)
  • Set initial values of SetupOptions parameters from GlobalSetup (@mrguilima, #576)
  • Add Geant4 Exception converter (@sethrj, #580)
  • Convert Thrust exceptions to Geant4 (@sethrj, #582)
  • Add diagnostic output to geant demo (@sethrj, #583)
  • Auto-export GDML from Geant4 geometry (@sethrj, #585)
  • Support user-defined along-step kernels in accel+demo (@sethrj, #586)
  • Add hit processor to convert Celeritas detector hits to Geant4 (@sethrj, #581)
  • Add HepMC3 reader to demo-geant-integration (@stognini, #578)
  • Add track parent id information to step data (@stognini, #590)
  • Enable all physics in geant demo for true offloading (@sethrj, #591)
  • Add action labels to the ROOT MC truth output file (@stognini, #601)

Reviewers: @sethrj (13), @amandalund (10), @stognini (2), @paulromano (2), @whokion (2), @tmdelellis (1), @pcanal (1), @elliottbiondo (1), @mrguilima (1)

Bug fixes

  • Fix infrastructure and build issues for summit (@sethrj, #509)
  • Fix indexing of imported micro xs (@amandalund, #512)
  • Don't slow particles to zero when hitting boundary (@sethrj, #524)
  • Fix JSON build issues (@sethrj, #536)
  • Fix library location and configure issues from #526 (@sethrj, #537)
  • Fix thread safety issues in Celeritas (@sethrj, #532)
  • Do not include ROOT's CMake "use" file to avoid potential nlohmann_json conflicts (@drbenmorgan, #556)
  • Remove calls to host code from host-device Collection (@sethrj, #547)
  • Fix celeritas-gen when run from root directory (@sethrj, #562)
  • Fix and work around some issues on HIP/Crusher (@sethrj, #558)
  • Fix build documentation and issues with newer toolchains (@sethrj, #571)
  • Minor fixes for older Geant4/VecGeom releases (@sethrj, #587)
  • Use Geant4 environment variables to choose run manager and threads (@sethrj, #589)
  • Add backward compatibility for primary generators (@sethrj, #599)

Reviewers: @amandalund (6), @pcanal (4), @sethrj (2), @whokion (2), @elliottbiondo (1), @tmdelellis (1), @paulromano (1)

Documentation improvements

  • Add release procedure, roles, and 0.1.x release notes (@sethrj, #519)
  • Add DOE DOI and improve PR process documentation (@sethrj, #533)
  • Add include-what-you-use script and pragmas (@sethrj, #540)
  • Add a simple SensitiveHit for demo-geant4-integration (@whokion, #579)
  • Add Acceleritas documentation (@sethrj, #595)
  • Update copyrights for 2023 (@sethrj, #598)

Reviewers: @paulromano (2), @amandalund (2), @tmdelellis (1), @pcanal (1), @sethrj (1), @whokion (1)

Minor internal changes

  • Add granularity to Geant setup (@sethrj, #485)
  • Format code base (clang-format version 14.0.6) (@sethrj, #506)
  • Use test sub-namespace instead of celeritas_test (@sethrj, #503)
  • Refactor ORANGE data and simple tracker to support nested universes (@sethrj, #520)
  • Define gauss as internal field strength and use tesla for input (@sethrj, #522)
  • Break library into multiple parts and mirror install tree (@sethrj, #526)
  • Split orange/Types and add Orange prefix to Data (@sethrj, #541)
  • Update CUDA RDC CMake code (@pcanal, #545)
  • Fix git-clang-format hook and code documentation (@sethrj, #568)
  • Change Transport/Stepper interfaces to take span of Primary instead of vector (@paulromano, #572)
  • Refactor geant demo app and accel code (@sethrj, #577)
  • Move HepMC3 reader to accel and make a little more reusable (@sethrj, #593)
  • Rename CELER_TRY_ELSE to CELER_TRY_HANDLE (@sethrj, #594)
  • Update IWYU and apply to codebase (@sethrj, #596)
  • Update clang-format to avoid alignment and use "east const" (@sethrj, #574)
  • Enable debug assertions for HIP (@sethrj, #597)

Reviewers: @amandalund (8), @stognini (2), @sethrj (2), @elliottbiondo (1), @paulromano (1)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.1.4..v0.2.0

- C++
Published by sethrj over 3 years ago

celeritas - Version 0.1.4

This version fixes significant errors in along-step tracking when multiple scattering and/or magnetic fields are in use.

Bug fixes

  • Fix additional failures resulting from direction change on a boundary after crossing (@amandalund, #517)
  • Fix the true path length limit of UrbanMsc (@whokion, #521)
  • Fix field propagation for stuck and long-track particles (@sethrj, #518)
  • Don't slow particles to zero when hitting boundary (@sethrj, #524)
  • Cache multiple scattering range at the first step in a new volume (@whokion, #527)
  • Reset physics state when a secondary is initialized in the parent's track slot (@amandalund, #528)

- C++
Published by sethrj over 3 years ago

celeritas - Version 0.1.3

This patch fixes additional issues with tracking in a magnetic field.

Bug fixes

  • Fix near-infinite loop in field propagation (@sethrj, #511)
  • Allow tracks taking small steps to propagate in field (@amandalund, #513)
  • Fix ability to disable Rayleigh scattering when running demo-loop app
  • Fix failure when changing direction on boundary immediately after crossing (@sethrj, #515)
  • Escape rather than segfault on boundary crossing failure in release mode in ORANGE (@sethrj, #516)

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.1.2...v0.1.3

- C++
Published by sethrj over 3 years ago

celeritas - Version 0.1.2

This is a bug-fixing patch that addresses a few outstanding build issues, targeted at making it easier to run and debug the regression problem suite.

New features

  • Save JSON exception output if demo loop fails by @sethrj in #507

Bug fixes

  • Fix class name conflict, remove default initializers, and tweak field driver @sethrj in #504
  • Fix no-ROOT demo loop for 0.1.x and other summit changes by @sethrj in #508

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.1.1...v0.1.2

- C++
Published by sethrj over 3 years ago

celeritas - Version 0.1.1

This is a bug-fixing patch that addresses numerous outstanding issues with the transport loop.

New features

  • Filter imported data from Geant4 based on user options by @sethrj in #482
  • Add contributing guide and development docs by @sethrj in #502

Bug fixes

  • Fix uninitialized data access in primary generator by @sethrj in #472
  • Build processes based on exported data by @sethrj in #483
  • NVHPC: silence warnings by @sethrj in #486
  • Bring latest upstream updates to the BVHNavigator by @mrguilima in #484
  • Force disabling of shared libs for VecGeom 1.2.0+ by @sethrj in #489
  • Add minor fixes for UrbanMsc by @whokion in #492
  • Set remaining model lower limits to zero and make sure demo loop runs with integral approach off by @amandalund in #490
  • Fix VecGeomTrack::move_internal assertion failure by @mrguilima in #493
  • Fix clang-14/ROCM build with JSON enabled by @sethrj in #496
  • Better workaround for VecGeom 1.2 crashes by @sethrj in #495
  • Fix imported model microscopic cross sections by @amandalund in #487
  • Fix unintentional MSC enable and some displacement logic by @sethrj in #500
  • Fix unusual errors in field propagation by @sethrj in #499
  • Fix vecgeom boundary state and add more thorough testing by @sethrj in #494
  • Improve static/shared CUDA library choice when linking VecGeom by @pcanal in #497
  • Fix ORANGE reentrant boundary crossings by @sethrj in #501

Internal changes

  • Rewrite field tests by @sethrj in #471
  • Add range-to-step tests and remove min by @sethrj in #479
  • Add unit tests and make minor changes to FieldDriver by @sethrj in #478
  • Unify units in EM interactors/data by @sethrj in #477
  • Add tests for field propagator near boundaries by @sethrj in #480
  • Return one event at a time from EventReader and PrimaryGenerator by @amandalund in #488
  • Infrastructure changes for geo heuristic test by @sethrj in #498

Special thanks to everyone who reviewed code for the above commits!

Full Changelog: https://github.com/celeritas-project/celeritas/compare/v0.1.0...v0.1.1

- C++
Published by sethrj almost 4 years ago

celeritas - Version 0.1.0

”Initial viable product“ release of Celeritas. This release is focused on unit testing and stabilizing the API for exploratory use by downstream applications and frameworks. Some initial code verification problems (looking at energy and step distributions for simple problems such as TestEM3) are promising, but the code is far from validated.

New features

  • Standard EM physics including multiple scattering and energy loss fluctuations
  • VecGeom for GDML navigation, ORANGE for testing
  • Optional support for offloading to GPU with CUDA and HIP, or running with OpenMP for multithreading
  • Magnetic field support with runtime-swappable field types

Known bugs

  • Magnetic field propagation fails at geometry boundaries in some test problems.
  • Multiple scattering requires more steps than expected compared to Geant4.

Contributors

Thanks to the contributors at Argonne National Lab, Lawrence Berkeley Lab, Fermilab, Oak Ridge National Laboratory, and other collaborating institutions.

  • Philippe Canal (@pcanal): #115, #119, #130, #171, #172, #166, #222, #239, #242, #243, #254, #338
  • Doaa Deeb (@DoaaDeeb): #257
  • Tom Evans (@tmdelellis): #57, #65, #112
  • Seth R Johnson (@sethrj): #4, #8, #13, #16, #15, #21, #24, #25, #32, #17, #35, #39, #36, #40, #45, #44, #50, #51, #61, #59, #62, #63, #64, #69, #78, #80, #79, #76, #73, #82, #83, #84, #85, #86, #87, #88, #91, #92, #93, #95, #99, #98, #106, #104, #108, #114, #116, #105, #117, #118, #122, #120, #124, #128, #129, #133, #135, #131, #136, #137, #138, #139, #142, #143, #144, #141, #147, #148, #151, #149, #153, #150, #156, #157, #162, #160, #170, #168, #174, #169, #177, #178, #179, #184, #189, #190, #193, #195, #191, #199, #204, #196, #205, #201, #207, #208, #211, #218, #217, #219, #220, #224, #225, #226, #228, #235, #237, #236, #238, #247, #276, #292, #293, #294, #296, #298, #291, #306, #301, #307, #311, #313, #314, #315, #312, #321, #322, #325, #329, #331, #332, #335, #333, #336, #337, #340, #339, #343, #344, #342, #345, #347, #348, #349, #351, #359, #360, #364, #365, #366, #378, #374, #373, #379, #381, #384, #380, #387, #386, #388, #389, #391, #394, #393, #395, #397, #398, #399, #400, #405, #403, #404, #410, #408, #406, #411, #402, #414, #415, #417, #416, #422, #424, #426, #427, #428, #433, #432, #435, #436, #434, #437, #441, #439, #445, #443, #448, #449, #453, #456, #455, #458, #457, #464, #465
  • Soon Yung Jun (@whokion): #41, #70, #173, #200, #214, #221, #230, #250, #259, #258, #260, #316, #317, #320, #324, #370, #375, #390, #396, #407, #413, #430, #454, #467
  • Guilherme Lima (@mrguilima): #42, #38, #109, #90, #167, #229, #234, #232, #328, #383, #446, #452
  • Amanda Lund (@amandalund): #6, #20, #47, #52, #89, #100, #113, #134, #154, #159, #161, #186, #185, #198, #216, #215, #209, #227, #240, #245, #255, #251, #264, #274, #269, #285, #290, #297, #304, #309, #319, #323, #330, #346, #350, #353, #362, #368, #369, #372, #376, #382, #385, #401, #440, #444, #450, #463
  • Ben Morgan (@drbenmorgan): #53, #56, #110, #121, #367, #371
  • Vincent R Pascuzzi (@vrpascuzzi): #68, #72, #111, #241, #248, #246, #287
  • Paul Romano (@paulromano): #107, #197, #265, #268, #270, #275, #273, #289, #299, #303, #305, #308, #310, #318
  • Stefano C Tognini (@stognini): #30, #55, #81, #132, #175, #188, #194, #203, #210, #231, #244, #271, #302, #327, #326, #341, #423

- C++
Published by sethrj almost 4 years ago