Coupling 1D-3D problem in FENICS

I was wondering whether any of you knew if FENICS has the capability to solve coupled 1D-3D problems that are linear non-iteratively? As an example, pipes embedded in a porous domain will provide pressure sources (at their terminal ends) to the Darcy equation. This can be solved with a linear solver if I can concatenate the finite element matrix with the Poiseuille flow in the pipes. I can’t quite see how to do this in FENICS, if it is at all indeed possible. Any suggestions, or directions towards more appropriate forums, would be massively appreciated.

There is a “mixed-dimension” branch of FEniCS, developed by @cdaversin, although I can’t find much information on usage via Google. There is also a library by @MiroK, called fenics_ii:

which has some demos and mentions “3d-2d-1d coupled problems” in the README, although I have not used the library myself.

2 Likes

The mixed-dimensional branch of Fenics is good option.

The mixed-dimensional branch has a demo of doing a 1D-3D problem here, but note that the it does not feature coupling.

You can find an example of a coupled 2D-2D problem that I had and solved here. There’s another issue that I ran into when coupling the problems over different domains. It, and the solution to it, are outlined here.

I have also looked into the multiphenics library, but I can’t speak for how well it works as I haven’t tried to work with it much.

1 Like

As mentioned in the previous post, the mixed-dimensional branch does not support 3D-1D coupling (yet). For now, it supports mixed-domains problems coupling equations on different domains with homogeneous dimension, and mixed-dimensional problems of codimension 1 at most (2D-1D, 3D-2D).
The mentioned demo illustrates the assembly and monolithic solve of an uncoupled 3D-1D problem.

You can find a demo for a 2D-1D coupled problem (2D Poisson problem + 1D Lagrange multiplier) in the Docker container ceciledc/fenics_mixed_dimensional (built from the mixed-dimensional branches).

1 Like

Thank you all very much, I will look into these links and see if I can get some sort of coupling working. It seems FEniCS isn’t really made for these sorts of problems (I’m relatively new to FE), and am just wondering why that may be the case? I would have thought coupled problems (of the sort I’m describing) would appear quite frequently in engineering/physics applications.

1 Like