/** * @file linked_cell_list.hpp * @author Julian Iseringhausen * @date Mon Nov 21 13:27:22 2011 * * @brief A linked cell list implementation. * */ #ifndef LINKED_CELL_LIST_HPP_ #define LINKED_CELL_LIST_HPP_ #include #include #include "base/index.hpp" #include "grid/is_grid.hpp" #include "units/particle/particle.hpp" namespace VMG { namespace Particle { class LinkedCellList : public IsGrid< std::list > { public: typedef std::list::iterator iterator; typedef std::list::const_iterator const_iterator; typedef std::list::reverse_iterator reverse_iterator; typedef std::list::const_reverse_iterator const_reverse_iterator; LinkedCellList(std::list& particles, const int& near_field_cells, const Grid& grid); ~LinkedCellList(); void AddParticle(Particle* particle); void AddParticleToHalo(const vmg_float* x, const vmg_float& q); void ClearHalo(); const Index& NearFieldCells() const {return near_field_cells_;} private: Index near_field_cells_; }; } } #endif /* LINKED_CELL_LIST_HPP_ */