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
The filtering functions used by the adjoint solver sometimes produce invalid results. This can be demonstrated in the following example in which a 2d array of binary values (0 and 1) representing a ring resonator is passed to the conical filter (meep.adjoint.conic_filter). The filtered array which is returned has extrema which lie slightly outside the valid range of [0, 1]:
The violations do not go away with changes in the filter radius or array size. While this specific example involves minor violations (on the scale of machine precision) which are corrected by #1881 (which clips the weights input of the MaterialGrid to lie in the range [0, 1]), larger violations can potentially affect the performance of the optimizer if there happens to be a bug in the filters. It would be useful to ensure that the filters always return valid output given valid input. This could be a unit test.
The filtering functions used by the adjoint solver sometimes produce invalid results. This can be demonstrated in the following example in which a 2d array of binary values (0 and 1) representing a ring resonator is passed to the conical filter (
meep.adjoint.conic_filter
). The filtered array which is returned has extrema which lie slightly outside the valid range of [0, 1]:The violations do not go away with changes in the filter radius or array size. While this specific example involves minor violations (on the scale of machine precision) which are corrected by #1881 (which clips the
weights
input of theMaterialGrid
to lie in the range [0, 1]), larger violations can potentially affect the performance of the optimizer if there happens to be a bug in the filters. It would be useful to ensure that the filters always return valid output given valid input. This could be a unit test.The text was updated successfully, but these errors were encountered: