chrono::collision::ChCollisionSystemDistributed Class Reference

Description

This class scaffolds on ChCollisionSystemMulticore 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
 Adds the collision model to the collision system and creates a mapping entry from the associated body to its collision shapes.
 
virtual void Remove (ChCollisionModel *model) override
 Deactivates the body in the data manager of Chrono::Multicore and marks the space as free.
 
virtual void GetOverlappingAABB (custom_vector< char > &active_id, real3 Amin, real3 Amax) override
 Set each entry of active_id to true if the AABB of the shape with that index overlaps the given AABB.
 
- Public Member Functions inherited from chrono::collision::ChCollisionSystemMulticore
 ChCollisionSystemMulticore (ChMulticoreDataManager *dc)
 
virtual void Clear (void) override
 Clear all data instanced by this algorithm if any (like persistent contact manifolds).
 
virtual void SetNumThreads (int nthreads) override
 Set the number of OpenMP threads for collision detection.
 
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 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 void ReportContacts (ChContactContainer *mcontactcontainer) override
 Fill in the provided contact container with collision information after Run().
 
virtual void ReportProximities (ChProximityContainer *mproximitycontainer) override
 Fill in the provided proximity container with near point information after Run(). More...
 
virtual bool RayHit (const ChVector<> &from, const ChVector<> &to, ChRayhitResult &mresult) const override
 Perform a ray-hit test with all collision models. More...
 
virtual bool RayHit (const ChVector<> &from, const ChVector<> &to, ChCollisionModel *model, ChRayhitResult &mresult) const override
 Perform a ray-hit test with the specified collision model. More...
 
void SetAABB (real3 aabbmin, real3 aabbmax)
 Set and enable "active" box. More...
 
bool GetAABB (real3 &aabbmin, real3 &aabbmax)
 Get the dimensions of the "active" box. More...
 
virtual std::vector< vec2 > GetOverlappingPairs ()
 Return the pairs of IDs for overlapping contact shapes.
 
- Public Member Functions inherited from chrono::collision::ChCollisionSystem
virtual void ResetTimers ()
 Reset any timers associated with collision detection.
 
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.
 

Protected Attributes

ChDistributedDataManagerddm
 
- Protected Attributes inherited from chrono::collision::ChCollisionSystem
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
 

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