Detailed Description

Velocity verlet integration for all particles.

Velocity verlet integration is a two part kernel. preForceUpdate has to be called before the force calculation and postFroceUpdate afterwards. The integration is only complete when both functions are called. The integration is symplectic.

Wachs, A. Particle-scale computational approaches to model dry and saturated granular flows of non-Brownian, non-cohesive, and non-spherical rigid bodies. Acta Mech 230, 1919–1980 (2019). https://doi.org/10.1007/s00707-019-02389-9

This kernel requires the following particle accessor interface

const walberla::mesa_pd::Vec3& getPosition(const size_t idx) const;
void setPosition(const size_t idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::Vec3& getLinearVelocity(const size_t idx) const;
void setLinearVelocity(const size_t idx, const walberla::mesa_pd::Vec3& v);
const walberla::real_t& getInvMass(const size_t idx) const;
const walberla::mesa_pd::Vec3& getForce(const size_t idx) const;
void setForce(const size_t idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::Vec3& getOldForce(const size_t idx) const;
void setOldForce(const size_t idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::Rot3& getRotation(const size_t idx) const;
void setRotation(const size_t idx, const walberla::mesa_pd::Rot3& v);
const walberla::mesa_pd::Vec3& getAngularVelocity(const size_t idx) const;
void setAngularVelocity(const size_t idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::Mat3& getInvInertiaBF(const size_t idx) const;
const walberla::mesa_pd::Mat3& getInertiaBF(const size_t idx) const;
const walberla::mesa_pd::Vec3& getTorque(const size_t idx) const;
void setTorque(const size_t idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::Vec3& getOldTorque(const size_t idx) const;
void setOldTorque(const size_t idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::data::particle_flags::FlagT& getFlags(const size_t idx) const;

#include <VelocityVerlet.h>

Public Member Functions

 VelocityVerletPreForceUpdate (const real_t dt)
 
template<typename Accessor >
void operator() (const size_t i, Accessor &ac) const
 

Public Attributes

real_t dt_
 

Constructor & Destructor Documentation

◆ VelocityVerletPreForceUpdate()

walberla::mesa_pd::kernel::VelocityVerletPreForceUpdate::VelocityVerletPreForceUpdate ( const real_t  dt)
inline

Member Function Documentation

◆ operator()()

template<typename Accessor >
void walberla::mesa_pd::kernel::VelocityVerletPreForceUpdate::operator() ( const size_t  i,
Accessor &  ac 
) const
inline

Member Data Documentation

◆ dt_

real_t walberla::mesa_pd::kernel::VelocityVerletPreForceUpdate::dt_

The documentation for this class was generated from the following file:
float real_t
Definition: DataTypes.h:167
Definition: Flags.h:33