Open Boundary according to Succi

Hello,

does someone of you have experience with the Succi Boundary Condition for open boundaries (chapter 6.3)? I didn’t understand it competely. I tried to implement it in the propagation step, but after some timesteps my calculation became instable. First I calculated the density on the nodes one row before the outlet. With this density I calculated the velocity u_temp. Together with the velocity-profile I set at the inlet I calculated the propability r. Finally I multiplied the value r with f0-f8 in case of the last row.

I want to solve the poiseuille flow in a 2 dimensional case (d2q9) between two parallel plates. The problem I have is that the velocity profile at the outlet shows an increase of maybe 10 percent to the one I set at the inlet. This increase of velocity is existing only in the area close to the outlet. I have to say, that I didn’t set any velocity or peridic boundary conditions at the outlet. The intention is to be able to solve the poiseuille flow between non-parallel gaps (convergent gap) later on and to calculate the mass flow.

As always I would be very happy if someone has any ideas which could help me. If you have ideas how to solve the problem another way please let me know.

Regards
Sven

Hi,

I don’t know the boundary condition you are mentioning. But my guess is that your simulation might work with a classical Neumann condition for the velocity on the outlet. In this case, you impose that all components of the velocity on the outlet have a zero-gradient along the direction normal to the orientation of the outlet. In lattice Boltzmann, you can achieve this with a usual velocity condition for the outlet, such as Zou/He. The only thing to do is to update the value of the velocity on outlet boundary nodes at every iteration. To get the zero-gradient, you need to compute the velocity on the node right before the outlet node, and then impose this value as a boundary condition on the outlet node.

There exist other approaches, but this one might be simplest in your case, as you’ve obviously already implemented Zou/He.

Hi Jlatt,

I agree with you about the Succi-Boundary condition. After some studying some more literatur I decided for the Zou/He-Boundary condition. I already implemented some condition, but as far as I understood your suggestion I implemented a different condition. At least it seem to work, even if it may take some more timesteps. The code for the outlet nodes is as follows:


x = nx_lb
do z=1,nz_lb
        if (spalt_2D(x,z) == 2) then
            rho_outlet = f_2D(0,x,z) + f_2D(1,x,z) + f_2D(2,x,z) + f_2D(3,x,z) &
                       + f_2D(4,x,z) + f_2D(5,x,z) + f_2D(6,x,z) + f_2D(7,x,z) + f_2D(8,x,z) 
            u_outlet = (f_2D(4,x,z) + f_2D(0,x,z) + f_2D(2,x,z) &
                     + 2.d0 *(f_2D(1,x,z) + f_2D(5,x,z) + f_2D(8,x,z)))/rho_outlet - 1.d0
            
            f_2D(3,x,z) = f_2D(1,x,z) - 2.d0/3.d0 * rho_outlet * u_outlet
            f_2D(6,x,z) = f_2D(8,x,z) + 1.d0/2.d0 * (f_2D(4,x,z) - f_2D(2,x,z)) &
                        - 1.d0/6.d0 * u_outlet * rho_outlet
            f_2D(7,x,z) = f_2D(5,x,z) + 1.d0/2.d0 * (f_2D(2,x,z) - f_2D(4,x,z)) &
                        - 1.d0/6.d0 * u_outlet * rho_outlet

        end if
end do

The results are slightly better if I set rho_outlet = 1.d0

Dear friend,
I didn’t understand what condition you want to apply. Is it for fully developed boundary condition? if yes, that sounds wrong.
you should first explain which of u_outlet or Rho_outlet you wanna set.
Yours.