Support surface-based VecGeom 2.x navigator
Adapting Celeritas to use the latest surface-based model from VecGeom 2.x (see #1412).
The main change is to use VecGeom's vgbrep::protonav::BVHSurfNavigator. Since there are interface differences between this one and the volume-based BVHNavigator, the code-guards VECGEOM_USE_SURF, in analogy to AdePT.
Alternatively, VECGEOM_VERSION >= 0x020000 could be used instead, as the VecGeom 1.2.x series should always be used for volume-based navigation anyway.
There are also distinct interfaces for ABBoxManager (template vs. non-template).
Note: in draft mode, as some tests currently fail. Under investigation.
Test summary
4 532 files 6 905 suites 14m 12s :stopwatch: 1 760 tests 1 749 :white_check_mark: 11 :zzz: 0 :x: 23 967 runs 23 879 :white_check_mark: 88 :zzz: 0 :x:
Results for commit eb3264f3.
:recycle: This comment has been updated with latest results.
Without GPU on my laptop (clang 15 debug), on VecGeom ca34e35ea5fc822fcffd3c7c5d117e6bc671ce32 (reldeb), the following tests fail:
54 - geocel/vg/Vecgeom:SimpleCmsTest.* (Failed)
55 - geocel/vg/Vecgeom:FourLevelsGeantTest.* (Failed)
56 - geocel/vg/Vecgeom:SolidsGeantTest.* (SEGFAULT)
57 - geocel/vg/Vecgeom:ZnenvGeantTest.* (Failed)
166 - celeritas/field/FieldPropagator (SEGFAULT)
167 - celeritas/field/LinearPropagator (Failed)
169 - celeritas/geo/Geometry (SEGFAULT)
170 - celeritas/geo/GeoMaterial (Failed)
171 - celeritas/global/AlongStep:-Em3*:SimpleCms*:LeadBox* (SEGFAULT)
172 - celeritas/global/AlongStep:Em3AlongStepTest.nofluct_nomsc (Failed)
173 - celeritas/global/AlongStep:Em3AlongStepTest.msc_nofluct (Failed)
175 - celeritas/global/AlongStep:Em3AlongStepTest.fluct_nomsc (Failed)
176 - celeritas/global/AlongStep:SimpleCmsAlongStepTest.msc_field (Subprocess killed)
178 - celeritas/global/AlongStep:SimpleCmsRZFieldAlongStepTest.msc_rzfield (Failed)
180 - celeritas/global/KernelContextException (Failed)
181 - celeritas/global/Stepper (Failed)
182 - celeritas/global/StepperGeant:-TestEm*:LeadBox* (Failed)
183 - celeritas/global/StepperGeant:TestEm3Compton.* (Failed)
184 - celeritas/global/StepperGeant:TestEm3NoMsc.* (Failed)
185 - celeritas/global/StepperGeant:TestEm3Msc.* (Failed)
186 - celeritas/global/StepperGeant:TestEm3MscNofluct.* (Failed)
187 - celeritas/global/StepperGeant:TestEm15FieldMsc.* (Failed)
203 - celeritas/optical/OpticalCollector (Failed)
238 - celeritas/track/TrackSort (Failed)
241 - celeritas/user/Diagnostic:-TestEm3* (Failed)
242 - celeritas/user/Diagnostic:TestEm3* (Failed)
243 - celeritas/user/StepCollector (SEGFAULT)
The simplest failure is just that it seems to report aa boundary when not actually hitting a boundary:
[ RUN ] SimpleCmsTest.track
/Users/seth/Code/celeritas-temp/test/geocel/vg/Vecgeom.test.cc:164: Failure
Value of: next.boundary
Actual: true
Expected: false
/Users/seth/Code/celeritas-temp/test/geocel/vg/Vecgeom.test.cc:176: Failure
Expected equality of these values:
"si_tracker"
this->volume_name(geo)
Which is: "world"
[ FAILED ] SimpleCmsTest.track (0 ms)
Full failure log: LastTest.log
@mrguilima I think we can merge this after #1652 and https://github.com/spack/spack/pull/49313 are merged! I'll pull those in and update the CI when those are in.
The one outstanding issue is the sensitive behavior of TestEM3 ... but we can disable that for the moment.