Skip to content

Mgheata/vecgeom 415

Mihaela Gheata requested to merge mgheata/vecgeom-415 into master

Implementation of tessellated solid

First implementation of tessellated solid following solid conventions, providing benchmarker, visualization, scalability tests, unit test. This version applies vectorization at 2 levels: top level navigator (on 2 levels) for groups of bounding boxes, and low level helper for clusters of tessellated facets. This gives very good performance compared to Geant4/USolids implementation up O(100K) facets (https://its.cern.ch/jira/browse/VECGEOM-415) but has scalability issues beyond that.

Pending issues after this merge:

  • add support for CUDA, now missing since HybridManager2 is not ported to CUDA (using std::vector and std::pair)
  • add voxelization helper (maybe similar to the one in Geant4), to be activated for very big number of facets
  • add a clusterizer with N*log(N) scaling rather than N^2 in HybridManager2, now penalizing a lot initialization time for O(1e6) facets

Merge request reports