Cylindrical coordinates, Axisymmetry, 3D tensor material

Dear All,

I would like to explore the possibility to implement an open-source fem code to analyze wave propagation inside a plasma.

To do this, I first need to verify several features in ngsolve:

  1. a 2D axisymmetric electromagnetic maxwell problem,
  2. with a 3D anisotropic and non-symmetric dielectric tensor.

As far as I understand, the non-symmetric and anisotropic tensor (2) should not be a challenge. Although I could not get this far yet.

For (1) the axisymmetry, I understand that I need to implement the axisymmetric weak form of my problem myself. The typical problem to be solved can be found for example in the RF module user guide of COMSL (In-plane Hybrid-Mode Waves).

I settle to test this approach with a simpler case of 2D wave mode propagation following
E(x,y,z) = E(x,y) * exp(-i kz z)
where the wave equation is
(\nabla_{xy}-i kz \unit(z)) \cross [(1/mu)*(\nabla_{xy}-i kz \unit(z)) \cross E(x,y)] - om^2 epsilon E = 0
I find a weak form like
[(1/mu) * (\nabla_{xy}-i kz \unit(z)) \cross F] , [(\nabla_{xy}-i kz \unit(z)) \cross E] - om^2 (epsilon E, F) = (f,F)

My first problem is that I do not know how to smartly implement the (\nabla_{xy}-i kz \unit(z)) operator in ngsolve. Do you have an idea?

My second struggle is that I was able to implement a simple Maxwell formulation on a 2D mesh with 2 dimensions, but when I switch the 2D mesh to handle 3 dimensions nothing is working anymore (please see the attached file).
Here I’m probably doing a big error, sorry in advance, I’m a beginner.

Thanking you in advance for your help,

Test_vac.ipynb (7.1 KB)