-
Notifications
You must be signed in to change notification settings - Fork 626
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable nonzero k_point in adjoint solver #1705
Conversation
The original setup of the Using the setup of the tutorial example, the gradients agree with nonzero If the source and monitor don't extend into the PMLs, then the adjoint gradients will match the directional derivates, but the fields are still |
Codecov Report
@@ Coverage Diff @@
## master #1705 +/- ##
==========================================
+ Coverage 73.32% 73.35% +0.02%
==========================================
Files 13 13
Lines 4525 4530 +5
==========================================
+ Hits 3318 3323 +5
Misses 1207 1207
|
In the context of the PR #1704, the factor of 2 is needed whenever I wonder if there are other cases where we don't need the factor even if |
Looks like the failing test is |
* Fix the `binary_partition` copy constructor. Prevents issues with older compilers. \NanoComp#1683 NanoComp#1701 * Update src/structure_dump.cpp Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]>
Thanks Ardavan! I lowered the tolerance for single precision, and it works! |
…anoComp#1704) * fix factor 2 * fix * fix * fix * single precision test tol * single precision test tol * Update python/adjoint/objective.py Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Mo Chen <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]>
* assertVectorsClose works for scalars as well as vectors * rename ApproxComparisonMixin -> ApproxComparisonTestCase, since it is a subclass of TestCase, and use it as such
…mp#1713) * add --with-coverage to control usage of Python coverage tests * move --with-coverage to correct CI line
* flush subnormals on x86 * less aggressive error threshold in single precision * increase single-precision tolerance * update tols in test_array_metadata * update for assertVectorsClose rename * lower tolerance in single precision
…ision (NanoComp#1714) * lower tolerance of CW and eigenfrequency solver tests for single precision * remove change in default argument from Python wrappers
* fix factor 2 * fix * fix * fix * kpoint * fix * Fix the `binary_partition` copy constructor. (NanoComp#1702) * Fix the `binary_partition` copy constructor. Prevents issues with older compilers. \NanoComp#1683 NanoComp#1701 * Update src/structure_dump.cpp Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]> * single precision test tol * single precision test tol * Fix factor of 2 in adjoint gradients when not using complex fields (NanoComp#1704) * fix factor 2 * fix * fix * fix * single precision test tol * single precision test tol * Update python/adjoint/objective.py Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Mo Chen <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]> * assertVectorsClose works for scalars as well as vectors (NanoComp#1712) * assertVectorsClose works for scalars as well as vectors * rename ApproxComparisonMixin -> ApproxComparisonTestCase, since it is a subclass of TestCase, and use it as such * add --with-coverage to control usage of Python coverage tests (NanoComp#1713) * add --with-coverage to control usage of Python coverage tests * move --with-coverage to correct CI line * flush subnormals on x86 (NanoComp#1709) * flush subnormals on x86 * less aggressive error threshold in single precision * increase single-precision tolerance * update tols in test_array_metadata * update for assertVectorsClose rename * lower tolerance in single precision * Lower tolerance of CW and eigenfrequency solver tests for single precision (NanoComp#1714) * lower tolerance of CW and eigenfrequency solver tests for single precision * remove change in default argument from Python wrappers * fix factor 2 * fix * kpoint * fix * single precision test tol * single precision test tol * using real * using real * fix rebase * fix * fix Co-authored-by: Mo Chen <[email protected]> Co-authored-by: Andreas Hoenselaar <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Ardavan Oskooi <[email protected]>
* fix factor 2 * fix * fix * fix * kpoint * fix * Fix the `binary_partition` copy constructor. (NanoComp#1702) * Fix the `binary_partition` copy constructor. Prevents issues with older compilers. \NanoComp#1683 NanoComp#1701 * Update src/structure_dump.cpp Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]> * single precision test tol * single precision test tol * Fix factor of 2 in adjoint gradients when not using complex fields (NanoComp#1704) * fix factor 2 * fix * fix * fix * single precision test tol * single precision test tol * Update python/adjoint/objective.py Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Mo Chen <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]> * assertVectorsClose works for scalars as well as vectors (NanoComp#1712) * assertVectorsClose works for scalars as well as vectors * rename ApproxComparisonMixin -> ApproxComparisonTestCase, since it is a subclass of TestCase, and use it as such * add --with-coverage to control usage of Python coverage tests (NanoComp#1713) * add --with-coverage to control usage of Python coverage tests * move --with-coverage to correct CI line * flush subnormals on x86 (NanoComp#1709) * flush subnormals on x86 * less aggressive error threshold in single precision * increase single-precision tolerance * update tols in test_array_metadata * update for assertVectorsClose rename * lower tolerance in single precision * Lower tolerance of CW and eigenfrequency solver tests for single precision (NanoComp#1714) * lower tolerance of CW and eigenfrequency solver tests for single precision * remove change in default argument from Python wrappers * fix factor 2 * fix * kpoint * fix * single precision test tol * single precision test tol * using real * using real * fix rebase * fix * fix Co-authored-by: Mo Chen <[email protected]> Co-authored-by: Andreas Hoenselaar <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: Ardavan Oskooi <[email protected]>
Fixes #1667. The test_adjoint_solver.py is updated correspondingly to include when
k_point
isFalse
, zero, and nonzero.