### Multimesh with different FunctionSpaces on parts

504

views

2

Hello everyone,

is it possible to define different FunctionSpaces on different parts of a MultiMesh and assemble a form which would have different contributions depending on the part ? Something like :

Thank you in advance for your help

is it possible to define different FunctionSpaces on different parts of a MultiMesh and assemble a form which would have different contributions depending on the part ? Something like :

```
V1 = FunctionSpace(mesh1,"CG",1)
V2 = VectorFunctionSpace(mesh2,"CG",1)
# definition of some Test (u1_,u2_) and Trial (du1,du2) Functions on Multimesh consisting of mesh1 + mesh2 and corresponding measures dx1 and dx2
a = dot(grad(u_1),grad(du1))*dx1 + inner(sym(grad(u2_)),sym(grad(du2_)))*dx2
+ some interface condition
```

I have the impression that the PDE must be the same on all parts of the MultiMesh, isn't there a way to write different PDEs on different parts and connect them with a proper interface condition (eg. fluid-structure interaction or other multiphysics problems) ? Basically, I would like to avoid defining a very general FunctionSpace for the whole mesh and then set to 0 every unnecessary dof in the corresponding part.Thank you in advance for your help

Community: FEniCS Project

The above suggestion works if you have Dirichlet BCs, but if you have Neumann BCs you may need to use the Lagrange interpolation and multiple meshes. As your solution along the interface is defined internally, I don't see how you can couple the two equations without solving via iteration; I can immediately see how to set flux conditions using the LagrangeInterpolator, so this may preferred. There may also exist a way to set flux boundaries along internal elements, but this may be tricky to program as you'll need to know which side of a face you define from.

Another advantage of multi-mesh Lagrange-interpolation approach is the fact that you can easily define the geometry along the interface.

Another advantage of multi-mesh Lagrange-interpolation approach is the fact that you can easily define the geometry along the interface.

written
10 months ago by
pf4d

Also, you might be interested in this:

https://www.youtube.com/watch?v=-79Xama2vcA

and actually, I think this is exactly what you need:

https://github.com/FEniCS/dolfin/blob/master/demo/undocumented/multimesh-stokes/python/demo_multimesh-stokes.py

and a very nice paper:

https://arxiv.org/abs/1610.02277

hope that helps!

https://www.youtube.com/watch?v=-79Xama2vcA

and actually, I think this is exactly what you need:

https://github.com/FEniCS/dolfin/blob/master/demo/undocumented/multimesh-stokes/python/demo_multimesh-stokes.py

and a very nice paper:

https://arxiv.org/abs/1610.02277

hope that helps!

written
10 months ago by
pf4d

Please login to add an answer/comment or follow this question.

You could solve via mixed function space formulation or fixed-point iteration, I suspect that Newton's method may work better.

Otherwise, you could use non-matching meshes and use LagrangeInterpolator to interpolate between solutions.