45 Vec3d bound_min{-0.5, -0.5, -0.5};
51 Vec3d bound_max{0.5, 0.5, 0.5};
97 std::tuple<Vec3d, Vec3d>
GetBound()
const;
133 void SetBound(
double bmin_x,
double bmin_y,
double bmin_z,
double bmax_x,
134 double bmax_y,
double bmax_z);
263 Scene *scene{
nullptr};
264 bool scene_is_borrowed{
true};
A class responsible for managing cells in a simulation grid.
Definition cell_manager.hpp:16
Class for managing the simulation domain and particles that belong to it.
Definition domain.hpp:24
std::tuple< Vec3d, Vec3d > GetBound() const
Get the bounds of the current domain.
Definition domain.cpp:15
bool IsBelongToDomain(Particle const &p)
Checks if a particle belongs to this domain.
Definition domain.cpp:98
void Init()
Initializes the domain.
Definition domain.cpp:24
Scene * GetScene()
Gets the pointer to the scene used by this domain.
Definition domain.cpp:61
~Domain()
Destructor for the Domain object.
Definition domain.cpp:256
void InitScene()
Initializes the domain with a default scene.
Definition domain.cpp:45
void ClearLinkedLists()
Clears linked lists.
Definition domain.cpp:145
STLModel GetSTLModel()
Returns an STLModel object for visualization purposes.
Definition domain.cpp:166
void RemoveLinkedParticle(int lookup_id)
Remove a linked particle by look-up id.
Definition domain.cpp:156
bool IsParticleProxyToRecv(Particle const &p)
Checks if a particle needs to be received from other domains for contact detection.
Definition domain.cpp:122
bool IsJudgeDomain(Particle const &p, Particle const &q)
Checks if a particle needs to be checked for contact detection in this domain.
Definition domain.cpp:80
void SetCellSpacing(double s_x, double s_y, double s_z)
Sets the cell spacing for the CellManager.
Definition domain.cpp:76
Domain()
Constructs a new Domain object with default settings.
Definition domain.cpp:9
void SetBound(double bmin_x, double bmin_y, double bmin_z, double bmax_x, double bmax_y, double bmax_z)
Sets the size of the domain.
Definition domain.cpp:63
bool IsParticleProxyToSend(Particle const &p)
Checks if a particle needs to be sent to other domains for contact detection.
Definition domain.cpp:116
CellManager cell_manager
Manages the cells, which are used in the borad-phase contact detection.
Definition domain.hpp:58
int GetTotalRank() const
Get the total ranks of the simulation.
Definition domain.cpp:13
void Print()
Prints information about this domain to the screen.
Definition domain.cpp:134
int GetSelfRank() const
Get the rank id of the domain.
Definition domain.cpp:11
VecXT< std::pair< Particle *, int > > const & GetLinkedOuterParticles()
Get the particles that belong to other domains but may potentially overlap with this domain.
Definition domain.cpp:141
A class that manages the domain and sub-domains for a DEM simulation.
Definition domain_manager.hpp:18
Manages the data exchange in a DEM simulation.
Definition mpi_manager.hpp:39
Definition particle.hpp:26
Class for working with STL models.
Definition stl_model.hpp:17
A class for managing the elements in a DEM simulation. Scene behaves as a std container:
Definition scene.hpp:56
A class representing a wall object in a physics simulation.
Definition wall.hpp:32
Definition bond_entry.hpp:7
std::vector< T > VecXT
Definition utils_macros.hpp:31
pos
Definition json_serilization.hpp:19
std::array< double, 3 > Vec3d
Definition utils_macros.hpp:18
A struct defining the particle data for MPI communication.
Definition particle_data.hpp:17