[firedrake] Internal dirichlet boundary conditions

Lawrence Mitchell wencel at gmail.com
Fri Mar 5 11:16:50 GMT 2021


Hi Thomas,


> On 5 Mar 2021, at 10:35, Thomas Ranner <T.Ranner at leeds.ac.uk> wrote:
> 
> I am interesting in solving elliptic problems where there is a 
> Dirichlet condition on internal nodes. It seems like this isn't 
> possible with the default DirichletBC class in firedrake - is that 
> right and is there a nice work around?
> 
> My example is to do with remeshing and moving meshes. Consider the 
> situation from 
> https://www.firedrakeproject.org/demos/immersed_fem.py.html and 
> suppose the want to recompute the mesh coordinates by solving
> 
> -Delta x = 0 in Omega_{1,2}
> x = x_g on the interface and outside boundary
> 
> where x_g is the parametrisation on the interface which we want to 
> be exactly given.
> 
> We have access to all the tags but this information doesn't change 
> the solution. A couple of alternatives:
> - use a Nitsche-type approach - this does ok but I would prefer to 
>  not have this extra parameter unnecessarily.
> - we can find the nodes which we are on the interface but I don't 
>  know how to change the matrices/vectors to use this info.


This is the subject of this issue:

https://github.com/firedrakeproject/firedrake/issues/1661

There's some code that works there, but needs a little generalisation to support all the modes that firedrake has for applying dirichlet bcs.

We can help getting this merged if you'd like to have a go.

Lawrence


More information about the firedrake mailing list