-
Notifications
You must be signed in to change notification settings - Fork 632
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
Poynting flux Adjoint #2191
base: master
Are you sure you want to change the base?
Poynting flux Adjoint #2191
Conversation
…unction. The Poynting Flux adjoint still fails when given field components of zero. The test file test_poynting_flux.py does the same simulation for adjoint and non-adjoint calls now. I'll need to add it into the actual test cases next, however.
…or in step_db.cpp - Assertion 'changed_materials' failed. Creating a pull request will let me difftool code changes to debug the problem.
…dded some more TODOs
… Off by a factor of ten in initial tests, debugging today.
…ine sources (one for each tangential H or E component) to a series of point sources to accomodate end-to-end interpolation - we needed middle to middle. Unfortunately, this did not seem to improve the error appreciably.
Codecov Report
@@ Coverage Diff @@
## master #2191 +/- ##
==========================================
- Coverage 73.09% 71.05% -2.04%
==========================================
Files 17 17
Lines 4906 4975 +69
==========================================
- Hits 3586 3535 -51
- Misses 1320 1440 +120
|
Ideally this would be done in C++ directly from the In particular, it should be very similar to Line 1462 in ea43f83
dJ comes not from the user but rather from the Fourier field you are multiplying with (e.g. the Ex adjoint source's "dJ` comes from Hy etcetera).
Note that the Line 537 in ea43f83
|
… dJ. Works well in 2D, fails in 3D. Multiple frequencies untested.
…ro (due to symmetry, etc.). Tested with eigenmode and point sources radiating toward line monitors. 3D returns the wrong gradient entirely - I should be able to fix it since it should just be the format of the input. There are a couple cases in 2D simulations where the gradient is somewhat wrong.
…'s place_adjoint_source function. This works in 2D, but it returns 9 separate sources in 3D. The extra sources are handled and collated correctly now.
Closes #1307, #1299, #1398
Initial Implementation of Poynting Flux Adjoint. Uses
add_DFT_fields
objects. Forward run is accurate. Throws an error instep_db.cpp
on adjoint run:"Assertion 'changed_materials' failed."
Using this pull request to help debug code changes.