Neighborhood Search
The neighborhood search is the most essential component for performance. We provide several implementations in the package PointNeighbors.jl. See the docs of this package for an overview and a comparison of different implementations.
To run a simulation with a neighborhood search implementation, pass a template of the neighborhood search to the constructor of the Semidiscretization
. A template is just an empty neighborhood search with search radius 0.0
. See copy_neighborhood_search
and the examples below for more details.
semi = Semidiscretization(system1, system2,
neighborhood_search=PrecomputedNeighborhoodSearch{2}())
The keyword argument periodic_box
in the neighborhood search constructors can be used to define a periodic domain. See the PointNeighbors.jl docs for more details.
periodic_box = PeriodicBox(min_corner=[0.0, -0.25], max_corner=[1.0, 0.75])
semi = Semidiscretization(system1, system2,
neighborhood_search=GridNeighborhoodSearch{2}(; periodic_box))