Extrapolation Outflow Boundary
This MR adds an outflow boundary condition to lbmpy which mimics a zero normal gradient in density and velocity across the boundary. To achieve this, the required outbound populations of the boundary node are taken from the neighboring fluid node in the normal direction (nx, ny) :
f_{(nx, ny)}^i \leftarrow f_{(0,0)}^i
Of course, populations not streaming back into the domain are omitted. For example, for an outflow at max X in the D2Q9 lattice and the pull streaming pattern, these equations are obtained:
{{f}_{(1,0)}^{3}} \leftarrow {{f}_{(0,0)}^{3}},
{{f}_{(1,0)}^{5}} \leftarrow {{f}_{(0,0)}^{5}},
{{f}_{(1,0)}^{7}} \leftarrow {{f}_{(0,0)}^{7}}
The normal direction needs to be passed to the boundary object upon construction. This means that if your domain has multiple outflows on different sides or outflows across corners, seperate boundary objects are required for each direction (including the diagonal direction of the corner).