subpixel algorithm update for Focusing2D#68
subpixel algorithm update for Focusing2D#68ianmatthewhammond wants to merge 1 commit intoNanoComp:mainfrom
Conversation
|
Any hint on the source of the left–right asymmetry? Is the mesh mirror-symmetric? Of course, you could force mirror symmetry just by simulating only half of the structure, and then imposing Neumann boundary conditions (for the Hz field) along the center edge. This might be worth it just to save us the trouble of explaining to people why non-convex problems can exhibit spontaneous symmetry breaking. |
The mesh is not explicitly mirror symmetric. I do want to explore what encourages the asymmetry in some of our newer algorithms here and elsewhere. The asymmetry in the table does suggest it might help the design...but unclear. I can do as you suggested with the mirror plane, or define my DOF only on the right half of my rectilinear grid and compose the symmetry with the bilinear interpolation onto the FEGrid. |
|
Here is the new algorithm with the nominal smoothing radius and mirror symmetry: Objective: 744 @stevengj |
|
Significantly worse? Or are all of these about the same once you make a conforming mesh? |
|
All objective values I've provided are given the conforming mesh. So it's worse. But I think the problem is incredibly sensitive. |
|
Probably one of the cases just got lucky upon conversion to the conforming mesh. |
|
Should we merge this? |
|
I have an SSP2 implementation for Gridap on the FEM grid instead of on the cartesian mesh. Maybe I should actually get results for this since instead the example doesn't use the cartesian grid (and my implementation above uses SSP1)? Unless we want to illustrate the cartesian mesh -> FEM projection compatibility. |
|
It would be nice to have the example with the Cartesian grid from the paper, and maybe add a version with the FEM grid afterwards. |





This PR adds two changes in response to these changes to the subpixel algorithm.
In addition to updating the upper and lower bounds of materials in the current pixel, the notebook now uses R_smoothing = 0.55 * pixel_size. Before, it was using something much smaller due to the distance between quadrature points and the rectilinear to FE grid interpolation. Empirically, 0.55 * pixel_size works better.
After the subpixel optimization, a conformal mesh is built in post-processing from the level set and an objective value of 4*284=1136 is achieved, which beats the benchmark with a qualitatively similar shape. This is shown at the bottom of the notebook.