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

virtual, inner, planar wall of the specimen More...

#include <CollidableWallVirtual.h>

Inheritance diagram for NuTo::CollidableWallVirtual:
NuTo::CollidableWallBase NuTo::CollidableBase

Public Member Functions

 CollidableWallVirtual (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 Case 1) Sphere is NOT in outside box of this wall –> Sphere has just passed this wall and needs to be added in the outside box Case 2) Sphere IS in the outside box –> Sphere has just left the inside box and needs to be removed from there More...
 
double PredictCollision (CollidableParticleSphere &rSphere, int &rType) override
 collision check between CollidableWall and CollidableSphere Predict wall transfer events More...
 
bool IsPhysical () const override
 returns false 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

virtual, inner, planar wall of the specimen

Constructor & Destructor Documentation

NuTo::CollidableWallVirtual::CollidableWallVirtual ( 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::CollidableWallVirtual::IsPhysical ( ) const
inlineoverridevirtual

returns false

Implements NuTo::CollidableWallBase.

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

collision between CollidableWall and CollidableSphere Case 1) Sphere is NOT in outside box of this wall –> Sphere has just passed this wall and needs to be added in the outside box Case 2) Sphere IS in the outside box –> Sphere has just left the inside box and needs to be removed from there

Parameters
rSpherecollision partner

Implements NuTo::CollidableWallBase.

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

collision check between CollidableWall and CollidableSphere Predict wall transfer events

Parameters
rSpherepossible collision partner
Returns
predicted collision time

Implements NuTo::CollidableWallBase.


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