waLBerla 7.3
Loading...
Searching...
No Matches
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(1_r, 0_r, 0_r))
void updateMassAndInertia (const real_t density) override
 Updates mass and inertia according to the actual shape.
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

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

Private Attributes

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

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_ = 0_r
 mass
real_t invMass_ = 0_r
 inverse mass
Mat3 inertiaBF_ = Mat3(0_r)
 inertia matrix in the body frame
Mat3 invInertiaBF_ = Mat3(0_r)
 inverse inertia matrix in the body frame
ShapeTypeT shapeType_ = INVALID_SHAPE

Constructor & Destructor Documentation

◆ HalfSpace()

walberla::mesa_pd::data::HalfSpace::HalfSpace ( const Vec3 & normal = Vec3(1_r, 0_r, 0_r))
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:
  • /builds/administration/walberla-website/walberla/src/mesa_pd/data/shape/HalfSpace.h