23#include "ParticleList.hpp"
25#include <boost/range/iterator_range.hpp>
33 using storage_type = std::vector<CellRef>;
37 using iterator =
typename storage_type::iterator;
43 m_neighbors = rhs.m_neighbors;
46 std::distance(rhs.m_neighbors.begin(),
59 std::span<const CellRef> black_neighbors) {
60 m_neighbors.resize(red_neighbors.size() + black_neighbors.size());
61 m_red_black_divider = std::copy(red_neighbors.begin(), red_neighbors.end(),
63 std::copy(black_neighbors.begin(), black_neighbors.end(),
91 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(std::span< const CellRef > red_neighbors, std::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