How to correctly use BoundaryID in conditionals
I am trying to move towards more complex meshes created with gmsh and converted to dgf.
Because I am generally enforcing Dirichlet constraints weakly I am not using the DirichletBC
construct, instead I am usually writing
conditionals describing the boundary in question. I have a .dgf mesh that (after some initial hickups) has the right boundary Ids, as confirmed per projectBoundaryIds method. Is there a recommended way to use BoundaryId in logical multipliers / conditionals? I tried something like
is_inflow_boundary = conditional(eq(BoundaryId(space),inflow_boundary_id), 1, 0)
and
my_boundary_terms*is_inflow_boundary*ds
but it is giving different / wrong results compared to manually defining is_inflow_boundary
from geometric conditionals. I saw that the changelog mentions multiplying with dune.ufl.BoundaryId(id) but just naively trying that didn't work, not sure if I used the right syntax.
I just wanted to briefly check with you before I investigate further. Best, Ben