I'm referring to the distinction between shape optimization and topological optimization that can be found for example here. As far as I understand, fdtdx is built to perform inverse design with topological optimization. Classes like fdtdx.Device let you optimize the permittivity values of a voxel grid with either discrete or continuous options. Classes to draw shapes like fdtdx.ExtrudedPolygon however inherit from static materials, operate with numpy and are not differentiable through JAX.
Is it planned in the near future to add shape optimization facilities?
Optimizing devices with splines, level sets, Bézier curves or free-form curves often produces devices that are more easily manufacturable. It also lets you enhance already existing designs. This could be suited for devices such as tapers, crossings, S-bends, directional couplers or ring resonators.
I'm referring to the distinction between shape optimization and topological optimization that can be found for example here. As far as I understand, fdtdx is built to perform inverse design with topological optimization. Classes like fdtdx.Device let you optimize the permittivity values of a voxel grid with either discrete or continuous options. Classes to draw shapes like fdtdx.ExtrudedPolygon however inherit from static materials, operate with numpy and are not differentiable through JAX.
Is it planned in the near future to add shape optimization facilities?
Optimizing devices with splines, level sets, Bézier curves or free-form curves often produces devices that are more easily manufacturable. It also lets you enhance already existing designs. This could be suited for devices such as tapers, crossings, S-bends, directional couplers or ring resonators.