Class for MEMORY-WISE cell list implementation. More...
Class for MEMORY-WISE cell list implementation.
This class implement the MEMORY-WISE cell list The memory allocation is small. The memory allocation is (in byte) Size = O(N*size_of(ele))
Where
N = total number of elements M = number of cells sizeof(ele) = the size of the element the cell list is storing, example if the cell list store the particle id (64bit) is 8 byte
| dim | Dimensionality of the space |
| T | type of the space float, double, complex |
Definition at line 34 of file MemMemoryWise.hpp.
#include <MemMemoryWise.hpp>
Public Types | |
| typedef local_index | loc_index |
| expose the type of the local index | |
Public Member Functions | |
| void | init_to_zero (local_index slot, local_index tot_n_cell) |
| Initialize the data structure to zeros. More... | |
| Mem_mw & | operator= (const Mem_mw &cell) |
| Copy two data-structure. More... | |
| void | addCell (local_index cell_id, typename base::value_type ele) |
| Add an element to the cell. More... | |
| void | add (local_index cell_id, typename base::value_type ele) |
| Add an element to the cell. More... | |
| void | remove (local_index cell, local_index ele) |
| Remove an element from the cell. More... | |
| size_t | getNelements (const local_index cell_id) const |
| Get the number of elements in the cell. More... | |
| auto | get (local_index cell, local_index ele) -> decltype(cl_base[0].get(0))& |
| auto | get (local_index cell, local_index ele) const -> decltype(cl_base.find(cell) ->second.get(0))& |
| void | swap (Mem_mw &cl) |
| void | swap (Mem_mw &&cell) |
| void | clear () |
| const local_index & | getStartId (size_t part_id) const |
| const local_index & | getStopId (size_t part_id) const |
| const local_index & | get_lin (const local_index *part_id) const |
| Mem_mw (size_t slot) | |
| constructor More... | |
| void | set_slot (size_t slot) |
| Set the number of slots. More... | |
Private Types | |
|
typedef openfpm::vector < local_index > | base |
| Base type storing information. | |
Private Attributes | |
| std::unordered_map < local_index, base > | cl_base |
|
std::remove_reference < decltype(std::declval < openfpm::vector< local_index > >().get(0))>::type | invalid |
| In case of invalid element return this. | |
constructor
| slot | number of slots (unused) |
Definition at line 192 of file MemMemoryWise.hpp.
|
inline |
Add an element to the cell.
| cell_id | cell-id |
| ele | element to add |
Definition at line 96 of file MemMemoryWise.hpp.
|
inline |
Add an element to the cell.
| cell_id | cell-id |
| ele | element to add |
Definition at line 83 of file MemMemoryWise.hpp.
|
inline |
Get the number of elements in the cell.
| cell_id |
Definition at line 119 of file MemMemoryWise.hpp.
|
inline |
Initialize the data structure to zeros.
In this case it does nothing
| slots | |
| tot_n_cell | total number of cells |
Definition at line 59 of file MemMemoryWise.hpp.
|
inline |
Copy two data-structure.
| cell | data-structure to copy |
Definition at line 71 of file MemMemoryWise.hpp.
|
inline |
Remove an element from the cell.
| cell | cell-id |
| ele | element to remove |
Definition at line 107 of file MemMemoryWise.hpp.
|
inline |
|
private |
each cell has a dynamic structure that store the elements in the cell
Definition at line 41 of file MemMemoryWise.hpp.