Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support surface-based VecGeom 2.x navigator #1422

Open
wants to merge 118 commits into
base: develop
Choose a base branch
from

Conversation

mrguilima
Copy link
Contributor

@mrguilima mrguilima commented Sep 23, 2024

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.

@mrguilima mrguilima requested a review from sethrj September 23, 2024 17:24
@mrguilima mrguilima self-assigned this Sep 23, 2024
@mrguilima mrguilima added the enhancement New feature or request label Sep 23, 2024
@mrguilima mrguilima closed this Sep 23, 2024
@mrguilima mrguilima reopened this Sep 23, 2024
@sethrj sethrj added the external Dependencies and framework-oriented features label Sep 23, 2024
@sethrj sethrj marked this pull request as draft September 23, 2024 17:50
@sethrj sethrj changed the title Adapt Celeritas to use surface-based VecGeom 2.x navigator *[enhancement, geometry]* Support surface-based VecGeom 2.x navigator Sep 23, 2024
Copy link

github-actions bot commented Sep 24, 2024

Test summary

  670 files  1 038 suites   32s ⏱️
1 371 tests 1 328 ✅ 41 💤 2 ❌
3 625 runs  3 609 ✅ 12 💤 4 ❌

For more details on these failures, see this check.

Results for commit 582a387.

♻️ This comment has been updated with latest results.

@sethrj
Copy link
Member

sethrj commented Sep 25, 2024

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

@sethrj sethrj marked this pull request as ready for review February 24, 2025 20:39
@sethrj
Copy link
Member

sethrj commented Mar 5, 2025

@mrguilima I think we can merge this after #1652 and spack/spack#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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request external Dependencies and framework-oriented features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants