PointNeighbors.jl

PointNeighbors.jl is a package for neighborhood search with fixed search radius in 1D, 2D and 3D point clouds.

5
contributors
105 commits | Last commit 1 week ago

Cite this software

What PointNeighbors.jl can do for you

PointNeighbors.jl

Docs-stable Docs-dev Slack Youtube Build Status Codecov SciML Code Style License: MIT DOI

PointNeighbors.jl is a package for neighborhood search with fixed search radius in 1D, 2D and 3D point clouds.

Features

  • Several implementations of neighborhood search with fixed search radius
  • Focus on fast incremental updates to be usable for particle-based simulations with frequent updates
  • Designed as a "playground" to easily switch between different implementations and data structures
  • Common API over all implementations
  • Extensive benchmark suite to study different implementations (work in progress)
  • GPU compatibility (work in progress)
ImplementationDescriptionFeaturesQueryUpdateGPU-compatible
GridNeighborhoodSearch with DictionaryCellListGrid-based NHS with Julia Dict backendInfinite domainFastFast
GridNeighborhoodSearch with FullGridCellListGrid-based NHS allocating all cells of the domainFinite domain, but efficient memory layout for densely filled domain.FasterFastest
PrecomputedNeighborhoodSearchPrecompute neighbor listsBest for TLSPH without NHS updates. Not suitable for updates in every time step.FastestVery slow

Benchmarks

The following benchmarks were conducted on an AMD Ryzen Threadripper 3990X using 128 threads.

Benchmark of a single force computation step of a Weakly Compressible SPH (WCSPH) simulation: wcsph

Benchmark of an incremental update similar to a WCSPH simulation (note the log scale): update

Benchmark of a full right-hand side evaluation of a WCSPH simulation (note the log scale): rhs

Packages using PointNeighbors.jl

If you're using PointNeighbors.jl in your package, please feel free to open a PR adding it to this list.

Cite Us

If you use PointNeighbors.jl in your own research or write a paper using results obtained with the help of PointNeighbors.jl, please cite it as

@misc{pointneighbors,
  title={{P}oint{N}eighbors.jl: {N}eighborhood search with fixed search radius in {J}ulia},
  author={Erik Faulhaber and Niklas Neher and Sven Berger and
          Michael Schlottke-Lakemper and Gregor Gassner},
  year={2024},
  howpublished={\url{https://github.com/trixi-framework/PointNeighbors.jl}},
  doi={10.5281/zenodo.12702157}
}
Keywords
No keywords available
Programming language
  • Julia 100%
License
</>Source code

Participating organisations

Helmholtz-Zentrum Hereon
Uni
Uni
University of Stuttgart

Contributors

EF
Erik Faulhaber
Department of Mathematics and Computer Science, University of Cologne, Germany
NN
Niklas Neher
High-Performance Computing Center Stuttgart, University of Stuttgart, Germany
SB
Sven Berger
Institute of Surface Science, Helmholtz-Zentrum hereon, Germany
MS
Michael Schlottke-Lakemper
High-Performance Scientific Computing, University of Augsburg, Germany
GG
Gregor J. Gassner
Department of Mathematics and Computer Science, University of Cologne, Germany

Related software

TrixiParticles.jl

TR

Particle-based multiphysics simulations in Julia

Updated 5 months ago
6