Floquet Absorbing Boundary Condition

Hello everyone,

I’m trying to understand how to implement in fenics 2019.2.0dev the so-called Floquet Absorbing Boundary condition, for simulating periodic media (section 13.2 of the third edition of The Finite Element Method in Electromagnetics by Jian-Ming Jin).

For a medium periodic along one-dimension (that I’ll call x) his condition is nothing but an integral boundary condition on the input port (y = y_1), and results in a weak form similar to this one:

\begin{aligned} F(E)= &\dots + \int_{T_x} \left[ \gamma(E)\tilde E(x, y)\right]_{y=y_{1}} \mathrm{~d} x = \\ & \dots + \int_{T_x} \left[ \int_{T_x} E(x',y)e^{jk_{xm}x'}\mathrm{d}x'\tilde E\right]_{y=y_{1}} \mathrm{~d} x \end{aligned}

where E is the electric field that I want to simulate over the periodic medium, and \tilde E is the test function. Therefore, I have an integral condition \gamma(E) = \int_{T_x} E(x',y)e^{jk_{xm}x'}\mathrm{d}x' inside my weak form integral. Another similar condition apply to the output port (y = y_2), and these two conditions, together with the Floquet Periodic Boundary Conditions on the other boundaries, guarantee the well-posedness of the problem.

My question is:

How can I apply the \gamma(E) integral condition in fenics 2019.2.0dev? Is there any mathematical trick for writing the weak form into a FEniCS-friendly one?