Dear Support Team,

I would like to implement the following permittivity tensor as a plugin material.

source: https://www.degruyter.com/view/j/nanoph.2019.8.issue-8/nanoph-2019-0075/nanoph-2019-0075.xml Eq.1 and Eq.2

I know that Lumerical does not allow off-diagonal elements. Hence I applied a matrix transformation to diagonalize the permittivity as follows. (source: https://support.lumerical.com/hc/en-us/articles/360034915173)

The problem is that when the diagonalized tensor is converted into a time domain differential equation, an additional imaginary number “i” pops up as one of the coefficients in the equation.

Is there a workaround to get rid of the complex number, or should I incorporate the complex number into the plugin code (I am not sure if that is allowed. I mean can I import the “complex” library and convert every variable into complex variables, which would mean modifying the imaterialplugin.h file)?

But I guess the main algorithm calls the plugin functions separately for the real and imaginary parts of the field components. So there is no way to make the functions complex, right?

In case you wonder why I am not simply using a “sampled material” to import the dispersion, I am planning to have a time varying tensor (which cannot be done without custom material plugins) as a future work.

Best,