Periodic boundary conditions between non conforming subdomamains and different function spaces

Dear community,

I’m interested in solving a problem over a domain \Omega = \Omega_1 \cup \Omega_2 \cup \Omega_3. This creates a boundary \Gamma=\Gamma_L \cup \Gamma_T \cup \Gamma_R \cup \Gamma_B and some shared interfaces \Gamma_I = \Gamma_{I_{1}} \cup \Gamma_{I_{2}} (see image below).

I want to impose periodic boundary conditions between \Gamma_B and \Gamma_T. I have seen that dolfinx_mpc can handle this, but the tricky part in my problem is that \Omega_1 and \Omega_3 are disjoint.

I’ve seen a similar problem here Create constraint between two bodies that are not in contact, but even if subdomains are disjoint there as well, they use a global Function Space. In my case, I have a function space V1 for \Omega_1, V2 for \Omega_2 and V3 for \Omega_3.

Does anybody know if dolfinx_mpc can still handle this?

I can post a minimal code if needed, but I wanted to know first if this is the right direction.

Thanks in advance.

For DOLFINx MPC to work, you would have to concatenate the three domains into a single domain.

This is for instance done for non-conforming cubes in:

that is used for non-conforming contact between two bodies in: