Skip to content

Particle – Wall Interaction

  • This topic has 3 replies, 2 voices, and was last updated 1 year ago by jan.
Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #7303
    Henderson_C
    Participant

    Dear OpenLB commuminty,

    I was wondering how OpenLB works with a moving solid particle interaction with fixed wall? In my simulations, once the particle collides with wall, it deforms and does not bounce back. In other words it sticks and it gets consumed by the wall. I am using bounce-back boundary conditions for the wall surface in OpenLB-1.5v.

    Your response is appreciated.

    #7304
    jan
    Participant

    Dear Henderson,

    As of OpenLB 1.5, no explicit particle-wall and particle-particle interactions are supported. All coupling is done through the fluid, but as you have noticed, this is not sufficient in many cases. That’s why we have developed a contact model that works for resolved convex particles (10.1016/j.partic.2022.12.005), which will be included in the next release.

    Best regards,
    Jan

    #7306
    Henderson_C
    Participant

    Dear Jan,

    Its unfortunate to hear that. Is there a way to change the particle parameters such as the acceleration or the position during the simulations using a certain function?

    Regards,

    #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

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.