21#ifndef CORE_PARTICLE_NODE_HPP
22#define CORE_PARTICLE_NODE_HPP
Vector implementation and trait types for boost qvm interoperability.
std::vector< int > get_particle_ids_parallel()
void make_new_particle(int p_id, Utils::Vector3d const &pos)
Create a new particle and attach it to a cell.
const Particle & get_particle_data(int p_id)
Get particle data.
int get_particle_node(int p_id)
Get the MPI rank which owns the a specific particle.
int number_of_particles_with_type(int type)
void set_particle_pos(int p_id, Utils::Vector3d const &pos)
Move particle to a new position.
void init_type_map(int type)
void remove_all_particles()
Remove all particles.
int get_random_p_id(int type, int random_index_in_type_map)
Find a particle of given type and return its id.
void remove_particle(int p_id)
Remove particle with a given identity.
int get_maximal_particle_id()
Get maximal particle id.
int get_particle_node_parallel(int p_id)
std::vector< int > get_particle_ids()
Get all particle ids.
std::size_t fetch_cache_max_size()
Return the maximal number of particles that are kept in the fetch cache.
void invalidate_fetch_cache()
Invalidate the fetch cache for get_particle_data.
void clear_particle_node()
Invalidate particle_node.
void on_particle_type_change(int p_id, int old_type, int new_type)
int get_n_part()
Get number of particles.
void prefetch_particle_data(std::span< const int > ids)
Fetch a range of particle into the fetch cache.
bool particle_exists(int p_id)
Check if particle exists.
Struct holding all information for one particle.