Reply To: Particle – Wall Interaction
OpenLB – Open Source Lattice Boltzmann Code › Forums › on OpenLB › General Topics › Particle – Wall Interaction › Reply To: Particle – Wall Interaction
March 15, 2023 at 6:03 pm
#7307
jan
Participant
Dear Henderson,
Yes, you can change all the fields provided by the PARTICLETYPE
used. The following simple example iterates over all particles and gets and sets the position, velocity and force field. The latter corresponds to the acceleration of the particle according to Newton’s second law of motion.
constexpr unsigned D = 3; // or 2 depending on your setup
using namespace descriptors;
// Iterate over all particles
for(int iP = 0; iP < particleSystem.size(); ++iP) {
// Get the particle
auto particle = particleSystem.get(iP);
// Get and set position
Vector<T,D> position = particle.template getField<GENERAL,POSITION>();
particle.template setField<GENERAL,POSITION>( position );
// Get and set velocity
Vector<T,D> velocity = particle.template getField<MOBILITY,VELOCITY>();
particle.template setField<MOBILITY,VELOCITY>( velocity );
// Get and set force
Vector<T,D> force = particle.template getField<FORCING,FORCE>();
particle.template setField<FORCING,FORCE>( force );
}
Best regards,
Jan