BL normal smoothing in 2D
In 2D, this checks for any BL normal intersection (and beyond) and fixes them by smoothing them. It is an iterative process so a maximum number of iterations was set. It's able to deal with multiple intersections and with very sharp features of scale much smaller than the boundary layer.