Currently, all of the unit tests for the adjoint gradients in test_adjoint_solver.py are based on a 2D simulation. Even though we have used the adjoint solver for 3D simulations (e.g., optimizing 2D gratings), there are no such unit tests.
The 3D tests should check two different configurations of the design region via the MaterialGrid:
a 2D topology in the $xy$ plane which is extruded in $z$ such as a cylinder.
a fully 3D topology such as a sphere or cuboid.
We should also test the single and multifrequency case. For the latter, we should test narrow and broad bandwidths (similar to #2307).
Given the generally larger size and runtime of 3D tests, we may want to separate these tests from the existing suite in make check.
Currently, all of the unit tests for the adjoint gradients in
test_adjoint_solver.py
are based on a 2D simulation. Even though we have used the adjoint solver for 3D simulations (e.g., optimizing 2D gratings), there are no such unit tests.The 3D tests should check two different configurations of the design region via the
MaterialGrid
:We should also test the single and multifrequency case. For the latter, we should test narrow and broad bandwidths (similar to #2307).
Given the generally larger size and runtime of 3D tests, we may want to separate these tests from the existing suite in
make check
.