I’m looking at solving a coupled Stokes-Darcy problem. I’m looking at implementing the interface condition and found this previous discussion about implementing this interface condition:
Is this still the best way to implement an interface condition? Or would I be able to use something like:
def InterfaceBFI(term, **args):
return SymbolicBFI(term.Compile(), BND, definedon=mesh.Boundaries("interface"), **args)
Based on the discussion in the link, this wouldn’t have worked last year, but was wondering if there was any progress on this front.
I think it is not working by now, but we are not far away …
(A) I would use a hybrid version, with an additional variable (approximating the state) on the interface. Either H1(definedonbound=…), or better FacetFESpace(definedonbound=…), what is currently missing. This does not need additional matrix entries (no dgjumps flag required).
(B) I would use skeleton-DG, on BND, for integration. We have to tweak it to evaluate on both sides of the interface. Have to think how we can add this, without breaking backward compatibility.
Christoph, Michael, what do you think ?
Thanks. I was trying to extend some of the HDG work we’ve been doing for Stokes/Navier-Stokes to coupled problems, so I indeed have a function in the FacetFESpace. Currently I have a space
M = FacetFESpace(mesh, order = 2, dirichlet="wallM1", definedon=mesh.Materials("material1"))
and was trying to add an integral of u*v (with u and v both in M) on the interface between two materials. I wasn’t sure if the integral is indeed being enforced correctly by the InterfaceBFI of my previous post. I’ll try using your suggestion of introducing an additional variable in H1.
Here is the (inefficient) implementation of Christoph’s idea on (manually) treating the interface term for the HDG method discussed in
Thanks for the code! I was indeed trying to implement the test case from section 4 from your paper using a slightly different discretization.