Hi all, I think I asked a similar question a couple months ago, but say I want to solve the advection equation. From what I understand, boundary conditions should only be applied in the "upstream" regions (i.e., regions where the velocity is flowing into the domain). Say on a unit cube, i know that on plane x-y at z = 0, only the quadrants (x[0] < 0.5 && x[1] < 0.5) and (x[0] >= 0.5 && x[1] >= 0.5) will have the influx and the other two are either zero flux or have outflux. Last time I asked how to constrain a point on the bottom left corner, and I think one of you (David?) said to use something like: class PointDirichletBC(DirichletBC): @utils.cached_property def nodes(self): # Find the array of coordinate values. x = self.function_space().mesh().coordinates.dat.data_ro # Find the location of the zero rows in that return np.where(~x.any(axis=1))[0] I am guessing that I would need to modify that last line somehow so that it . What routines would I need in order to achieve this? Or is there a better of doing this? Thanks, Justin