Detailed Description

Kernel performing integration of the particles after the HCSITS iteration is done.

Call this kernel on all particles j to integrate them by a timestep of size dt. The Speed Limiter limits the number of body radii, a particle can travel in one timestep. The speed limit factor defines a number of radii that are allowed in a timestep, e.g. a factor of 1 means, that a particle can only travel one time its radius in each timestep.

#include <IntegrateParticlesHCSITS.h>

Public Member Functions

 IntegrateParticlesHCSITS ()
 
const bool & getSpeedLimiterActive () const
 
void setSpeedLimiterActive (bool v)
 
const real_tgetSpeedLimitFactor () const
 
void setSpeedLimitFactor (real_t v)
 
template<typename PAccessor >
void operator() (size_t j, PAccessor &ac, real_t dt)
 
template<typename PAccessor >
void integratePositions (PAccessor &ac, size_t body, Vec3 v, Vec3 w, real_t dt) const
 Time integration of the position and orientation of a given body. More...
 

Private Attributes

bool speedLimiterActive_
 
real_t speedLimitFactor_
 

Constructor & Destructor Documentation

◆ IntegrateParticlesHCSITS()

walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::IntegrateParticlesHCSITS ( )
inline

Member Function Documentation

◆ getSpeedLimiterActive()

const bool& walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::getSpeedLimiterActive ( ) const
inline

◆ getSpeedLimitFactor()

const real_t& walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::getSpeedLimitFactor ( ) const
inline

◆ integratePositions()

template<typename PAccessor >
void walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::integratePositions ( PAccessor &  ac,
size_t  body,
Vec3  v,
Vec3  w,
real_t  dt 
) const
inline

Time integration of the position and orientation of a given body.

Parameters
bodyThe body whose position and orientation to time integrate
vThe linear velocity to use for time integration of the position.
wThe angular velocity to use for time integration of the orientation.
dtThe time step size.
Returns
void

Performs an Euler time integration of the positions of the given body. Velocities are damped if indicated by the settings and stored back in the body properties. The bounding box is recalculated and it is redetermined whether the body is awake or not. Also the data structure tracking the contacts attached to the body are cleared and

◆ operator()()

template<typename PAccessor >
void walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::operator() ( size_t  j,
PAccessor &  ac,
real_t  dt 
)
inline

◆ setSpeedLimiterActive()

void walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::setSpeedLimiterActive ( bool  v)
inline

◆ setSpeedLimitFactor()

void walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::setSpeedLimitFactor ( real_t  v)
inline

Member Data Documentation

◆ speedLimiterActive_

bool walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::speedLimiterActive_
private

◆ speedLimitFactor_

real_t walberla::mesa_pd::kernel::IntegrateParticlesHCSITS::speedLimitFactor_
private

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