NanoComp / meep

free finite-difference time-domain (FDTD) software for electromagnetic simulations
GNU General Public License v2.0
1.16k stars 594 forks source link

Anisotropic MaterialGrid #2830

Closed kdotom closed 1 month ago

kdotom commented 1 month ago

The documentation mentions that for MaterialGrid, with frequency-independent isotropic ε, epsilon_diag and epsilon_offdiag are interpolated. Is this still the case or are anisotropic materials now handled as fully anisotropic?

stevengj commented 1 month ago

It sounds like you are confusing interpolation with anisotropy?

The material grid linearly interpolates between two materials.

If the materials are anisotropic, e.g. 3x3 matrices $\varepsilon_1$ and $\varepsilon_2$, then the material-grid results in anistotropic tensors, e.g. a grid value of $u \in [0,1]$ is converted to an interpolated material $\varepsilon = (1-u) \varepsilon_1 + u \varepsilon_2$, which is fully anisotropic. This is done in the code here: https://github.com/NanoComp/meep/blob/176eae6b4796049941530c54c29dc363c74770af/src/meepgeom.cpp#L578-L580