Detailed Description

Semi-implicit Euler integration for position and velocity.

This kernel requires the following particle accessor interface

const walberla::mesa_pd::Vec3& getPosition(const size_t p_idx) const;
void setPosition(const size_t p_idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::Vec3& getLinearVelocity(const size_t p_idx) const;
void setLinearVelocity(const size_t p_idx, const walberla::mesa_pd::Vec3& v);
const walberla::real_t& getInvMass(const size_t p_idx) const;
const walberla::mesa_pd::Vec3& getForce(const size_t p_idx) const;
void setForce(const size_t p_idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::data::particle_flags::FlagT& getFlags(const size_t p_idx) const;
const walberla::mesa_pd::Rot3& getRotation(const size_t p_idx) const;
void setRotation(const size_t p_idx, const walberla::mesa_pd::Rot3& v);
const walberla::mesa_pd::Vec3& getAngularVelocity(const size_t p_idx) const;
void setAngularVelocity(const size_t p_idx, const walberla::mesa_pd::Vec3& v);
const walberla::mesa_pd::Mat3& getInvInertiaBF(const size_t p_idx) const;
const walberla::mesa_pd::Mat3& getInertiaBF(const size_t p_idx) const;
const walberla::mesa_pd::Vec3& getTorque(const size_t p_idx) const;
void setTorque(const size_t p_idx, const walberla::mesa_pd::Vec3& v);
Precondition
All forces and torques acting on the particles have to be set.
Postcondition
All forces and torques are reset to 0.

#include <SemiImplicitEuler.h>

Public Member Functions

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

Private Attributes

real_t dt_ = real_t(0.0)
 

Constructor & Destructor Documentation

◆ SemiImplicitEuler()

walberla::mesa_pd::kernel::SemiImplicitEuler::SemiImplicitEuler ( const real_t  dt)
inlineexplicit

Member Function Documentation

◆ operator()()

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

Member Data Documentation

◆ dt_

real_t walberla::mesa_pd::kernel::SemiImplicitEuler::dt_ = real_t(0.0)
private

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