You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+27-50Lines changed: 27 additions & 50 deletions
Original file line number
Diff line number
Diff line change
@@ -5,25 +5,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5
5
6
6
## [Unreleased]
7
7
8
+
## [2.5.0] - 2023-12-13
9
+
8
10
### Added
9
11
- Ability to mix regular mediums and geometries with differentiable analogues in `JaxStructure`. Enables support for shape optimization with dispersive mediums. New classes `JaxStructureStaticGeometry` and `JaxStructureStaticMedium` accept regular `Tidy3D` geometry and medium classes, respectively.
10
12
- Warning if nonlinear mediums are used in an `adjoint` simulation. In this case, the gradients will not be accurate, but may be approximately correct if the nonlinearity is weak.
11
13
- Validator for surface field projection monitors that warns if projecting backwards relative to the monitor's normal direction.
12
14
- Validator for field projection monitors when far field approximation is enabled but the projection distance is small relative to the near field domain.
13
15
- Ability to manually specify a medium through which to project fields, when using field projection monitors.
14
-
15
-
### Changed
16
-
- Credit cost for remote mode solver has been modified to be defined in advance based on the mode solver details. Previously, the cost was based on elapsed runtime. On average, there should be little difference in the cost.
17
-
- Mode solves that are part of an FDTD simulation (i.e. for mode sources and monitors) are now charged at the same flex credit cost as a corresponding standalone mode solver call.
18
-
- Any `FreqMonitor.freqs` or `Source.source_time.freq0` smaller than `1e5` now raise an error as this must be incorrect setup that is outside the Tidy3D intended range (note default frequency is `Hz`).
19
-
- When using complex fields (e.g. with Bloch boundaries), FluxTimeMonitor and frequency-domain fields (including derived quantities like flux) now only use the real part of the time-domain electric field.
20
-
21
-
### Fixed
22
-
- Fixed energy leakage in TFSF when using complex fields.
23
-
24
-
## [2.5.0rc3] - 2023-11-30
25
-
26
-
### Added
27
16
- Added support for two-photon absorption via `TwoPhotonAbsorption` class. Added `KerrNonlinearity` that implements Kerr effect without third-harmonic generation.
28
17
- Can create `PoleResidue` from LO-TO form via `PoleResidue.from_lo_to`.
29
18
- Added `TriangularGridDataset` and `TehrahedralGridDataset` for storing and manipulating unstructured data.
@@ -36,16 +25,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
36
25
-`FieldData.apply_phase(phase)` to multiply field data by a phase.
37
26
- Optional `phase` argument to `SimulationData.plot_field` that applies a phase to complex-valued fields.
38
27
- Ability to window near fields for spatial filtering of far fields for both client- and server-side field projections.
28
+
- Support for multiple frequencies in `output_monitors` in `adjoint` plugin.
29
+
- GDSII export functions `to_gds_file`, `to_gds`, `to_gdspy`, and `to_gdstk` to `Simulation`, `Structure`, and `Geometry`.
30
+
-`verbose` argument to `estimate_cost` and `real_cost` functions such that the cost is logged if `verbose==True` (default). Additional helpful messages may also be logged.
31
+
- Support for space-time modulation of permittivity and electric conductivity via `ModulationSpec` class. The modulation function must be separable in space and time. Modulations with user-supplied distributions in space and harmonic modulation in time are supported.
32
+
-`Geometry.intersections_tilted_plane` calculates intersections with any plane, not only axis-aligned ones.
33
+
-`Transformed` class to support geometry transformations.
34
+
- Methods `Geometry.translated`, `Geometry.scaled`, and `Geometry.rotated` can be used to create transformed copies of any geometry.
35
+
- Time zone in webAPI logging output.
36
+
- Class `Scene` consisting of a background medium and structures for easier drafting and visualization of simulation setups as well as transferring such information between different simulations.
37
+
- Solver for thermal simulation (see `HeatSimulation` and related classes).
38
+
- Specification of material thermal properties in medium classes through an optional field `.heat_spec`.
39
39
40
40
### Changed
41
+
- Credit cost for remote mode solver has been modified to be defined in advance based on the mode solver details. Previously, the cost was based on elapsed runtime. On average, there should be little difference in the cost.
42
+
- Mode solves that are part of an FDTD simulation (i.e. for mode sources and monitors) are now charged at the same flex credit cost as a corresponding standalone mode solver call.
43
+
- Any `FreqMonitor.freqs` or `Source.source_time.freq0` smaller than `1e5` now raise an error as this must be incorrect setup that is outside the Tidy3D intended range (note default frequency is `Hz`).
44
+
- When using complex fields (e.g. with Bloch boundaries), FluxTimeMonitor and frequency-domain fields (including derived quantities like flux) now only use the real part of the time-domain electric field.
41
45
- Indent for the json string of Tidy3D models has been changed to `None` when used internally; kept as `indent=4` for writing to `json` and `yaml` files.
42
46
- API for specifying one or more nonlinear models via `NonlinearSpec.models`.
43
47
-`freqs` and `direction` are optional in `ModeSolver` methods converting to monitor and source, respectively. If not supplied, uses the values from the `ModeSolver` instance calling the method.
44
48
- Removed spurious ``-1`` factor in field amplitudes injected by field sources in some cases. The injected ``E``-field should now exactly match the analytic, mode, or custom fields that the source is expected to inject, both in the forward and in the backward direction.
45
49
- Restriction on the maximum memory that a monitor would need internally during the solver run, even if the final monitor data is smaller.
46
50
- Restriction on the maximum size of mode solver data produced by a `ModeSolver` server call.
51
+
- Updated versions of `boto3`, `requests`, and `click`.
52
+
- python 3.7 no longer tested nor supported.
53
+
- Removed warning that monitors now have `colocate=True` by default.
54
+
- If `PML` or any absorbing boundary condition is used along a direction where the `Simulation` size is zero, an error will be raised, rather than just a warning.
55
+
- Remove warning that monitors now have `colocate=True` by default.
56
+
- Internal refactor of Web API functionality.
57
+
-`Geometry.from_gds` doesn't create unnecessary groups of single elements.
47
58
48
59
### Fixed
60
+
- Fixed energy leakage in TFSF when using complex fields.
49
61
- Fixed the duplication of log messages in Jupyter when `set_logging_file` is used.
50
62
- If input to circular filters in adjoint have size smaller than the diameter, instead of erroring, warn user and truncate the filter kernel accordingly.
51
63
- When writing the json string of a model to an `hdf5` file, the string is split into chunks if it has more than a set (very large) number of characters. This fixes potential error if the string size is more than 4GB.
@@ -57,40 +69,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
57
69
- Fixes `ComponentModeler` batch file being different in different sessions by use of deterministic hash function for computing batch filename.
58
70
- Can pass `kwargs` to `ComponentModeler.plot_sim()` to use in `Simulation.plot()`.
59
71
- Ensure that mode solver fields are returned in single precision if `ModeSolver.ModeSpec.precision == "single"`.
60
-
61
-
## [2.5.0rc2] - 2023-10-30
62
-
63
-
### Added
64
-
- Support for multiple frequencies in `output_monitors` in `adjoint` plugin.
65
-
- GDSII export functions `to_gds_file`, `to_gds`, `to_gdspy`, and `to_gdstk` to `Simulation`, `Structure`, and `Geometry`.
66
-
-`verbose` argument to `estimate_cost` and `real_cost` functions such that the cost is logged if `verbose==True` (default). Additional helpful messages may also be logged.
67
-
- Support for space-time modulation of permittivity and electric conductivity via `ModulationSpec` class. The modulation function must be separable in space and time. Modulations with user-supplied distributions in space and harmonic modulation in time are supported.
68
-
-`Geometry.intersections_tilted_plane` calculates intersections with any plane, not only axis-aligned ones.
69
-
-`Transformed` class to support geometry transformations.
70
-
- Methods `Geometry.translated`, `Geometry.scaled`, and `Geometry.rotated` can be used to create transformed copies of any geometry.
71
-
72
-
### Changed
73
-
- Updated versions of `boto3`, `requests`, and `click`.
74
-
- python 3.7 no longer tested nor supported.
75
-
- Removed warning that monitors now have `colocate=True` by default.
76
-
- If `PML` or any absorbing boundary condition is used along a direction where the `Simulation` size is zero, an error will be raised, rather than just a warning.
77
-
- Remove warning that monitors now have `colocate=True` by default.
78
-
79
-
### Fixed
80
72
- If there are no adjoint sources for a simulation involved in an objective function, make a mock source with zero amplitude and warn user.
81
73
82
-
## [2.5.0rc1] - 2023-10-10
83
-
84
-
### Added
85
-
- Time zone in webAPI logging output.
86
-
- Class `Scene` consisting of a background medium and structures for easier drafting and visualization of simulation setups as well as transferring such information between different simulations.
87
-
- Solver for thermal simulation (see `HeatSimulation` and related classes).
88
-
- Specification of material thermal properties in medium classes through an optional field `.heat_spec`.
89
-
90
-
### Changed
91
-
- Internal refactor of Web API functionality.
92
-
-`Geometry.from_gds` doesn't create unnecessary groups of single elements.
93
-
94
74
## [2.4.3] - 2023-10-16
95
75
96
76
### Added
@@ -1059,11 +1039,8 @@ which fields are to be projected is now determined automatically based on the me
1059
1039
- Job and Batch classes for better simulation handling (eventually to fully replace webapi functions).
1060
1040
- A large number of small improvements and bug fixes.
0 commit comments