Lower the tolerance in unit tests of adjoint gradient of eigenmode monitor involving an eigenmode source without dispersion #2324
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As demonstrated in #2307, the errors in the adjoint gradient for an objective function of an eigenmode monitor tend to be larger at the non-center frequencies of a pulsed source compared to its center frequency due to the current limitation of the
EigenModeSource
which uses the mode profile at only the center frequency. Until #2315 provides a permanent fix to this problem, this PR modifies several of the tests intest_adjoint_solver.py
involving an eigenmode source and the calculation of the adjoint gradient at a single frequency (the center frequency of the pulsed source) by lowering the tolerance (relative to the value used for the multifrequency adjoint-gradient calculation) used to validate the result against the finite-difference approximation. In effect, this enforces a tighter tolerance on the "correct" result for the gradient.Separately (but related to this PR), several type hints are added and corrected.