include/meltpooldg/particles/obstacle_data_structure.hpp Source File
|
Developer Documentation
|
obstacle_data_structure.hpp
Go to the documentation of this file.
Definition particle_accessor.hpp:20
Definition triangulation_utils.hpp:43
Computes and stores the MPI communication pattern for a given level of a distributed triangulation.
Definition triangulation_utils.hpp:159
Definition postprocessor.hpp:32
Definition obstacle_data_structure.hpp:589
std::vector< std::vector< dealii::Particles::ParticleIterator< dim > > > particles_to_send
Definition obstacle_data_structure.hpp:611
void reset(MPI_Comm mpi_communicator)
Definition obstacle_data_structure.hpp:598
std::vector< unsigned int > n_particles_to_receive
Definition obstacle_data_structure.hpp:614
std::vector< unsigned int > rank_ghost_particle_start_handle
Definition obstacle_data_structure.hpp:618
std::vector< std::vector< typename dealii::Particles::PropertyPool< dim >::Handle > > rank_to_ghost_handle
Definition obstacle_data_structure.hpp:623
Definition obstacle_data_structure.hpp:571
LevelAdjacentCellsCache< dim > adjacent_cells
Definition obstacle_data_structure.hpp:582
LevelCommunicationPattern< dim > communication_pattern
Definition obstacle_data_structure.hpp:578
int level
The level of the triangulation that is used to cache the particles.
Definition obstacle_data_structure.hpp:585
TriangulationLevelCache(const dealii::Triangulation< dim > &triangulation)
Definition obstacle_data_structure.hpp:572
Forward declaration of the CellListParticleHandler class template.
Definition obstacle_data_structure.hpp:210
void sort_particles_into_subdomains_and_cells()
Definition obstacle_data_structure.cpp:455
int cell_level
The level of the cells on which the particles are cached.
Definition obstacle_data_structure.hpp:564
MPI_Comm mpi_communicator
MPI communicator used for synchronizing obstacle data across all ranks.
Definition obstacle_data_structure.hpp:534
std::ranges::subrange< ParticleIterator< dim, number > > locally_owned_particle_range() const
Definition obstacle_data_structure.cpp:839
dealii::Particles::PropertyPool< dim > ghost_particles_property_pool
Property pool containing the properties of the ghost particles.
Definition obstacle_data_structure.hpp:531
void prepare_for_coarsening_and_refinement()
Definition obstacle_data_structure.cpp:782
void notify(const NotifyEvent &event)
Definition obstacle_data_structure.cpp:750
std::ranges::subrange< ParticleIterator< dim, number > > particles_in_cell(typename dealii::Triangulation< dim >::active_cell_iterator cell) const
Definition obstacle_data_structure.cpp:858
std::vector< std::vector< dealii::Particles::ParticleIterator< dim > > > locally_owned_particles
Definition obstacle_data_structure.hpp:553
void get_obstacles_in_cell(const dealii::TriaIterator< dealii::CellAccessor< dim > > &cell, ObstacleContainer &particles)
Definition obstacle_data_structure.hpp:697
unsigned int n_ghost_particles() const
Definition obstacle_data_structure.cpp:832
number global_max_particle_radius
The maximum radius of all particles in the global domain.
Definition obstacle_data_structure.hpp:567
std::ranges::subrange< MeltPoolDG::ParticleIterator< dim, number > > ghost_particle_range() const
Definition obstacle_data_structure.cpp:848
void serialize(Archive &ar, const unsigned int version)
Definition obstacle_data_structure.hpp:688
void deregister_property_pool() const
Definition obstacle_data_structure.cpp:198
MPI_Comm get_mpi_communicator() const
Definition obstacle_data_structure.cpp:825
void find_relevant_particles(const dealii::TriaIterator< dealii::CellAccessor< dim > > &cell, ObstacleContainer &particles)
Definition obstacle_data_structure.hpp:728
void initialize()
Reinitializes the internal data structure by synchronizing obstacle data across all MPI processes.
Definition obstacle_data_structure.cpp:120
void compress()
Definition obstacle_data_structure.cpp:247
~CellListParticleHandler()
Destructor. Explicitly deregisters all particles from the global obstacle property pool.
struct MeltPoolDG::CellListParticleHandler::TriangulationLevelCache triangulation_level_cache
boost::signals2::signal< void(CellListParticleHandler &, const NotifyEvent &)> notify_signal
Definition obstacle_data_structure.hpp:545
dealii::TriaIterator< dealii::CellAccessor< dim > > find_particle_cache_cell(const dealii::TriaIterator< dealii::CellAccessor< dim > > &cell) const
Definition obstacle_data_structure.cpp:905
struct MeltPoolDG::CellListParticleHandler::GhostParticleUpdateCache ghost_particle_update_cache
void insert_global_particles(const std::vector< dealii::Point< dim, number > > &obstacle_locations, const std::vector< std::vector< number > > &obstacle_properties)
Definition obstacle_data_structure.cpp:211
unsigned int n_global_particles() const
Definition obstacle_data_structure.cpp:811
struct MeltPoolDG::CellListParticleHandler::@6 cell_particle_cache
void subscribe(std::function< void(CellListParticleHandler &, const NotifyEvent)> callback)
Definition obstacle_data_structure.cpp:741
void prepare_for_serialization()
Definition obstacle_data_structure.cpp:775
boost::container::small_vector< DEMParticleAccessor< dim, number >, 3 *dim > find_particles_in_neighborhood(const DEMParticleAccessor< dim, number > &particle, const number relative_tolerance)
Definition obstacle_data_structure.cpp:868
dealii::Particles::ParticleHandler< dim > obstacle_handler
Handler managing the locally owned obstacles in the domain.
Definition obstacle_data_structure.hpp:528
void deserialize()
Definition obstacle_data_structure.cpp:768
NeighborListUpdateTracker< dim, number, ObstacleType > neighbor_list_update_tracker
Definition obstacle_data_structure.hpp:628
std::vector< std::vector< typename dealii::Particles::PropertyPool< dim >::Handle > > ghost_particles
Definition obstacle_data_structure.hpp:561
void unpack_after_coarsening_and_refinement()
Definition obstacle_data_structure.cpp:789
number compute_max_particle_radius() const
Definition obstacle_data_structure.cpp:232
NotifyEvent
Definition obstacle_data_structure.hpp:217
@ UpdateGhostParticleProperties
@ SortParticlesIntoSubdomainsAndCells
@ ObserverInitialization
void register_particle_output(Postprocessor< dim, number > &postprocessor) const
Definition obstacle_data_structure.cpp:798
void auto_update_particle_cache()
Definition obstacle_data_structure.cpp:757
void update_ghost_particle_properties()
Definition obstacle_data_structure.cpp:340
std::unordered_map< dealii::types::particle_index, dealii::Particles::ParticleIterator< dim > > particle_id_to_iterator_cache
Definition obstacle_data_structure.hpp:539
void broadcast_global_particles() const
Broadcasts obstacle properties of all locally owned particles to all MPI processes.
unsigned int n_locally_owned_particles() const
Definition obstacle_data_structure.cpp:818
Definition obstacle_data_structure.hpp:36
number skin_thickness
Definition obstacle_data_structure.hpp:95
number max_displacement_before_update
The maximum allowed displacement of any particle before an update is required.
Definition obstacle_data_structure.hpp:98
const CellListParticleHandler< dim, number, ObstacleType > & obstacle_data_structure
The obstacle data structure that is being monitored for updates.
Definition obstacle_data_structure.hpp:91
void reinit_after_update(const number new_skin_thickness=0, const number new_max_displacement_before_update=0)
Definition obstacle_data_structure.cpp:81
bool update_required() const
Definition obstacle_data_structure.cpp:16
std::vector< dealii::Point< dim, number > > previous_obstacle_locations
Definition obstacle_data_structure.hpp:88
Generated by