23#include "ParticleList.hpp"
27#include <boost/range/iterator_range.hpp>
34 using storage_type = std::vector<CellRef>;
38 using iterator =
typename storage_type::iterator;
44 m_neighbors = rhs.m_neighbors;
47 std::distance(rhs.m_neighbors.begin(),
61 m_neighbors.resize(red_neighbors.
size() + black_neighbors.
size());
62 m_red_black_divider = std::copy(red_neighbors.
begin(), red_neighbors.
end(),
64 std::copy(black_neighbors.
begin(), black_neighbors.
end(),
92 storage_type m_neighbors;
neighbors_type m_neighbors
std::vector< std::pair< Particle *, Particle * > > m_verlet_list
Interaction pairs.
auto & particles()
Particles.
neighbors_type & neighbors()
All neighbors of the cell.
auto const & particles() const
typename storage_type::value_type value_type
typename storage_type::const_iterator const_iterator
Neighbors & operator=(const Neighbors &rhs)
Neighbors(Utils::Span< const CellRef > red_neighbors, Utils::Span< const CellRef > black_neighbors)
cell_range black()
Black partition of neighbors.
Neighbors(const Neighbors &rhs)
cell_range all()
All neighbors.
boost::iterator_range< iterator > cell_range
cell_range red()
Red partition of neighbors.
typename storage_type::iterator iterator
A stripped-down version of std::span from C++17.
DEVICE_QUALIFIER constexpr size_type size() const
DEVICE_QUALIFIER constexpr iterator end() const
DEVICE_QUALIFIER constexpr iterator begin() const