NuTo
Numerics Tool
Public Member Functions | List of all members
NuTo::CollidableWallPhysical Class Reference

class for planar physical walls More...

#include <CollidableWallPhysical.h>

Inheritance diagram for NuTo::CollidableWallPhysical:
NuTo::CollidableWallBase NuTo::CollidableBase

Public Member Functions

 CollidableWallPhysical (Eigen::Vector3d rPosition, Eigen::Vector3d rDirection, int rIndex)
 constructor, create CollidableWallBase using the point-and-normal-vector plane definition More...
 
void PerformCollision (CollidableParticleSphere &rSphere) override
 collision between CollidableWall and CollidableSphere More...
 
double PredictCollision (CollidableParticleSphere &rSphere, int &rType) override
 collision check between CollidableWall and CollidableSphere, physics here More...
 
bool IsPhysical () const override
 returns true More...
 
- Public Member Functions inherited from NuTo::CollidableWallBase
 CollidableWallBase (Eigen::VectorXd rPosition, Eigen::VectorXd rDirection, int rIndex)
 constructor, create CollidableWallBase using the point-and-normal-vector plane definition More...
 
virtual ~CollidableWallBase ()
 destructor, do nothing More...
 
void SetBoxes (SubBox &rInsideBox, SubBox &rOutsideBox)
 every wall should know its box and the neighbour box More...
 
void PerformCollision (CollidableBase &rCollidable) override
 collision between CollidableWall and CollidableBase, resolve double dispatch, forward *this More...
 
void PerformCollision (CollidableWallBase &rWall) override
 collision between CollidableWall and CollidableWall, does nothing More...
 
double PredictCollision (CollidableBase &rCollidable, int &rType) override
 collision check between CollidableWall and CollidableBase, resolve double dispatch, forward *this More...
 
double PredictCollision (CollidableWallBase &rWall, int &rType) override
 collision check between CollidableWall and CollidableWall, does nothing More...
 
void MoveAndGrow (double) override
 walls to neither grow nor move, do nothing More...
 
virtual void VisualizationStatic (Visualize::UnstructuredGrid &rVisualizer) const
 visualize all non-moving collidables More...
 
void GetLocalEventsToDelete (LocalEvents &) const override
 does nothing as all other wall events are still legal More...
 
virtual bool IsInside (const CollidableParticleSphere &rSphere) const
 returns whether a sphere is on the positive side of this wall More...
 
const Eigen::Vector3d & GetDirection () const
 getter for the wall direction More...
 
const Eigen::Vector3d & GetPosition () const
 getter fot the wall position More...
 
- Public Member Functions inherited from NuTo::CollidableBase
 CollidableBase (int rIndex)
 constructor, initialized with an index More...
 
virtual ~CollidableBase ()
 destructor More...
 
int GetIndex () const
 getter for collidable index More...
 
void AddBox (SubBox &rBox)
 adds a SubBox to this collidable More...
 
void RemoveBox (SubBox &rBox)
 removes a SubBox from this collidable More...
 
void PrintLocalEvents () const
 prints the local event list More...
 
const std::vector< SubBox * > & GetSubBoxes () const
 returns all the SubBoxes of this collidable More...
 

Additional Inherited Members

- Public Types inherited from NuTo::CollidableBase
typedef std::vector< CollidableParticleSphere * > ParticleContainer
 
- Protected Member Functions inherited from NuTo::CollidableWallBase
virtual void Print (std::ostream &rReturnStream) const override
 prints CollidableWall More...
 
- Protected Attributes inherited from NuTo::CollidableWallBase
Eigen::Vector3d mPosition
 point of the point-and-normal-vector plane definition More...
 
Eigen::Vector3d mDirection
 normal vector of the point-and-normal-vector plane definition More...
 
SubBoxmInsideBox
 box on the inner side of the wall More...
 
SubBoxmOutsideBox
 box on the outer side of the wall More...
 
int mNonNullAxis
 index of the direction component that is != 0 More...
 
bool mIsAxisAligned
 true –> calculations without vector calculations More...
 
- Protected Attributes inherited from NuTo::CollidableBase
int mIndex
 index, just a name for each collidable, multiple collidables with the same index possible More...
 
std::vector< SubBox * > mBoxes
 list of SubBoxes in which this collidable is inside if the collidable is passing a virutal sub box wall, multiple mBoxes are possible More...
 
LocalEvents mLocalEvents
 local event list adding single event: through EventBase::AddLocalEvents() remove single event: through EventBase::~EventBase() clear everything: on collision More...
 

Detailed Description

class for planar physical walls

Constructor & Destructor Documentation

NuTo::CollidableWallPhysical::CollidableWallPhysical ( Eigen::Vector3d  rPosition,
Eigen::Vector3d  rDirection,
int  rIndex 
)

constructor, create CollidableWallBase using the point-and-normal-vector plane definition

Parameters
rPositionpoint on the plane
rDirectionnormal vector pointing inside the domain, gets normalized.
rIndexname

Member Function Documentation

bool NuTo::CollidableWallPhysical::IsPhysical ( ) const
inlineoverridevirtual

returns true

Implements NuTo::CollidableWallBase.

void NuTo::CollidableWallPhysical::PerformCollision ( CollidableParticleSphere rSphere)
overridevirtual

collision between CollidableWall and CollidableSphere

Parameters
rSpherecollision partner

Implements NuTo::CollidableWallBase.

double NuTo::CollidableWallPhysical::PredictCollision ( CollidableParticleSphere rSphere,
int &  rType 
)
overridevirtual

collision check between CollidableWall and CollidableSphere, physics here

Parameters
rSpherepossible collision partner
Returns
predicted collision time

Implements NuTo::CollidableWallBase.


The documentation for this class was generated from the following files: