- Update readme
- Remove optimizations that make use of
jax.ensure_compile_time_eval. Bugs introduced in newer versions of jax forced gym to be pinned to an earlier jax version. With the optimizations removed, compatibility with the latest jax versions is restored. - Ensure that the
fixed_solidorfixed_voidattributes of density arrays are always numpy arrays. If these are jax arrays, jax can hang while compiling. The latest version oftotypesalso validates that the attributes are numpy arrays. - Modify the extractor challenge, parallelizing the eigensolve to improve performance.
- Update for use of fmmax 1.4.0, which shifts the coordinates associated with arrays defined on the unit cell. This motivates commensurate shifts in sources for challenges making use of localized sources, and slight changes in regression test reference values.
- Library challenge: fix inadvertent conversion of metasurface thickness from scalar to 1D array.
- Update usage of fmmax for the 1.0.0 api.
- Remove keyword arguments in call to
fmmax.fields.time_average_z_poynting_fluxto accommodate an upcoming change to the fmmax api.
- FMMAX has added a function
fields.time_average_z_poynting_flux, which makes some private functions defined in this package redundant. Remove the private functions and use the FMMAX function instead.
- Accommodate float-typed wavelength in the
utils.materialsmodule.
- Update use of
jax.pure_callbackto detect the jax version, and select the appropriate behavior under vmap.
- Update
utils.materialsto ensure no type promotion occurs when computing permittivity. For example, when wavelength has typefloat32, permittivity should have typecomplex64even if 64 bit precision is enabled.
- Update dependencies specified in
pyproject.tomlto allow jax versions equal to or greater than 0.4.27.