chrono::collision::ChCollisionSystemDistributed Class Reference

Description

This class scaffolds on ChCollisionSystemChronoMulticore in order to manage collision data for the system during MPI exchanges.

Maintains a mapping from a body to its shapes.

#include <ChCollisionSystemDistributed.h>

Inheritance diagram for chrono::collision::ChCollisionSystemDistributed:
Collaboration diagram for chrono::collision::ChCollisionSystemDistributed:

Public Member Functions

 ChCollisionSystemDistributed (ChMulticoreDataManager *dm, ChDistributedDataManager *ddm)
 
virtual void Add (ChCollisionModel *model) override
 Add a collision model to the collision engine. More...
 
virtual void Remove (ChCollisionModel *model) override
 Remove a collision model from the collision engine. More...
 
- Public Member Functions inherited from chrono::collision::ChCollisionSystemChronoMulticore
 ChCollisionSystemChronoMulticore (ChMulticoreDataManager *dc)
 
virtual void SetNumThreads (int nthreads) override
 Set the number of OpenMP threads for collision detection.
 
virtual void PreProcess () override
 Synchronization operations, invoked before running the collision detection. More...
 
virtual void PostProcess () override
 Synchronization operations, invoked after running the collision detection.
 
virtual void ReportContacts (ChContactContainer *container) override
 Fill in the provided contact container with collision information after Run(). More...
 
virtual void ReportProximities (ChProximityContainer *mproximitycontainer) override
 Fill in the provided proximity container with near point information after Run(). More...
 
- Public Member Functions inherited from chrono::collision::ChCollisionSystemChrono
virtual ChCollisionSystemType GetType () const override
 Return the type of this collision system.
 
void SetEnvelope (double envelope)
 Set collision envelope for rigid shapes (default: ChCollisionModel::GetDefaultSuggestedEnvelope). More...
 
void SetBroadphaseGridResolution (const ChVector< int > &num_bins)
 Set a fixed number of grid bins (default 10x10x10). More...
 
void SetBroadphaseGridSize (const ChVector<> &bin_size)
 Set a variable number of grids, such that each bin has roughly the specified size. More...
 
void SetBroadphaseGridDensity (double density)
 Set a variable number of grid bins, such that there are roughly density collision shapes per bin. More...
 
void SetNarrowphaseAlgorithm (ChNarrowphase::Algorithm algorithm)
 Set the narrowphase algorithm (default: ChNarrowphase::Algorithm::HYBRID). More...
 
void EnableActiveBoundingBox (const ChVector<> &aabb_min, const ChVector<> &aabb_max)
 Enable monitoring of shapes outside active bounding box (default: false). More...
 
bool GetActiveBoundingBox (ChVector<> &aabb_min, ChVector<> &aabb_max) const
 Get the dimensions of the "active" box. More...
 
virtual void Clear (void) override
 Clear all data instanced by this algorithm if any (like persistent contact manifolds).
 
virtual void Run () override
 Run the algorithm and finds all the contacts.
 
virtual void GetBoundingBox (ChVector<> &aabb_min, ChVector<> &aabb_max) const override
 Return an AABB bounding all collision shapes in the system.
 
virtual void ResetTimers () override
 Reset any timers associated with collision detection.
 
virtual double GetTimerCollisionBroad () const override
 Return the time (in seconds) for broadphase collision detection.
 
virtual double GetTimerCollisionNarrow () const override
 Return the time (in seconds) for narrowphase collision detection.
 
virtual bool RayHit (const ChVector<> &from, const ChVector<> &to, ChRayhitResult &result) const override
 Perform a ray-hit test with all collision models. More...
 
virtual bool RayHit (const ChVector<> &from, const ChVector<> &to, ChCollisionModel *model, ChRayhitResult &result) const override
 Perform a ray-hit test with the specified collision model. More...
 
virtual std::vector< vec2 > GetOverlappingPairs ()
 Return the pairs of IDs for overlapping contact shapes.
 
- Public Member Functions inherited from chrono::collision::ChCollisionSystem
void RegisterBroadphaseCallback (std::shared_ptr< BroadphaseCallback > callback)
 Specify a callback object to be used each time a pair of 'near enough' collision shapes is found by the broad-phase collision step. More...
 
void RegisterNarrowphaseCallback (std::shared_ptr< NarrowphaseCallback > callback)
 Specify a callback object to be used each time a collision pair is found during the narrow-phase collision detection step. More...
 
virtual void ArchiveOUT (ChArchiveOut &marchive)
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIN (ChArchiveIn &marchive)
 Method to allow de-serialization of transient data from archives.
 
void SetSystem (ChSystem *sys)
 Set associated Chrono system.
 

Additional Inherited Members

- Protected Member Functions inherited from chrono::collision::ChCollisionSystemChrono
virtual void GetOverlappingAABB (std::vector< char > &active_id, real3 Amin, real3 Amax)
 Mark bodies whose AABB is contained within the specified box.
 
void GenerateAABB ()
 Generate the current axis-aligned bounding boxes of collision shapes.
 
- Protected Attributes inherited from chrono::collision::ChCollisionSystemChrono
std::shared_ptr< ChCollisionDatacd_data
 
collision::ChBroadphase broadphase
 methods for broad-phase collision detection
 
collision::ChNarrowphase narrowphase
 methods for narrow-phase collision detection
 
std::vector< char > body_active
 
bool use_aabb_active
 enable freezing of objects outside the active bounding box
 
real3 active_aabb_min
 lower corner of active bounding box
 
real3 active_aabb_max
 upper corner of active bounding box
 
ChTimer m_timer_broad
 
ChTimer m_timer_narrow
 
- Protected Attributes inherited from chrono::collision::ChCollisionSystem
ChSystemm_system
 associated Chrono system
 
std::shared_ptr< BroadphaseCallbackbroad_callback
 user callback for each near-enough pair of shapes
 
std::shared_ptr< NarrowphaseCallbacknarrow_callback
 user callback for each collision pair
 

Member Function Documentation

◆ Add()

void chrono::collision::ChCollisionSystemDistributed::Add ( ChCollisionModel model)
overridevirtual

Add a collision model to the collision engine.

Creates a mapping entry from the associated body to its collision shapes.

Reimplemented from chrono::collision::ChCollisionSystemChrono.

◆ Remove()

void chrono::collision::ChCollisionSystemDistributed::Remove ( ChCollisionModel model)
overridevirtual

Remove a collision model from the collision engine.

Deactivates the body in the data manager of Chrono::Multicore and marks the space as free.

Reimplemented from chrono::collision::ChCollisionSystemChrono.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_distributed/collision/ChCollisionSystemDistributed.h
  • /builds/uwsbel/chrono/src/chrono_distributed/collision/ChCollisionSystemDistributed.cpp