Multimesh computational domain should be either union of meshes or background
Issue #698
new
The multimesh implementation assumes that the computational domain is the union of all meshes. In some cases it is instead natural to have the computational domain set to the background mesh. This will require implementation of weak boundary conditions on the boundary of the background mesh (fictitious domain style). This is not more complex than what we already have implemented but will require defining a new UFL integral.
Comments (10)
-
-
- removed milestone
Removing milestone: 1.7 (automated comment)
-
-
-
assigned issue to
-
assigned issue to
-
- changed milestone to 2017.1
-
- changed title to Multimesh computational domain should be either union of meshes or background
- edited description
-
- changed component to multimesh
-
- changed milestone to 2017.2
-
- changed milestone to 2018.1
-
- marked as enhancement
This is more of an enhancement/feature request (a very good one) than a bug.
- Log in to comment
I think there are two basic cases that need to be distinguished:
The computational domain is the union of all meshes.
The computational domain is the background mesh (part 0).
In the first case, the
on_boundary
argument for theinside()
function is overridden (seeMultiMeshDirichletBC::MultiMeshSubDomain::inside
indolfin/fem/MultiMeshDirichletBC.cpp
).In the second case, the logic in
MultiMeshDirichletBC.cpp
somewhat buggy. @carllundholm has a fix for this that works for one of the applications we are running but it needs to be merged in.