240 likes | 557 Views
A Few More LBM Boundary Conditions. Key paper:. Zou, Q. and X. He, 1997, On pressure and velocity boundary conditions for the lattice Boltzmann BGK model, Phys. Fluids 9, 1591-1598. . Choices. Specify density (i.e., pressure via EOS) Velocity computed Dirichlet Specify velocity
E N D
Key paper: • Zou, Q. and X. He, 1997, On pressure and velocity boundary conditions for the lattice Boltzmann BGK model, Phys. Fluids 9, 1591-1598.
Choices • Specify density (i.e., pressure via EOS) • Velocity computed • Dirichlet • Specify velocity • Density/pressure computed • Von Neumann • Lots of temporal/spatial flexibility
D2Q9 BCs • For example: • f(4,7,8) = function of f(1,2,3,5,6) and BC type Out In
Velocity/Flux BCs • Need to solve for r, f4, f7, f8 • Need 4 equations • The macroscopic density formula is one equation:
Velocity/Flux BCs • The macroscopic velocity formula gives two equations: • x-direction: • y-direction: Components of ea are all unit vectors Assuming ux = 0
Velocity/Flux BCs • Finally, we assume bounceback of f perpendicular to boundary for a fourth equation:
Velocity/Flux BCs • Two equations have the directional density unknowns f4, f7 and f8 in common, so rewrite them with those variables on the left hand side:
Velocity/Flux BCs • Equating them gives: • Solving for r:
Velocity/Flux BCs • Solving the bounceback equation for f4: • In detail, part of this is:
Velocity/Flux BCs • Solving …:
Velocity/Flux BCs • Solving …:
Velocity/Flux BCs • // Zou and He velocity BCs on north side. • for( i=0; i<ni; i++) • { • fi = ftemp[nj-1][i]; • rho0 = ( fi[0] + fi[1] + fi[3] • + 2.*( fi[2] + fi[5] + fi[6])) / ( 1. + uy0); • ru = rho0*uy0; • fi[4] = fi[2] - (2./3.)*ru; • fi[7] = fi[5] - (1./6.)*ru + (1./2.)*( fi[1]-fi[3]); • fi[8] = fi[6] - (1./6.)*ru + (1./2.)*( fi[3]-fi[1]); • }
Pressure/Density Boundaries • Dirichlet boundary conditions constrain the pressure/density at the boundaries • Solution is closely related to that for velocity boundaries • A density r0 is specified and velocity is computed • Specifying density is equivalent to specifying pressure since there is an equation of state (EOS) relating them directly • For single component D2Q9 model, the relationship is simply P = RTr with RT = 1/3. • More complex EOS applies to single component multiphase models • We assume that velocity tangent to the boundary is zero and solve for the component of velocity normal to the boundary.
Pressure/Density Boundaries • Assume that velocity tangent to the boundary is zero and solve for the component of velocity normal to the boundary • Need to solve for v, f4, f7 and f8
Pressure/Density Boundaries • // Zou and He pressure boundary on north side. • for( i=0; i<ni; i++) • { • fi = ftemp[nj-1][i]; • uy0 = -1. + ( fi[0] + fi[1] + fi[3] • + 2.*( fi[2] + fi[5] + fi[6])) / rho0; • ru = rho0*uy0; • fi[4] = fi[2] - (2./3.)*ru; • fi[7] = fi[5] - (1./6.)*ru + (1./2.)*( fi[1]-fi[3]); • fi[8] = fi[6] - (1./6.)*ru + (1./2.)*( fi[3]-fi[1]); • }
Exercise • Create a new version of your code that includes constant pressure boundaries at x = 0 and x = Lx. • Plot the observations and expected Poiseuille velocity profile on the same graph