You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It appears to me that MPB's performance in resolving eigenvalues is severely impacted when using a triangular lattice.
For my research endeavors, I need to examine the eigenmodes of photonic crystals with rotational symmetry at the high symmetry points of the BZ, and determine the "orbital" they behave like. To extrapolate this information, I look at the symmetries of the fields, as well as the eigenvalue differences.
Due to the rotational symmetry, I expect the Hamiltonian to take a particular block diagonal form with the blocks being the irreducible representation of the point group at that high symmetry point. Eigenmodes belonging to the same such block, should have the exact same energy. In practice, I would expect the difference of such eigenvalues to not be exactly zero, but rather scale with the numerical precision (tolerance parameter) of the ModeSolver.
In my many trials, I always failed to observe proper scaling with the tolerance or the resolution parameters in the triangular lattice case. When switching to a rectangular lattice (with a reduced C_4v point group), I see the difference in eigenvalues quickly reach even beyond what I specify in the tolerance parameter, becoming essentially noise at ~1E-16 order.
In the images below, I perform some analysis on the structure from the tri-rods.py example, looking at the eigenvalue differences between consecutive modes and looking at the spatial profile of the pairs of fields. I believe this is related to issue #126, but since I use an internal geometric construction function (circle object), the first condition mentioned in the issue is not present.
It strikes me as very odd how such poor performance occurs even at structures in the provided examples. I also wonder whether there is (present or planned) functionality to enforce additional symmetry in the dielectric distribution of a crystal.
Images
Here are a few images to illustrate my point:
Eigenvalue Differences
First I plot the log10 of the eigenvalue differences (eig_val[i+1] - eig_val[i]). The high symmetry point is denoted at each row, while the band i is the column.
The TE modes are shown in red, while the TM modes are shown in green.
Rectangular
We see that there are clearly separated white spots, indicating the degenerate eigenvalues. These will quickly drop to 0 as the tolerance is increased.
Triangular
We see that there are white spots, but most of them are not very bright. The eigenvalue difference is hard to resolve, and thus fewer degenerate pairs are found.
Eigenmode Pairs
Then, I plot the real part of the spatial profile of the pairs of fields as a two-image column, and indicate their high symmetry point and band number at the bottom right.
TE modes are draw in red-blue, while TM modes are drawn in green-pink.
Rectangular
I define pairs to be degenerate when their eigenvalue difference is < 1E-5. A lot of degenerate pairs are found, although not all originate because of symmetry. About half of the TE mode and most TM modes pairs belong to the same orbital, as expected.
Triangular
I define pairs to be degenerate when their eigenvalue difference is < 1E-4, because of the reduced clarity. Overall, despite the relaxed threshold, less degeneracies are found, The vast majority of the TE mode pairs are do not belong in orbitals that can have pairs. About half of the TM mode pairs are due to symmetry and correctly found.
The text was updated successfully, but these errors were encountered:
Description
It appears to me that MPB's performance in resolving eigenvalues is severely impacted when using a triangular lattice.
For my research endeavors, I need to examine the eigenmodes of photonic crystals with rotational symmetry at the high symmetry points of the BZ, and determine the "orbital" they behave like. To extrapolate this information, I look at the symmetries of the fields, as well as the eigenvalue differences.
Due to the rotational symmetry, I expect the Hamiltonian to take a particular block diagonal form with the blocks being the irreducible representation of the point group at that high symmetry point. Eigenmodes belonging to the same such block, should have the exact same energy. In practice, I would expect the difference of such eigenvalues to not be exactly zero, but rather scale with the numerical precision (
tolerance
parameter) of theModeSolver
.In my many trials, I always failed to observe proper scaling with the
tolerance
or theresolution
parameters in the triangular lattice case. When switching to a rectangular lattice (with a reduced C_4v point group), I see the difference in eigenvalues quickly reach even beyond what I specify in thetolerance
parameter, becoming essentially noise at ~1E-16 order.In the images below, I perform some analysis on the structure from the
tri-rods.py
example, looking at the eigenvalue differences between consecutive modes and looking at the spatial profile of the pairs of fields. I believe this is related to issue #126, but since I use an internal geometric construction function (circle
object), the first condition mentioned in the issue is not present.It strikes me as very odd how such poor performance occurs even at structures in the provided examples. I also wonder whether there is (present or planned) functionality to enforce additional symmetry in the dielectric distribution of a crystal.
Images
Here are a few images to illustrate my point:
Eigenvalue Differences
First I plot the
log10
of the eigenvalue differences (eig_val[i+1] - eig_val[i]
). The high symmetry point is denoted at each row, while the bandi
is the column.The TE modes are shown in red, while the TM modes are shown in green.
Rectangular
We see that there are clearly separated white spots, indicating the degenerate eigenvalues. These will quickly drop to 0 as the
tolerance
is increased.Triangular
We see that there are white spots, but most of them are not very bright. The eigenvalue difference is hard to resolve, and thus fewer degenerate pairs are found.
Eigenmode Pairs
Then, I plot the real part of the spatial profile of the pairs of fields as a two-image column, and indicate their high symmetry point and band number at the bottom right.
TE modes are draw in red-blue, while TM modes are drawn in green-pink.
Rectangular
I define pairs to be degenerate when their eigenvalue difference is < 1E-5. A lot of degenerate pairs are found, although not all originate because of symmetry. About half of the TE mode and most TM modes pairs belong to the same orbital, as expected.
Triangular
I define pairs to be degenerate when their eigenvalue difference is < 1E-4, because of the reduced clarity. Overall, despite the relaxed threshold, less degeneracies are found, The vast majority of the TE mode pairs are do not belong in orbitals that can have pairs. About half of the TM mode pairs are due to symmetry and correctly found.
The text was updated successfully, but these errors were encountered: