  On-site boundary conditions are often desired for lattice Boltzmann
simulations of fluid flow in complex geometries such as porous media or
microfluidic devices. The possibility to specify the exact position of the
boundary, independent of other simulation parameters, simplifies the analysis
of the system. For practical applications it should allow to freely specify the
direction of the flux, and it should be straight forward to implement in three
dimensions. Furthermore, especially for parallelized solvers it is of great
advantage if the boundary condition can be applied locally, involving only
information available on the current lattice site. We meet this need by
describing in detail how to transfer the approach suggested by Zou and He to a
D3Q19 lattice. The boundary condition acts locally, is independent of the
details of the relaxation process during collision and contains no artificial
slip. In particular, the case of an on-site no-slip boundary condition is
naturally included. We test the boundary condition in several setups and
confirm that it is capable to accurately model the velocity field up to second
order and does not contain any numerical slip.
