OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::particles::dynamics::EulerParticleDynamics< T, PARTICLETYPE, PCONDITION > Class Template Reference

Standard dynamics for particles. More...

#include <particleDynamicsBase.h>

+ Inheritance diagram for olb::particles::dynamics::EulerParticleDynamics< T, PARTICLETYPE, PCONDITION >:
+ Collaboration diagram for olb::particles::dynamics::EulerParticleDynamics< T, PARTICLETYPE, PCONDITION >:

Public Member Functions

 EulerParticleDynamics ()
 Constructor.
 
void process (Particle< T, PARTICLETYPE > &particle, T timeStepSize) override
 Procesisng step.
 
- Public Member Functions inherited from olb::particles::dynamics::ParticleDynamics< T, PARTICLETYPE >
virtual ~ParticleDynamics ()
 Destructor: virtual to enable inheritance.
 
std::string & getName ()
 read and write access to name
 
std::string const & getName () const
 read only access to name
 

Detailed Description

template<typename T, typename PARTICLETYPE, typename PCONDITION = conditions::active_particles>
class olb::particles::dynamics::EulerParticleDynamics< T, PARTICLETYPE, PCONDITION >

Standard dynamics for particles.

Definition at line 271 of file particleDynamicsBase.h.

Constructor & Destructor Documentation

◆ EulerParticleDynamics()

template<typename T , typename PARTICLETYPE , typename PCONDITION >
olb::particles::dynamics::EulerParticleDynamics< T, PARTICLETYPE, PCONDITION >::EulerParticleDynamics ( )

Constructor.

Definition at line 615 of file particleDynamicsBase.hh.

616{
617 this->getName() = "EulerParticleDynamics";
618}
std::string & getName()
read and write access to name

References olb::getName().

+ Here is the call graph for this function:

Member Function Documentation

◆ process()

template<typename T , typename PARTICLETYPE , typename PCONDITION >
void olb::particles::dynamics::EulerParticleDynamics< T, PARTICLETYPE, PCONDITION >::process ( Particle< T, PARTICLETYPE > & particle,
T timeStepSize )
overridevirtual

Procesisng step.

Implements olb::particles::dynamics::ParticleDynamics< T, PARTICLETYPE >.

Reimplemented in olb::particles::dynamics::EulerParticleDynamicsMaterialAwareWallCapture< T, PARTICLETYPE, PCONDITION >.

Definition at line 635 of file particleDynamicsBase.hh.

637{
638 using namespace particles::access;
639 //Check for particle condition
641 //Calculate acceleration
642 auto acceleration = getAcceleration( particle );
643 //Check for angular components
644 if constexpr ( providesAngle<PARTICLETYPE>() ) {
645 //Calculate angular acceleration
646 auto angularAcceleration = getAngAcceleration( particle );
647 //Euler algorithm
649 particle, timeStepSize, acceleration, angularAcceleration );
650 //Check if rotation matrix provided
651 if constexpr ( providesRotationMatrix<PARTICLETYPE>() ) {
652 //Update rotation matrix
653 updateRotationMatrix( particle );
654 }
655 }
656 else {
657 //Euler algorithm without rotation
659 timeStepSize, acceleration );
660 }
661 }); //doWhenMeetingCondition<T,PARTICLETYPE,PCONDITION>
662}
Vector< T, utilities::dimensions::convert< PARTICLETYPE::d >::rotation > getAngAcceleration(Particle< T, PARTICLETYPE > particle)
Vector< T, PARTICLETYPE::d > getAcceleration(Particle< T, PARTICLETYPE > particle)
void eulerIntegration(Particle< T, PARTICLETYPE > &particle, T delTime, Vector< T, PARTICLETYPE::d > acceleration, Vector< T, utilities::dimensions::convert< PARTICLETYPE::d >::rotation > angularAcceleration)
void eulerIntegrationTranslation(Particle< T, PARTICLETYPE > &particle, T delTime, Vector< T, PARTICLETYPE::d > acceleration)
Euler integration.
void updateRotationMatrix(Particle< T, PARTICLETYPE > &particle)
void doWhenMeetingCondition(Particle< T, PARTICLETYPE > &particle, F f)
Definition lambdaLoops.h:55

References olb::particles::doWhenMeetingCondition(), olb::particles::dynamics::eulerIntegration(), olb::particles::dynamics::eulerIntegrationTranslation(), and olb::particles::dynamics::updateRotationMatrix().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

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