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

Analytical particle dynamics only considering translation (ignoring rotation) More...

#include <particleDynamicsBase.h>

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

Public Member Functions

 AnalyticalParticleDynamicsTranslationOnly ()
 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::AnalyticalParticleDynamicsTranslationOnly< T, PARTICLETYPE, PCONDITION >

Analytical particle dynamics only considering translation (ignoring rotation)

Definition at line 311 of file particleDynamicsBase.h.

Constructor & Destructor Documentation

◆ AnalyticalParticleDynamicsTranslationOnly()

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

Constructor.

Definition at line 839 of file particleDynamicsBase.hh.

840{
841
842 this->getName() = "AnalyticalParticleDynamicsTranslationOnly";
843}
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::AnalyticalParticleDynamicsTranslationOnly< 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::AnalyticalParticleDynamicsTranslationOnlyMaterialAwareWallCapture< T, PARTICLETYPE, PCONDITION >.

Definition at line 846 of file particleDynamicsBase.hh.

848{
849 using namespace particles::access;
850 //Check for particle condition
852 //Calculate acceleration
853 auto acceleration = getAcceleration( particle );
854 //Check for angular components
855 if constexpr ( providesAngle<PARTICLETYPE>() ) {
856 //Calculate angular acceleration
857 auto angularAcceleration = getAngAcceleration( particle );
858 //Euler algorithm
860 particle, timeStepSize, acceleration, angularAcceleration );
861 //Check if rotation matrix provided
862 if constexpr ( providesRotationMatrix<PARTICLETYPE>() ) {
863 //Update rotation matrix
864 updateRotationMatrix( particle );
865 }
866 }
867 else {
868 //Euler algorithm without rotation
869 particles::dynamics::analyticalTranslation( particle, acceleration,
870 timeStepSize, particle. template getField<descriptors::MOBILITY, descriptors::FLUIDVEL>());
871 }
872 }); //doWhenMeetingCondition<T,PARTICLETYPE,PCONDITION>
873}
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 analyticalTranslation(Particle< T, PARTICLETYPE > &particle, Vector< T, PARTICLETYPE::d > acceleration, T delTime, Vector< T, PARTICLETYPE::d > fluid_vel)
void updateRotationMatrix(Particle< T, PARTICLETYPE > &particle)
void doWhenMeetingCondition(Particle< T, PARTICLETYPE > &particle, F f)
Definition lambdaLoops.h:55

References olb::particles::dynamics::analyticalTranslation(), olb::particles::doWhenMeetingCondition(), olb::particles::dynamics::eulerIntegration(), 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: