[firedrake] Applying Dirichlet Boundary conditions in certain regions
Justin Chang
jychang48 at gmail.com
Thu Nov 5 19:33:00 GMT 2015
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
-------------- next part --------------
HTML attachment scrubbed and removed
More information about the firedrake
mailing list