This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Non-local boundary condition

0 votes

Hello,

I am considering a two-dimensional PDE problem. One of the boundary conditions (BC) is relating the derivative at one part of the boundary $\Gamma_{1}$ to the value of the unknown function at another part of the boundary, $\Gamma_{2}$:

$$c \left.\frac{\partial u(x,y)}{\partial x}\right|_{(x,y) \in \Gamma_{1}} =\left. u(x,y)\right|_{(x,y) \in \Gamma_{2}},$$

where $ c$ is a constant. On the remaining parts of the boundary, I have standard Dirichlet or Neumann BCs.

Let us assume that the problem is well-posed. My problem then is that I do not know how to implement this BC in FEniCS.

Many thanks!

asked Nov 19, 2014 by wilhelmbraun FEniCS User (2,070 points)

This is not a FEniCS problem. In your formula,
$$c \left.\frac{\partial u(x,y)}{\partial x}\right|_{(x,y) \in \Gamma_{1}} =\left. u(x,y)\right|_{(x,y) \in \Gamma_{2}}$$
the point $(x,y)$ on boundary $\Gamma_{1}$ can never be another point on boundary $\Gamma_{2}$, so how can you make them equal? The problem is not clear enough.

I think it does make sense. You can think of both sides of the equations as functions of x and y, so it is not a problem to make them equal.
A standard Neumann BC would e.g. choose

$$\left.u(x,y)\right|_{(x,y) \in \Gamma_{2}} = f(x,y).$$

In my example, I choose

$$f(x,y) = c \left.\frac{\partial u(x,y)}{\partial x}\right|_{(x,y) \in \Gamma_{1}}.$$

Best, Wilhelm

...