- add extension_port_names to extend_ports [PR](https://github.com/gdsfactory/gdsfactory/pull/527)
- fix ring single simphony example [PR](https://github.com/gdsfactory/gdsfactory/pull/525)
[5.12.12](https://github.com/gdsfactory/gdsfactory/pull/523)
- add `gdsfactory.simulation.gtidy3d.modes.WaveguideCoupler`
[5.12.11](https://github.com/gdsfactory/gdsfactory/pull/522)
- add `gdsfactory.simulation.gtidy3d.modes.group_index`
- add `gdsfactory.simulation.gtidy3d.modes.sweep_width`
- add `gdsfactory.simulation.gtidy3d.modes.plot_sweep_width`
[5.12.7](https://github.com/gdsfactory/gdsfactory/pull/513)
- get_sparameters_meep_mpi runs the mpirun command asynchronously. Direct stdout and stderr to a log file and console. [PR](https://github.com/gdsfactory/gdsfactory/pull/515)
- It can't replace the current Popen call, as it doesn't handle the case of wait_to_finish=False, so it won't work with the get_sparameters_meep_batch code as-is.
[5.12.6](https://github.com/gdsfactory/gdsfactory/pull/513)
- rename get_effective_index to get_effective_indices and add 2.5D FDTD demo
- [fix issue](https://github.com/gdsfactory/gdsfactory/issues/511)
[5.12.5](https://github.com/gdsfactory/gdsfactory/pull/510)
- better docstrings with autodoc_typehints = "description"
- improve meep plugin.
- remove port_field_monitor_name parameter (no longer needed) thanks to meep 1.23 introduced to use the energy in the whole simulation to determine when to terminate, which is a better termination condition than the energy at the ports. [PR](https://github.com/gdsfactory/gdsfactory/pull/495/files). Requires meep 1.23 or newer.
- update termination condition for grating_coupler simulations.
- rename effective permitivity to get_effective index. Change units from meters to um, and permitivities to refractive_index to be consistent with gdsfactory units in um.
- add `gf.generate_doe` [PR](https://github.com/gdsfactory/gdsfactory/pull/508/files)
- add add_center_section to CrossSection and cross_section for slot cross_section [PR](https://github.com/gdsfactory/gdsfactory/pull/509) [fixes](https://github.com/gdsfactory/gdsfactory/issues/506)
[5.12.4](https://github.com/gdsfactory/gdsfactory/pull/502)
- function to calculate_effective_permittivity [PR](https://github.com/gdsfactory/gdsfactory/pull/501)
- Add MPB mode solver for cross sections [PR](https://github.com/gdsfactory/gdsfactory/pull/499)
[5.12.2](https://github.com/gdsfactory/gdsfactory/pull/498)
- extract generating component list for doe into a separate function for use in pack_doe and elsewhere [fixes issue](https://github.com/gdsfactory/gdsfactory/issues/496)
- meep 1.23 introduced to use the energy in the whole simulation to determine when to terminate, which is a better termination condition than the energy at the ports. [PR](https://github.com/gdsfactory/gdsfactory/pull/495/files). Requires meep 1.23 or newer.
[5.12.1](https://github.com/gdsfactory/gdsfactory/pull/494)
- layer_stack has a 2.5D information.
- fix xsection_planarized script
- add 2.5 info to generic.
[5.12.0](https://github.com/gdsfactory/gdsfactory/pull/493)
- remove `gf.simulation.gtidy3d.modes.find_modes`, add cache and filepath to Waveguide
- remove many default parameters from `Waveguide`
- replace from pickle to np.savez_compressed()
- replace `from tqdm import tqdm` to `from tqdm.auto import tqdm`
- add Optional refractive_index to LayerLevel
- add Transition to docs API
- add archimedean spiral [PR](https://github.com/gdsfactory/gdsfactory/pull/492)
- add Google pydocstyle to docs/contribution.md
[5.11.4](https://github.com/gdsfactory/gdsfactory/pull/491)
- add opacity 0.5 for dither I1
- Fix sweep_bend_loss, overlap integral code in gtidy3d.modes [PR](https://github.com/gdsfactory/gdsfactory/pull/490)
- replace Settings object in packed info by dict [PR](https://github.com/gdsfactory/gdsfactory/pull/489) fixes [issue](https://github.com/gdsfactory/gdsfactory/issues/488)
[5.11.3](https://github.com/gdsfactory/gdsfactory/pull/485)
- move dependencies from `pip install gdsfactory[full]` to `pip install gdsfactory`
- watchdog
- qrcode
- increase test coverage
- remove `icyaml` webapp
[5.11.2](https://github.com/gdsfactory/gdsfactory/pull/484)
- better docs
- simpler gf module namespace. unexpose some functions from module
- port
- klive
- plot, quickplot, quickplot2, set_quickplot_options
- dft
- add shear angle to Port.__str__
[5.11.1](https://github.com/gdsfactory/gdsfactory/pull/481)
- add pytest and pytest-regressions to requirements
[5.11.0](https://github.com/gdsfactory/gdsfactory/pull/480)
- add Pdk.warn_offgrid_ports
- move optional dependencies to `pip install gdsfactory[full]`
- move sipann dependency to `pip install gdsfactory[sipann]`
- parametric layer_stack
[5.10.17](https://github.com/gdsfactory/gdsfactory/pull/479)
- [PR](https://github.com/gdsfactory/gdsfactory/pull/478) fixes [issue](https://github.com/gdsfactory/gdsfactory/issues/474)
- Use snap.snap_to_grid() to snap cross section points
- Warning was not being raised if only one coordinate was off-grid
- [PR](https://github.com/gdsfactory/gdsfactory/pull/479) fixes [issue](https://github.com/gdsfactory/gdsfactory/issues/476) offgrid manhattan connection gaps
- remove unused cache setting from Component.copy()
- fix phidl [issue](https://github.com/amccaugh/phidl/issues/154)
- make lytest as an optional dependency
[5.10.16](https://github.com/gdsfactory/gdsfactory/pull/477)
- rename triangle to triangles, to avoid conflict names with triangle module [PR](https://github.com/gdsfactory/gdsfactory/pull/475)
- fix interconnect plugin notebook [PR](https://github.com/gdsfactory/gdsfactory/pull/473/files)
- add `Pdk.grid_size = 0.001` (1nm by default)
- raise warning when extruding paths with off-grid points
- raise warning when connecting components with non-manhattan (0, 90, 180, 270) orientation
[5.10.15](https://github.com/gdsfactory/gdsfactory/pull/470)
- Update and document Interconnect plugin [PR](https://github.com/gdsfactory/gdsfactory/pull/469)
[5.10.14](https://github.com/gdsfactory/gdsfactory/pull/468)
- simpler serialization.py
- difftest response is Yes by default when there is a GDSdiff error
[5.10.13](https://github.com/gdsfactory/gdsfactory/pull/467)
- improve docs.
- add conda package.
- Cover any numpy numbers in serialization [PR](https://github.com/gdsfactory/gdsfactory/pull/466)
- Custom component labels in grid_with_text [PR](https://github.com/gdsfactory/gdsfactory/pull/465)
[5.10.12](https://github.com/gdsfactory/gdsfactory/pull/463)
- speed up module gf/__init__.py thanks to scalene python profiler
[5.10.8](https://github.com/gdsfactory/gdsfactory/pull/462)
- fix documentation (add `pip install jaxlib jax`) to `make plugins`
- fix some mypy issues
[5.10.7](https://github.com/gdsfactory/gdsfactory/pull/460)
- [repo improvements](https://scikit-hep.org/developer/reporeview)
- move mypy and pytest config to pyproject.toml
- rename extension_factory to extension
[5.10.6](https://github.com/gdsfactory/gdsfactory/pull/459)
- raise ValueError if no polygons to render in 3D.
- add pad ports to functions that route to electrical pads, so new Component can still access the pad ports.
- `gf.routing.add_electrical_pads_shortest`
- `gf.routing.add_electrical_pads_top`
- `gf.routing.add_electrical_pads_top_dc`
- add `gf.add_labels.add_labels_to_ports`
- add `gf.add_labels.add_labels_to_ports_electrical`
- add `gf.add_labels.add_labels_to_ports_optical`
- add `gf.add_labels.add_labels_to_ports_vertical_dc` for pads
- fix colors in Component.plot()
- add `Component.plotqt()`
- add add_port_markers and read_labels_yaml to gf.read.labels
[5.10.5](https://github.com/gdsfactory/gdsfactory/pull/457)
- quickplotter picks a random color if layer not defined in pdk.get_layer_color(). Before it was raising a ValueError.
[5.10.4](https://github.com/gdsfactory/gdsfactory/pull/456)
- Use tidy3d.webapi.Batch instead of pool executor [PR](https://github.com/gdsfactory/gdsfactory/pull/455)
- update to latest tidy3d==1.4.1
[5.10.3](https://github.com/gdsfactory/gdsfactory/pull/454)
- replace 'bend_euler' string with function in mzi
[5.10.2](https://github.com/gdsfactory/gdsfactory/pull/453)
- fix tidy3d port orientation '+' or '-'
[5.10.1](https://github.com/gdsfactory/gdsfactory/pull/452)
- works with latest simphony and Sipann
[5.10.0](https://github.com/gdsfactory/gdsfactory/pull/449)
- rename LayerSet to LayerColors, as it is a more intuitive name. We only use this for defining 3D and 2D plot colors.
- add Pdk attributes
- layer_stack: Optional[LayerStack] = None
- layer_colors: Optional[LayerColors] = None
- sparameters_path: PathType
- add Component.to_3d()
- add gf.pdk.get_layer_stack() for 3D rendering and simulation plugins
- gf.simulation.lumerical.write_sparameters_lumerical
- gf.simulation.gmeep.write_sparameters_meep
- gf.simulation.tidy3d.write_sparameters
- modify Component.plot() to use colors from gf.pdk.get_layer_colors()
[5.9.0](https://github.com/gdsfactory/gdsfactory/pull/446)
- add doe_settings and doe_names to pack_doe and pack_doe_grid
- add with_hash setting to `gf.cell` that hashes parameters. By default `with_hash=False`, which gives meaningful name to component.
- update to tidy3d 1.4.0, add erosion, dilation and sidewall_angle_deg [PR](https://github.com/gdsfactory/gdsfactory/pull/447)
[5.8.11](https://github.com/gdsfactory/gdsfactory/pull/445)
- validate pdk layers after activate the pdk
- pdk layers, cells and cross_sections are an empty dict by default
- fix [spiral](https://github.com/gdsfactory/gdsfactory/pull/444)
[5.8.10](https://github.com/gdsfactory/gdsfactory/pull/443)
- add `SHOW_PORTS = (1, 12)` layer.
- document needed layers for the pdk.
| Layer | Purpose |
| -------------- | ------------------------------------------------------------ |
| PORT | optical port pins. For connectivity checks. |
| PORTE | electrical port pins. For connectivity checks. |
| DEVREC | device recognition layer. For connectivity checks. |
| SHOW_PORTS | add port pin markers when `Component.show()` |
| LABEL_INSTANCE | for adding instance labels on `gf.read.from_yaml` |
| LABEL | for adding labels to grating couplers for automatic testing. |
| TE | for TE polarization fiber marker. |
| TM | for TM polarization fiber marker. |