Time stepping Maxwell's

Hi, I wanted to test time stepping, so I copied the code from the appendix in “A matrix-free Discontinuous Galerkin method for the time dependent Maxwell equations in unbounded domains” Bernard Kapidani and Joachim Schöberl https://arxiv.org/pdf/2002.08733.pdf

My run fails with this error:

NgException                               Traceback (most recent call last)
Cell In[35], line 10
      8 C_tr = BilinearForm(trialspace=fes_e, testspace=fes_h, geom_free = True)
      9 C_tr += 0.5*Cross(E.Other(bnd=2*Einc+E)-E,n)*h*dx(element_boundary=True)
---> 10 C_tr.Assemble()
     12 C_EH = emb_h @ (C_el.mat + Ctr.mat) @ emb_e.T
     13 C_e = C_EH.T - (emb_e @ emb_p.T)

NgException: FacetBilinearFormIntegrator can not assemble volumetric element matrices!

I notice that the penalty term is not included, as mentioned in the Appendix “For
ease of presentation we leave out the interior penalty terms.”. Is that related with the error message?
I have attached the code. maxwell_time_stepping.ipynb (30.9 KB)

We cannot do DG - terms (i.e. the .Other) in a geom_free manner. You have to compute facet-terms (e.g. mean-values) first.

Here are more examples:
https://docu.ngsolve.org/latest/i-tutorials/unit-5.5-cuda/wave_cuda.html

The ring-resonator includes the penalty term, you have the py-code here:

Joachim

1 Like