walberla::mesa_pd::data::HalfSpace Class Reference

Detailed Description

Half space shape class.

Attention
The HalfSpace does not obey any rotation. The rotation is given purely by the normal of the half space!

#include <HalfSpace.h>

+ Inheritance diagram for walberla::mesa_pd::data::HalfSpace:

Public Member Functions

 HalfSpace (const Vec3 &normal=Vec3(real_t(1), real_t(0), real_t(0)))
 
void updateMassAndInertia (const real_t density) override
 Updates mass and inertia according to the actual shape. More...
 
real_t getVolume () const override
 
const Vec3getNormal () const
 
void pack (walberla::mpi::SendBuffer &buf) override
 
void unpack (walberla::mpi::RecvBuffer &buf) override
 
- Public Member Functions inherited from walberla::mesa_pd::data::BaseShape
 BaseShape ()=default
 
 BaseShape (const int shapeType)
 
virtual ~BaseShape ()=default
 
const real_tgetMass () const
 
const real_tgetInvMass () const
 
const Mat3getInertiaBF () const
 
const Mat3getInvInertiaBF () const
 
const ShapeTypeTgetShapeType () const
 
virtual Vec3 support (const Vec3 &) const
 

Static Public Attributes

constexpr static int SHAPE_TYPE = 0
 Unique shape type identifier for half spaces. More...
 
- Static Public Attributes inherited from walberla::mesa_pd::data::BaseShape
static const int INVALID_SHAPE = -1
 Unique invalid shape type identifier. More...
 

Private Attributes

Vec3 normal_
 Normal of the half space in reference to the global world frame. More...
 

Additional Inherited Members

- Public Types inherited from walberla::mesa_pd::data::BaseShape
using ShapeTypeT = int
 
- Protected Attributes inherited from walberla::mesa_pd::data::BaseShape
real_t mass_ = real_t(0)
 mass More...
 
real_t invMass_ = real_t(0)
 inverse mass More...
 
Mat3 inertiaBF_ = Mat3(real_t(0))
 inertia matrix in the body frame More...
 
Mat3 invInertiaBF_ = Mat3(real_t(0))
 inverse inertia matrix in the body frame More...
 
ShapeTypeT shapeType_ = INVALID_SHAPE
 

Constructor & Destructor Documentation

◆ HalfSpace()

walberla::mesa_pd::data::HalfSpace::HalfSpace ( const Vec3 normal = Vec3(real_t(1), real_t(0), real_t(0)))
inlineexplicit

Member Function Documentation

◆ getNormal()

const Vec3& walberla::mesa_pd::data::HalfSpace::getNormal ( ) const
inline

◆ getVolume()

real_t walberla::mesa_pd::data::HalfSpace::getVolume ( ) const
inlineoverridevirtual

◆ pack()

void walberla::mesa_pd::data::HalfSpace::pack ( walberla::mpi::SendBuffer buf)
inlineoverridevirtual

◆ unpack()

void walberla::mesa_pd::data::HalfSpace::unpack ( walberla::mpi::RecvBuffer buf)
inlineoverridevirtual

◆ updateMassAndInertia()

void walberla::mesa_pd::data::HalfSpace::updateMassAndInertia ( const real_t  density)
inlineoverridevirtual

Updates mass and inertia according to the actual shape.

Reimplemented from walberla::mesa_pd::data::BaseShape.

Member Data Documentation

◆ normal_

Vec3 walberla::mesa_pd::data::HalfSpace::normal_
private

Normal of the half space in reference to the global world frame.

The normal of the half space is always pointing from the occupied half space towards the open half space.


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