Skip to content

Commit f1ee13a

Browse files
momchil-flexdaquinteroflex
authored andcommitted
Updating changelog for 2.9.0
1 parent c6be584 commit f1ee13a

File tree

1 file changed

+47
-50
lines changed

1 file changed

+47
-50
lines changed

CHANGELOG.md

Lines changed: 47 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased]
99

1010
### Added
11-
- Access field decay values in `SimulationData` via `sim_data.field_decay` as `TimeDataArray`.
1211

1312
### Changed
14-
- By default, batch downloads will skip files that already exist locally. To force re-downloading and replace existing files, pass the `replace_existing=True` argument to `Batch.load()`, `Batch.download()`, or `BatchData.load()`.
15-
- The `BatchData.load_sim_data()` function now overwrites any previously downloaded simulation files (instead of skipping them).
16-
- Tighter `TOL_EIGS` used for mode solver, since `scipy` sometimes failed to find modes.
1713

1814
### Fixed
19-
- Giving opposite boundaries different names no longer causes a symmetry validator failure.
20-
- Fixed issue with parameters in `InverseDesignResult` sometimes being outside of the valid parameter range.
21-
- Fixed performance regression for multi-frequency adjoint calculations.
2215

23-
## [2.9.0rc2] - 2025-07-17
16+
17+
## [2.9.0] - 2025-08-04
2418

2519
### Added
20+
- Fields `convex_resolution`, `concave_resolution`, and `mixed_resolution` in `CornerFinderSpec` can be used to take into account the dimensions of autodetected convex, concave, or mixed geometric features when `dl_min` is automatically inferred during automatic grid generation.
21+
- `LayerRefinementSpec` now supports automatic thin gap meshing through fields `gap_meshing_iters` and `dl_min_from_gap_width`.
22+
- Added `eps_lim` keyword argument to `Simulation.plot_eps()` for manual control over the permittivity color limits.
23+
- Added `thickness` parameter to `LossyMetalMedium` for computing surface impedance of a thin conductor.
24+
- `priority` field in `Structure` and `MeshOverrideStructure` for setting the behavior in structure overlapping region. When its value is `None`, the priority is automatically determined based on the material property and simulation's `structure_priority_mode`.
25+
- Automatically apply `matplotlib` styles when importing `tidy3d` which can be reverted via the `td.restore_matplotlib_rcparams()` function.
26+
- Added `TriangleMesh.from_height_expression` class method to create a mesh from an analytical height function defined on a 2D grid and `TriangleMesh.from_height_grid` class method to create a mesh from height values sampled on a 2D grid.
27+
- Added heat sources with custom spatial dependence. It is now possible to add a `SpatialDataArray` as the `rate` in a `HeatSource`.
28+
- Added Transient Heat simulations. It is now possible to run transient Heat simulations. This can be done by specifying `analysis_spec` of `HeatChargeSimulation` object as `UnsteadyHeatAnalysis`.
29+
- A `num_grid_cells` field to `WavePort`, which ensures that there are 5 grid cells across the port. Grid refinement can be disabled by passing `None` to `num_grid_cells`.
2630
- Implemented `FreqRange` utility class for frequency/wavelength handling with constructor methods `from_freq_interval()`, `from_wavelength()`, and `from_wvl_interval()`.
2731
- Add support for `np.unwrap` in `tidy3d.plugins.autograd`.
2832
- Add Nunley variant to germanium material library based on Nunley et al. 2016 data.
@@ -35,11 +39,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3539
- Enable singularity correction at PEC and lossy metal edges.
3640
- New `VolumeMesher` simulation type and associated `VolumeMeshMonitor` and `VolumeMesherData`, which can be used to run the unstructured meshing for a `HeatChargeSimulation` separately before running the solver.
3741
- The current validator for Conduction simulations has been modified so that it checks that in a Conduction simulation there is at least one structure defined with `ChargeConductorMedium` in the `charge` field of a `MultiPhysicsMedium`. This is necessary to ensure simulations are properly set up in the back-end since it relies on the `conductivity` field of `ChargeConductorMedium` and not that of `Medium`.
42+
- Access field decay values in `SimulationData` via `sim_data.field_decay` as `TimeDataArray`.
3843

3944
### Changed
45+
- Relaxed bounds checking of path integrals during `WavePort` validation.
46+
- Internal adjoint helper methods are now prefixed with an underscore to separate them from the public API.
47+
- Drop the dependency on `gdspy`, which has been unmaintained for over two years. Interfaces previously relying on `gdspy` now use its maintained successor, `gdstk`, with equivalent functionality.
48+
- Small (around 1e-4) numerical precision improvements in EME solver.
49+
- Adjoint source frequency width is adjusted to decay sufficiently before zero frequency when possible to improve accuracy of simulation normalization when using custom current sources.
50+
- Change `VisualizationSpec` validator for checking validity of user specified colors to only issue a warning if matplotlib is not installed instead of an error.
51+
- Improved performance of `tidy3d.web.delete_old()` for large folders.
52+
- `tidy3d.plugins.autograd.interpolate_spline()` and `tidy3d.plugins.autograd.add_at()` can now be called with keyword arguments during tracing.
53+
- Zero-size dimensions automatically receive periodic boundary conditions instead of raising an error.
54+
- Set `ModeSpec` precision to `double` by default for more accurate mode solver results. Does not apply to `EMEModeSpec`, where the `auto` precision is still default for speed and cost.
4055
- Switched to an analytical gradient calculation for spatially-varying pole-residue models (`CustomPoleResidue`).
41-
- `GaussianBeam` and `AstigmaticGaussianBeam` default `num_freqs` reset to 1 (it was set to 3 in v2.8.0) and a warning is issued for a broadband, angled beam for which `num_freqs` may not be sufficiently large.
42-
- Set the maximum `num_freqs` to 20 for all broadband sources (we have been warning about the introduction of this hard limit for a while).
4356
- Significantly improved performance of the `tidy3d.plugins.autograd.grey_dilation` morphological operation and its gradient calculation. The new implementation is orders of magnitude faster, especially for large arrays and kernel sizes.
4457
- Warnings are now generated (instead of errors) when instantiating `PML`, `StablePML`,
4558
or `Absorber` classes (or when invoking `pml()`, `stable_pml()`, or `absorber()` functions)
@@ -51,59 +64,42 @@ with fewer layers than recommended.
5164
- If a mode simulation is crossing a symmetry plane of the larger simulation domain, but the mode plane is not symmetric, a warning is issued that it will be expanded symmetrically. Previously this warning only happened during the solver run.
5265
- Enhanced `PolySlab` and `Cylinder` gradient computation via adaptive field sampling along geometry boundaries instead of fixed-grid center sampling.
5366
- Shape derivatives have been sped up significantly, especially for simulations containing many structures in a `GeometryGroup`.
67+
- By default, batch downloads will skip files that already exist locally. To force re-downloading and replace existing files, pass the `replace_existing=True` argument to `Batch.load()`, `Batch.download()`, or `BatchData.load()`.
68+
- The `BatchData.load_sim_data()` function now overwrites any previously downloaded simulation files (instead of skipping them).
69+
- Tighter `TOL_EIGS` used for mode solver, since `scipy` sometimes failed to find modes.
5470

5571
### Fixed
56-
- Arrow lengths are now scaled consistently in the X and Y directions, and their lengths no longer exceed the height of the plot window.
57-
- Bug in `PlaneWave` defined with a negative `angle_theta` which would lead to wrong injection.
58-
- Plots of objects defined by shape intersection logic will no longer display thin line artifacts.
59-
- Fixed incorrect gradient computation in PyTorch plugin (`to_torch`) for functions returning multi-element arrays.
60-
- `MonitorData.get_amplitude()` no longers multiplies by a factor of `1j` and now directly returns the complex value of the data.
61-
- `EMESimulationData.port_modes_tuple` is now symmetry-expanded.
62-
- Fixed `Medium2D` validation error message when invalid data is passed to `ss`.
63-
- The phase of the amplitudes of a `DiffractionMonitor` was correctly centered such that the origin is at the monitor center.
6472

65-
## [2.9.0rc1] - 2025-06-10
66-
67-
### Added
68-
69-
- Fields `convex_resolution`, `concave_resolution`, and `mixed_resolution` in `CornerFinderSpec` can be used to take into account the dimensions of autodetected convex, concave, or mixed geometric features when `dl_min` is automatically inferred during automatic grid generation.
70-
- `LayerRefinementSpec` now supports automatic thin gap meshing through fields `gap_meshing_iters` and `dl_min_from_gap_width`.
71-
- Added `eps_lim` keyword argument to `Simulation.plot_eps()` for manual control over the permittivity color limits.
72-
- Added `thickness` parameter to `LossyMetalMedium` for computing surface impedance of a thin conductor.
73-
- `priority` field in `Structure` and `MeshOverrideStructure` for setting the behavior in structure overlapping region. When its value is `None`, the priority is automatically determined based on the material property and simulation's `structure_priority_mode`.
74-
- Automatically apply `matplotlib` styles when importing `tidy3d` which can be reverted via the `td.restore_matplotlib_rcparams()` function.
75-
- Added `TriangleMesh.from_height_expression` class method to create a mesh from an analytical height function defined on a 2D grid and `TriangleMesh.from_height_grid` class method to create a mesh from height values sampled on a 2D grid.
76-
- Added heat sources with custom spatial dependence. It is now possible to add a `SpatialDataArray` as the `rate` in a `HeatSource`.
77-
- Added Transient Heat simulations. It is now possible to run transient Heat simulations. This can be done by specifying `analysis_spec` of `HeatChargeSimulation` object as `UnsteadyHeatAnalysis`.
78-
- A `num_grid_cells` field to `WavePort`, which ensures that there are 5 grid cells across the port. Grid refinement can be disabled by passing `None` to `num_grid_cells`.
79-
80-
### Fixed
8173
- Fixed bug in broadband adjoint source creation when forward simulation had a pulse amplitude greater than 1 or a nonzero pulse phase.
8274
- Fixed shaping of `CustomMedium` gradients when permittivity data includes a frequency dimension with multiple entries.
8375
- Bug in contains check for `LumpedElement`, which should allow the case of a `LumpedElement` touching the simulation boundaries.
8476
- Bug when generating a grid with snapping points near the simulation boundaries.
8577
- Fixed field colocation in `EMEModeSolverMonitor`.
86-
- Solver error for EME simulations with bends, introduced when support for 2D EME simulations was added.
8778
- Internal interpolation errors with some versions of `xarray` and `numpy`.
8879
- If `ModeSpec.angle_rotation=True` for a mode object, validate that the structure rotation can be successfully done. Also, error if the medium cannot be rotated (e.g. anisotropic or custom medium), which would previously have just produced wrong results.
8980
- Characteristic impedance calculations in the `ImpedanceCalculator` using definitions that rely on flux, which were giving incorrect results for lossy transmission lines.
90-
- Fixed handling of symmetry when creating adjoint field sources and added warning when broken up adjoint simulations do not have the same symmetry as the forward simulation.
9181
- Validation for `CustomGridBoundaries`, which was previously allowing unsorted arrays and arrays with less than two entries.
9282
- `DiffractionMonitor` results to apply finite grid field corrections for higher precision when comparing e.g. to `FluxMonitor` computations of total power.
9383
- Bug when validating the grid resolution near `CoaxialLumpedPort`.
84+
- Arrow lengths are now scaled consistently in the X and Y directions, and their lengths no longer exceed the height of the plot window.
85+
- Plots of objects defined by shape intersection logic will no longer display thin line artifacts.
86+
- Fixed incorrect gradient computation in PyTorch plugin (`to_torch`) for functions returning multi-element arrays.
87+
- `MonitorData.get_amplitude()` no longers multiplies by a factor of `1j` and now directly returns the complex value of the data.
88+
- `EMESimulationData.port_modes_tuple` is now symmetry-expanded.
89+
- Fixed `Medium2D` validation error message when invalid data is passed to `ss`.
90+
- The phase of the amplitudes of a `DiffractionMonitor` was correctly centered such that the origin is at the monitor center.
91+
- Giving opposite boundaries different names no longer causes a symmetry validator failure.
92+
- Fixed issue with parameters in `InverseDesignResult` sometimes being outside of the valid parameter range.
93+
- Fixed performance regression for multi-frequency adjoint calculations.
9494

95-
### Changed
96-
- Relaxed bounds checking of path integrals during `WavePort` validation.
97-
- Internal adjoint helper methods are now prefixed with an underscore to separate them from the public API.
98-
- Drop the dependency on `gdspy`, which has been unmaintained for over two years. Interfaces previously relying on `gdspy` now use its maintained successor, `gdstk`, with equivalent functionality.
99-
- Small (around 1e-4) numerical precision improvements in EME solver.
100-
- Adjoint source frequency width is adjusted to decay sufficiently before zero frequency when possible to improve accuracy of simulation normalization when using custom current sources.
101-
- Change `VisualizationSpec` validator for checking validity of user specified colors to only issue a warning if matplotlib is not installed instead of an error.
102-
- Improved performance of `tidy3d.web.delete_old()` for large folders.
103-
- Upon initialization, an FDTD `Simulation` will now try to create all `ModeSolver` objects associated to `ModeSource`-s and `ModeMonitor`-s so they can be validated.
104-
- `tidy3d.plugins.autograd.interpolate_spline()` and `tidy3d.plugins.autograd.add_at()` can now be called with keyword arguments during tracing.
105-
- Zero-size dimensions automatically receive periodic boundary conditions instead of raising an error.
106-
- Set `ModeSpec` precision to `double` by default for more accurate mode solver results. Does not apply to `EMEModeSpec`, where the `auto` precision is still default for speed and cost.
95+
## [2.8.5] - 2025-07-07
96+
97+
### Fixed
98+
- Bug in `PlaneWave` defined with a negative `angle_theta` which would lead to wrong injection.
99+
- `GaussianBeam` and `AstigmaticGaussianBeam` default `num_freqs` reset to 1 (it was set to 3 in v2.8.0) and a warning is issued for a broadband, angled beam for which `num_freqs` may not be sufficiently large.
100+
- Set the maximum `num_freqs` to 20 for all broadband sources (we have been warning about the introduction of this hard limit for a while).
101+
- Solver error for EME simulations with bends, introduced when support for 2D EME simulations was added.
102+
- Fixed handling of symmetry when creating adjoint field sources and added warning when broken up adjoint simulations do not have the same symmetry as the forward simulation.
107103

108104
## [2.8.4] - 2025-05-15
109105

@@ -1714,8 +1710,9 @@ which fields are to be projected is now determined automatically based on the me
17141710
- Job and Batch classes for better simulation handling (eventually to fully replace webapi functions).
17151711
- A large number of small improvements and bug fixes.
17161712

1717-
[Unreleased]: https://github.com/flexcompute/tidy3d/compare/v2.9.0rc1...develop
1718-
[2.9.0rc1]: https://github.com/flexcompute/tidy3d/compare/v2.8.4...v2.9.0rc1
1713+
[Unreleased]: https://github.com/flexcompute/tidy3d/compare/v2.9.0...develop
1714+
[2.9.0]: https://github.com/flexcompute/tidy3d/compare/v2.8.5...v2.9.0
1715+
[2.8.5]: https://github.com/flexcompute/tidy3d/compare/v2.8.4...v2.8.5
17191716
[2.8.4]: https://github.com/flexcompute/tidy3d/compare/v2.8.3...v2.8.4
17201717
[2.8.3]: https://github.com/flexcompute/tidy3d/compare/v2.8.2...v2.8.3
17211718
[2.8.2]: https://github.com/flexcompute/tidy3d/compare/v2.8.1...v2.8.2

0 commit comments

Comments
 (0)