SPH
Classes | Enumerations | Functions
Collision.h File Reference

Collision handling. More...

#include "objects/containers/FlatSet.h"
#include "physics/Functions.h"
#include "quantities/Storage.h"
#include "system/Settings.h"

Go to the source code of this file.

Classes

class  ICollisionHandler
 Abstraction of collision outcome. More...
 
class  IOverlapHandler
 Handles overlaps of particles. More...
 
class  NullCollisionHandler
 Helper handler always returning CollisionResult::NONE. More...
 
class  MergingCollisionHandler
 Handler merging particles into a single, larger particles. More...
 
class  ElasticBounceHandler
 Handler for bounce on collision. More...
 
class  FallbackHandler< TPrimary, TFallback >
 Composite handler, choosing another collision handler if the primary handler rejects the collision by returning CollisionResult::NONE. More...
 
class  FragmentationHandler
 
class  NullOverlapHandler
 Handler simply ignoring overlaps. More...
 
class  MergeOverlapHandler
 Handler unconditionally merging the overlapping particles. More...
 
class  RepelHandler< TFollowupHandler >
 Handler displacing the overlapping particles so that they just touch. More...
 
class  InternalBounceHandler
 Overlap handler performing a bounce of particles. More...
 
class  MergeBoundHandler
 Handler merging overlapping particles if their relative velocity is lower than the escape velocity. More...
 

Enumerations

enum class  CollisionResult {
  NONE , BOUNCE , FRAGMENTATION , MERGER ,
  EVAPORATION
}
 

Functions

template<typename T >
Tuple< T, T > minMax (const T &t1, const T &t2)
 Helper function sorting two values. More...
 
template<typename T >
INLINEweightedAverage (const T &v1, const Float w1, const T &v2, const Float w2)
 
INLINE bool areParticlesBound (const Float m_sum, const Float h_sum, const Vector &dv, const Float limit)
 

Detailed Description

Collision handling.

Author
Pavel Sevecek (sevecek at sirrah.troja.mff.cuni.cz)
Date
2016-2021

Definition in file Collision.h.

Enumeration Type Documentation

◆ CollisionResult

enum CollisionResult
strong
Enumerator
NONE 

No collision took place.

BOUNCE 

Bounce/scatter collision, no merging and no fragmentation.

FRAGMENTATION 

Target was disrupted, creating largest remnant and fragments.

MERGER 

Particles merged together.

EVAPORATION 

No asteroids survived the collision.

Definition at line 15 of file Collision.h.

Function Documentation

◆ areParticlesBound()

INLINE bool areParticlesBound ( const Float  m_sum,
const Float  h_sum,
const Vector dv,
const Float  limit 
)

Definition at line 87 of file Collision.h.

◆ minMax()

template<typename T >
Tuple<T, T> minMax ( const T &  t1,
const T &  t2 
)

Helper function sorting two values.

Definition at line 73 of file Collision.h.

◆ weightedAverage()

template<typename T >
INLINE T weightedAverage ( const T &  v1,
const Float  w1,
const T &  v2,
const Float  w2 
)

Definition at line 82 of file Collision.h.