Namespaces | |
collision_detection | |
data | |
domain | |
internal | |
kernel | |
mpi | |
sorting | |
vtk | |
Classes | |
class | ContactHistoryNotification |
Transmits the contact history. More... | |
struct | ContainsPointFunctor |
class | FaceDataSource |
class | ForceTorqueNotification |
Transmits force and torque information. More... | |
class | HeatFluxNotification |
Transmits force and torque information. More... | |
class | HydrodynamicForceTorqueNotification |
Transmits force and torque information. More... | |
class | MeshParticleVTKOutput |
class | NewGhostParticleNotification |
This notification is send to the owner of a particle to signal that a new ghost particle exists and the ghost particle list should be updated. More... | |
struct | NotificationTrait |
Returns the notification type of the template parameter. More... | |
struct | NotificationTrait< NewGhostParticleNotification > |
struct | NotificationTrait< ParticleCopyNotification > |
struct | NotificationTrait< ParticleGhostCopyNotification > |
struct | NotificationTrait< ParticleMigrationNotification > |
struct | NotificationTrait< ParticleRemoteMigrationNotification > |
struct | NotificationTrait< ParticleRemovalInformationNotification > |
struct | NotificationTrait< ParticleRemovalNotification > |
struct | NotificationTrait< ParticleUpdateNotification > |
class | NumContactNotification |
Transmits force and torque information. More... | |
class | OutputSelectorFaceDataSource |
Generic data source to pick data for a face using a particle selector. More... | |
class | OutputSelectorFaceDataSource< MeshType, Selector, Vector3< Type > > |
Data Source for particle selectors specialized for Vec3. More... | |
class | OutputSelectorVertexDataSource |
class | OutputSelectorVertexDataSource< MeshType, Selector, Vector3< Type > > |
Data Source specialized for Vec3. More... | |
class | ParseMessage |
class | ParticleCopyNotification |
A complete particle copy. More... | |
class | ParticleGhostCopyNotification |
A complete particle copy for a new ghost particle. More... | |
class | ParticleMigrationNotification |
Migrate the particle to this process. More... | |
class | ParticleRemoteMigrationNotification |
The ownership for one of the ghost particles has changed. More... | |
class | ParticleRemovalInformationNotification |
The ParticleRemovalInformationNotification class is used to signal other processes that a shadow copy was destroyed. More... | |
class | ParticleRemovalNotification |
The specified particle should be removed from the process. More... | |
class | ParticleUpdateNotification |
Updates a ghost particle. More... | |
struct | RayParticleIntersectionRatioFunctor |
class | SurfaceVelocityVertexDataSource |
class | VelocityCorrectionNotification |
Transmits corrections of the linear and angular velocity (dv / dw) that were generated by the impulses acting on the ghost particles during application of the Hard-Contact-Solvers (HCSITS) to the main particle and adds them up. More... | |
class | VelocityUpdateNotification |
Adds up LinearVelocity + Parameters::relaxationParam * velocity_correction in a particle and transmits the result to all its ghost particles. More... | |
class | VertexDataSource |
Typedefs | |
using | Mat3 = math::Matrix3< real_t > |
using | Mat2 = math::Matrix2< real_t > |
using | Rot3 = math::Rot3< real_t > |
using | Quat = math::Quaternion< real_t > |
using | Vec3 = math::Vector3< real_t > |
using | Vec2 = math::Vector2< real_t > |
typedef OpenMesh::FPropHandleT< size_t > | ParticleIdxFacePropertyHandle |
typedef OpenMesh::VPropHandleT< size_t > | ParticleIdxVertexPropertyHandle |
template<typename MeshType > | |
using | ParticleIdxFacePropertyManager = OpenMesh::PropertyManager< ParticleIdxFacePropertyHandle, MeshType > |
template<typename MeshType > | |
using | ParticleIdxVertexPropertyManager = typename OpenMesh::PropertyManager< ParticleIdxVertexPropertyHandle, MeshType > |
Enumerations | |
enum | NotificationType : uint8_t { PARTICLE_DELETION_NOTIFICATION = 1, PARTICLE_REMOVAL_NOTIFICATION, PARTICLE_COPY_NOTIFICATION, PARTICLE_GHOST_COPY_NOTIFICATION, PARTICLE_FORCE_NOTIFICATION, PARTICLE_UPDATE_NOTIFICATION, PARTICLE_MIGRATION_NOTIFICATION, PARTICLE_REMOTE_MIGRATION_NOTIFICATION, PARTICLE_VELOCITY_UPDATE_NOTIFICATION, PARTICLE_VELOCITY_CORRECTION_NOTIFICATION, NEW_GHOST_PARTICLE_NOTIFICATION, PARTICLE_REMOVAL_INFORMATION_NOTIFICATION } |
Associate a unique number to notifications for identifying/tagging them. More... | |
Functions | |
math::AABB | getAABBFromInteractionRadius (const Vector3< real_t > &pos, const real_t interactionRadius) |
template<typename ParticleAccessor_T > | |
math::AABB | getParticleAABB (const size_t particleIdx, const ParticleAccessor_T &ac) |
bool | isPointInsideSphere (const Vec3 &point, const Vec3 &spherePosition, const real_t sphereRadius) |
bool | isPointInsideHalfSpace (const Vec3 &point, const Vec3 &halfSpacePosition, const Vec3 &halfSpaceNormal) |
bool | isPointInsideBoxBF (const Vec3 &pointBF, const Vec3 &edgeLengths) |
bool | isPointInsideEllipsoidBF (const Vec3 &pointBF, const Vec3 &semiAxes) |
bool | isPointInsideCylindricalBoundary (const Vec3 &point, const Vec3 &cylindricalBoundaryPosition, const real_t radius, const Vec3 &axis) |
template<typename Accessor > | |
Vec3 | getVelocityAtWFPoint (const size_t p_idx, Accessor &ac, const Vec3 &wf_pt) |
Returns the "surface" velocity at a certain point given in world frame coordinates. More... | |
template<typename Accessor > | |
Vec3 | transformPositionFromWFtoBF (const size_t p_idx, Accessor &ac, const Vec3 &positionWF) |
Transformations between world frame (WF) and body frame (BF) coordinates. More... | |
template<typename Accessor > | |
Vec3 | transformVectorFromWFtoBF (const size_t p_idx, Accessor &ac, const Vec3 &vectorWF) |
template<typename Accessor > | |
Vec3 | transformPositionFromBFtoWF (const size_t p_idx, Accessor &ac, const Vec3 &positionBF) |
template<typename Accessor > | |
Vec3 | transformVectorFromBFtoWF (const size_t p_idx, Accessor &ac, const Vec3 &vectorBF) |
template<typename Accessor > | |
Mat3 | getInvInertia (const size_t p_idx, Accessor &ac) |
Transform (inverse) particle's moment of inertia from body frame coordinates (as stored by shape) to world frame. More... | |
template<typename Accessor > | |
Mat3 | getInertia (const size_t p_idx, Accessor &ac) |
template<typename Accessor > | |
void | addForceAtomic (const size_t p_idx, Accessor &ac, const Vec3 &f) |
Force is applied at the center of mass. More... | |
template<typename Accessor > | |
void | addForceAtWFPosAtomic (const size_t p_idx, Accessor &ac, const Vec3 &f, const Vec3 &wf_pt) |
template<typename Accessor > | |
void | addTorqueAtomic (const size_t p_idx, Accessor &ac, const Vec3 &t) |
Torque is directly applied on the particle. More... | |
real_t | raySphereIntersectionRatio (const Vec3 &rayOrigin, const Vec3 &rayDirection, const Vec3 &spherePosition, const real_t sphereRadius) |
real_t | rayHalfSpaceIntersectionRatio (const Vec3 &rayOrigin, const Vec3 &rayDirection, const Vec3 &halfSpacePosition, const Vec3 &halfSpaceNormal) |
real_t | rayEllipsoidIntersectionRatioBF (const Vec3 &rayOriginBF, const Vec3 &rayDirectionBF, const Vec3 &ellipsoidSemiAxes) |
template<typename ParticleAccessor_T > | |
real_t | intersectionRatioBisection (const size_t particleIdx, const ParticleAccessor_T &ac, const Vec3 &rayOrigin, const Vec3 &rayDirection, real_t epsilon) |
real_t | sqDistanceLineToPoint (const real_t &pt, const real_t &min, const real_t &max) |
real_t | sqDistancePointToAABB (const Vec3 &pt, const math::AABB &aabb) |
real_t | sqDistancePointToAABBPeriodic (Vec3 pt, const math::AABB &aabb, const math::AABB &domain, const std::array< bool, 3 > &periodic) |
bool | isInsideAABB (const Vec3 &pt, const real_t radius, const math::AABB &aabb) |
template<> | |
void | reset< ContactHistoryNotification > (data::Particle &p) |
void | reduce (data::Particle &&p, const ContactHistoryNotification::Parameters &objparam) |
template<> | |
void | reset< ForceTorqueNotification > (data::Particle &p) |
void | reduce (data::Particle &&p, const ForceTorqueNotification::Parameters &objparam) |
void | update (data::Particle &&p, const ForceTorqueNotification::Parameters &objparam) |
template<> | |
void | reset< HeatFluxNotification > (data::Particle &p) |
void | reduce (data::Particle &&p, const HeatFluxNotification::Parameters &objparam) |
void | update (data::Particle &&p, const HeatFluxNotification::Parameters &objparam) |
template<> | |
void | reset< HydrodynamicForceTorqueNotification > (data::Particle &p) |
void | reduce (data::Particle &&p, const HydrodynamicForceTorqueNotification::Parameters &objparam) |
void | update (data::Particle &&p, const HydrodynamicForceTorqueNotification::Parameters &objparam) |
template<> | |
void | reset< NumContactNotification > (data::Particle &p) |
void | reduce (data::Particle &&p, const NumContactNotification::Parameters &objparam) |
void | update (data::Particle &&p, const NumContactNotification::Parameters &objparam) |
template<class T > | |
void | packNotification (walberla::mpi::SendBuffer &sb, const T ¬ification) |
data::ParticleStorage::iterator | createNewParticle (data::ParticleStorage &ps, const ParticleCopyNotification::Parameters &data) |
data::ParticleStorage::iterator | createNewParticle (data::ParticleStorage &ps, const ParticleGhostCopyNotification::Parameters &data) |
template<class Notification > | |
void | reset (data::Particle &) |
void | reduce (data::Particle &&p, const VelocityCorrectionNotification::Parameters &objparam) |
template<> | |
void | reset< VelocityCorrectionNotification > (data::Particle &p) |
void | update (data::Particle &&p, const VelocityUpdateNotification::Parameters &objparam) |
template<> | |
void | reset< VelocityUpdateNotification > (data::Particle &p) |
template<typename MeshType > | |
void | tesselate (const walberla::mesa_pd::data::ConvexPolyhedron &shape, const walberla::mesa_pd::data::ParticleStorage::Particle &particle, shared_ptr< MeshType > mesh, std::vector< typename MeshType::VertexHandle > &newVertices, std::vector< typename MeshType::FaceHandle > &newFaces) |
data::ParticleStorage::iterator | createWall (data::ParticleStorage &ps, data::ShapeStorage &ss, const Vec3 &pos, const Vec3 &normal) |
[CreationHelper] More... | |
data::ParticleStorage::iterator | createSphere (data::ParticleStorage &ps, const Vec3 &pos, const real_t &radius, const size_t shapeID) |
int | main (int argc, char **argv) |
[CreationHelper] More... | |
using walberla::mesa_pd::Mat2 = typedef math::Matrix2<real_t> |
using walberla::mesa_pd::Mat3 = typedef math::Matrix3<real_t> |
typedef OpenMesh::FPropHandleT<size_t> walberla::mesa_pd::ParticleIdxFacePropertyHandle |
using walberla::mesa_pd::ParticleIdxFacePropertyManager = typedef OpenMesh::PropertyManager<ParticleIdxFacePropertyHandle, MeshType> |
typedef OpenMesh::VPropHandleT<size_t> walberla::mesa_pd::ParticleIdxVertexPropertyHandle |
using walberla::mesa_pd::ParticleIdxVertexPropertyManager = typedef typename OpenMesh::PropertyManager<ParticleIdxVertexPropertyHandle, MeshType> |
using walberla::mesa_pd::Quat = typedef math::Quaternion<real_t> |
using walberla::mesa_pd::Rot3 = typedef math::Rot3<real_t> |
using walberla::mesa_pd::Vec2 = typedef math::Vector2<real_t> |
using walberla::mesa_pd::Vec3 = typedef math::Vector3<real_t> |
Associate a unique number to notifications for identifying/tagging them.
|
inline |
Force is applied at the center of mass.
|
inline |
|
inline |
Torque is directly applied on the particle.
|
inline |
|
inline |
data::ParticleStorage::iterator walberla::mesa_pd::createSphere | ( | data::ParticleStorage & | ps, |
const Vec3 & | pos, | ||
const real_t & | radius, | ||
const size_t | shapeID | ||
) |
data::ParticleStorage::iterator walberla::mesa_pd::createWall | ( | data::ParticleStorage & | ps, |
data::ShapeStorage & | ss, | ||
const Vec3 & | pos, | ||
const Vec3 & | normal | ||
) |
[CreationHelper]
math::AABB walberla::mesa_pd::getAABBFromInteractionRadius | ( | const Vector3< real_t > & | pos, |
const real_t | interactionRadius | ||
) |
|
inline |
|
inline |
Transform (inverse) particle's moment of inertia from body frame coordinates (as stored by shape) to world frame.
math::AABB walberla::mesa_pd::getParticleAABB | ( | const size_t | particleIdx, |
const ParticleAccessor_T & | ac | ||
) |
|
inline |
Returns the "surface" velocity at a certain point given in world frame coordinates.
real_t walberla::mesa_pd::intersectionRatioBisection | ( | const size_t | particleIdx, |
const ParticleAccessor_T & | ac, | ||
const Vec3 & | rayOrigin, | ||
const Vec3 & | rayDirection, | ||
real_t | epsilon | ||
) |
|
inline |
bool walberla::mesa_pd::isPointInsideCylindricalBoundary | ( | const Vec3 & | point, |
const Vec3 & | cylindricalBoundaryPosition, | ||
const real_t | radius, | ||
const Vec3 & | axis | ||
) |
bool walberla::mesa_pd::isPointInsideHalfSpace | ( | const Vec3 & | point, |
const Vec3 & | halfSpacePosition, | ||
const Vec3 & | halfSpaceNormal | ||
) |
bool walberla::mesa_pd::isPointInsideSphere | ( | const Vec3 & | point, |
const Vec3 & | spherePosition, | ||
const real_t | sphereRadius | ||
) |
int walberla::mesa_pd::main | ( | int | argc, |
char ** | argv | ||
) |
[CreationHelper]
[Parameters]
[Parameters]
[BlockForest]
[BlockForest]
[DataStructures]
[DataStructures]
[Walls]
[Walls]
[Spheres]
[Spheres]
[Kernels]
[Kernels]
[Loop]
[Loop]
[PostProcessing]
[PostProcessing]
|
inline |
real_t walberla::mesa_pd::rayEllipsoidIntersectionRatioBF | ( | const Vec3 & | rayOriginBF, |
const Vec3 & | rayDirectionBF, | ||
const Vec3 & | ellipsoidSemiAxes | ||
) |
real_t walberla::mesa_pd::rayHalfSpaceIntersectionRatio | ( | const Vec3 & | rayOrigin, |
const Vec3 & | rayDirection, | ||
const Vec3 & | halfSpacePosition, | ||
const Vec3 & | halfSpaceNormal | ||
) |
real_t walberla::mesa_pd::raySphereIntersectionRatio | ( | const Vec3 & | rayOrigin, |
const Vec3 & | rayDirection, | ||
const Vec3 & | spherePosition, | ||
const real_t | sphereRadius | ||
) |
void walberla::mesa_pd::reduce | ( | data::Particle && | p, |
const ContactHistoryNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::reduce | ( | data::Particle && | p, |
const ForceTorqueNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::reduce | ( | data::Particle && | p, |
const HeatFluxNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::reduce | ( | data::Particle && | p, |
const HydrodynamicForceTorqueNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::reduce | ( | data::Particle && | p, |
const NumContactNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::reduce | ( | data::Particle && | p, |
const VelocityCorrectionNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::reset | ( | data::Particle & | ) |
void walberla::mesa_pd::reset< ContactHistoryNotification > | ( | data::Particle & | p | ) |
void walberla::mesa_pd::reset< ForceTorqueNotification > | ( | data::Particle & | p | ) |
void walberla::mesa_pd::reset< HeatFluxNotification > | ( | data::Particle & | p | ) |
void walberla::mesa_pd::reset< HydrodynamicForceTorqueNotification > | ( | data::Particle & | p | ) |
void walberla::mesa_pd::reset< NumContactNotification > | ( | data::Particle & | p | ) |
void walberla::mesa_pd::reset< VelocityCorrectionNotification > | ( | data::Particle & | p | ) |
void walberla::mesa_pd::reset< VelocityUpdateNotification > | ( | data::Particle & | p | ) |
|
inline |
|
inline |
|
inline |
void walberla::mesa_pd::tesselate | ( | const walberla::mesa_pd::data::ConvexPolyhedron & | shape, |
const walberla::mesa_pd::data::ParticleStorage::Particle & | particle, | ||
shared_ptr< MeshType > | mesh, | ||
std::vector< typename MeshType::VertexHandle > & | newVertices, | ||
std::vector< typename MeshType::FaceHandle > & | newFaces | ||
) |
|
inline |
|
inline |
Transformations between world frame (WF) and body frame (BF) coordinates.
|
inline |
|
inline |
void walberla::mesa_pd::update | ( | data::Particle && | p, |
const ForceTorqueNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::update | ( | data::Particle && | p, |
const HeatFluxNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::update | ( | data::Particle && | p, |
const HydrodynamicForceTorqueNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::update | ( | data::Particle && | p, |
const NumContactNotification::Parameters & | objparam | ||
) |
void walberla::mesa_pd::update | ( | data::Particle && | p, |
const VelocityUpdateNotification::Parameters & | objparam | ||
) |