|
virtual | ~abstract_particle_set () noexcept(false) |
|
virtual particle_rnumber * | getParticleState () const =0 |
| Get pointer to particle state.
|
|
virtual partsize_t * | getParticleIndices () const =0 |
| Get pointer to particle indices.
|
|
virtual partsize_t * | getParticleLabels () const =0 |
| Get pointer to particle labels.
|
|
virtual int | setParticleLabels (partsize_t *)=0 |
| Copy particle labels from given pointer.
|
|
virtual int | setParticleState (particle_rnumber *)=0 |
| Copy particle state from given pointer.
|
|
virtual int | getParticleState (particle_rnumber *)=0 |
| Copy particle state to given pointer.
|
|
virtual std::unique_ptr< particle_rnumber[]> | extractFromParticleState (const int firstComponent, const int lastComponent) const =0 |
|
virtual partsize_t | getLocalNumberOfParticles () const =0 |
|
virtual partsize_t | getTotalNumberOfParticles () const =0 |
|
virtual partsize_t * | getParticlesPerPartition () const =0 |
|
virtual int | getStateSize () const =0 |
|
virtual std::vector< hsize_t > | getParticleFileLayout ()=0 |
|
virtual particle_rnumber | getSpatialLowLimitZ () const =0 |
|
virtual particle_rnumber | getSpatialUpLimitZ () const =0 |
|
virtual int | init (abstract_particles_input< partsize_t, particle_rnumber > &particles_input)=0 |
|
virtual int | operator= (abstract_particle_set *src)=0 |
|
virtual p2p_distr_mpi< partsize_t, particle_rnumber > * | getP2PComputer ()=0 |
|
template<class func_type > |
int | LOOP (func_type expression) |
|
template<class func_type > |
int | LOOP_state (func_type expression) |
|
int | copy_state_tofrom (particle_rnumber *dst, const particle_rnumber *src) |
|
int | copy_state_tofrom (std::unique_ptr< particle_rnumber[]> &dst, const std::unique_ptr< particle_rnumber[]> &src) |
|
virtual int | redistribute (std::vector< std::unique_ptr< particle_rnumber[]> > &additional_data)=0 |
|
virtual int | sample (const field< float, FFTW, ONE > &field_to_sample, particle_rnumber *result)=0 |
|
virtual int | sample (const field< float, FFTW, THREE > &field_to_sample, particle_rnumber *result)=0 |
|
virtual int | sample (const field< float, FFTW, THREExTHREE > &field_to_sample, particle_rnumber *result)=0 |
|
virtual int | sample (const field< double, FFTW, ONE > &field_to_sample, particle_rnumber *result)=0 |
|
virtual int | sample (const field< double, FFTW, THREE > &field_to_sample, particle_rnumber *result)=0 |
|
virtual int | sample (const field< double, FFTW, THREExTHREE > &field_to_sample, particle_rnumber *result)=0 |
|
template<int state_size, class p2p_kernel_class > |
int | applyP2PKernel (p2p_kernel_class &p2p_kernel, std::vector< std::unique_ptr< particle_rnumber[]> > &additional_data) |
|
int | writeParticleLabels (const std::string file_name, const std::string species_name, const std::string field_name, const int iteration) |
|
template<int state_size> |
int | writeParticleStates (const std::string file_name, const std::string species_name, const std::string field_name, const int iteration) |
|
template<typename field_rnumber , field_backend be, field_components fc> |
int | writeSample (field< field_rnumber, be, fc > *field_to_sample, particles_output_sampling_hdf5< partsize_t, particle_rnumber, particle_rnumber, 3 > *particle_sample_writer, const std::string species_name, const std::string field_name, const int iteration) |
|
template<typename field_rnumber , field_backend be, field_components fc> |
int | writeSample (field< field_rnumber, be, fc > *field_to_sample, const std::string file_name, const std::string species_name, const std::string field_name, const int iteration) |
|
int | writeStateChunk (const int i0, const int contiguous_state_chunk, particles_output_sampling_hdf5< partsize_t, particle_rnumber, particle_rnumber, 3 > *particle_sample_writer, const std::string species_name, const std::string field_name, const int iteration) |
|
int | writeStateTriplet (const int i0, particles_output_sampling_hdf5< partsize_t, particle_rnumber, particle_rnumber, 3 > *particle_sample_writer, const std::string species_name, const std::string field_name, const int iteration) |
|
int | writeStateComponent (const int i0, particles_output_sampling_hdf5< partsize_t, particle_rnumber, particle_rnumber, 3 > *particle_sample_writer, const std::string species_name, const std::string field_name, const int iteration) |
|
Brings together particle information with interpolation functionality.
This is an abstract class that defines the functionality required by the particle solver code. We define methods for:
- accessing particle set data and miscelaneous information.
- updating particle information and redistributing data among MPI processes accordingly.
- approximating fields at particle locations ("sampling").
- applying a generic particle-to-particle interaction object (P2PKernel)