siepic-forge 1.2.0__tar.gz → 1.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. {siepic_forge-1.2.0/siepic_forge.egg-info → siepic_forge-1.2.2}/PKG-INFO +2 -2
  2. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/pyproject.toml +2 -2
  3. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/__init__.py +2 -2
  4. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/_component_data.py +9 -9
  5. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/technology.py +33 -26
  6. {siepic_forge-1.2.0 → siepic_forge-1.2.2/siepic_forge.egg-info}/PKG-INFO +2 -2
  7. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge.egg-info/requires.txt +1 -1
  8. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/LICENSE +0 -0
  9. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/README.md +0 -0
  10. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/setup.cfg +0 -0
  11. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/_layers.py +0 -0
  12. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/component.py +0 -0
  13. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/GCs_BB.gds +0 -0
  14. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_adiabatic_te1550.gds +0 -0
  15. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_adiabatic_tm1550.gds +0 -0
  16. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_bdc_te1550.gds +0 -0
  17. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_crossing4.gds +0 -0
  18. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_gc_te1550.gds +0 -0
  19. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_gc_tm1550.gds +0 -0
  20. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_routing_taper_te1550_w=500nm_to_w=3000nm_L=20um.gds +0 -0
  21. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_routing_taper_te1550_w=500nm_to_w=3000nm_L=40um.gds +0 -0
  22. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_splitter_swg_assist_te1310.gds +0 -0
  23. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_splitter_swg_assist_te1550.gds +0 -0
  24. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_terminator_te1310.gds +0 -0
  25. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_terminator_te1550.gds +0 -0
  26. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_terminator_tm1550.gds +0 -0
  27. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_y_1310.gds +0 -0
  28. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_y_1550.gds +0 -0
  29. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_y_adiabatic.gds +0 -0
  30. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/ebeam_y_adiabatic_500pin.gds +0 -0
  31. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/taper_si_simm_1310.gds +0 -0
  32. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge/library/taper_si_simm_1550.gds +0 -0
  33. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge.egg-info/SOURCES.txt +0 -0
  34. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge.egg-info/dependency_links.txt +0 -0
  35. {siepic_forge-1.2.0 → siepic_forge-1.2.2}/siepic_forge.egg-info/top_level.txt +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siepic-forge
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: SiEPIC EBeam PDK implementation for PhotonForge
5
5
  Author-email: "Flexcompute Inc." <info@flexcompute.com>
6
6
  Project-URL: homepage, https://github.com/flexcompute/siepic-forge
7
7
  Project-URL: documentation, https://github.com/flexcompute/siepic-forge
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE
10
- Requires-Dist: photonforge>=1.4.0
10
+ Requires-Dist: photonforge>=1.5.0
11
11
  Provides-Extra: test
12
12
  Requires-Dist: pytest>=7.2; extra == "test"
13
13
  Dynamic: license-file
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "siepic-forge"
7
- version = "1.2.0"
7
+ version = "1.2.2"
8
8
  authors = [{name = "Flexcompute Inc.", email = "info@flexcompute.com"}]
9
9
  description = "SiEPIC EBeam PDK implementation for PhotonForge"
10
10
  readme = "README.md"
11
- dependencies = ["photonforge >= 1.4.0"] # Need typing submodule
11
+ dependencies = ["photonforge >= 1.5.0"]
12
12
 
13
13
  [project.optional-dependencies]
14
14
  test = ["pytest >= 7.2"]
@@ -1,11 +1,11 @@
1
1
  from .component import component, component_names # noqa: F401
2
2
  from .technology import ebeam
3
3
 
4
- __version__ = "1.2.0"
4
+ __version__ = "1.2.2"
5
5
 
6
6
 
7
7
  def plot_cross_section(technology=None):
8
- import photonforge as pf
8
+ import photonforge as pf # noqa: PLC0415
9
9
 
10
10
  if technology is None:
11
11
  technology = ebeam()
@@ -10,15 +10,15 @@ _symmetries_crossing = [
10
10
 
11
11
  _waist = 5.0
12
12
 
13
- _angle = 8 * math.pi / 180
14
- _vx8 = math.sin(_angle)
15
- _vy8 = -math.cos(_angle)
13
+ _angle = 11 * math.pi / 180
14
+ _vx = math.sin(_angle)
15
+ _vy = -math.cos(_angle)
16
16
 
17
- _angle = 7 * math.pi / 180
17
+ _angle = 11 * math.pi / 180
18
18
  _tm1550_vx = math.sin(_angle)
19
19
  _tm1550_vy = -math.cos(_angle)
20
20
 
21
- _angle = -21 * math.pi / 180
21
+ _angle = -31 * math.pi / 180
22
22
  _te1550_vx = math.sin(_angle)
23
23
  _te1550_vy = -math.cos(_angle)
24
24
 
@@ -27,7 +27,7 @@ _component_data = {
27
27
  "GCs_BB",
28
28
  [
29
29
  ((0.0, 0.0), 180, "TE_1310_350"),
30
- ((-20.4, 0.0), (_vx8, 0, _vy8), _waist, 90),
30
+ ((-20.4, 0.0), (_vx, 0, _vy), _waist, 90),
31
31
  ],
32
32
  None,
33
33
  "grating-coupler",
@@ -36,7 +36,7 @@ _component_data = {
36
36
  "GCs_BB",
37
37
  [
38
38
  ((0.0, 0.0), 180, "TE_1550_500"),
39
- ((-20.4, 0.0), (_vx8, 0, _vy8), _waist, 90),
39
+ ((-20.4, 0.0), (_vx, 0, _vy), _waist, 90),
40
40
  ],
41
41
  None,
42
42
  "grating-coupler",
@@ -45,7 +45,7 @@ _component_data = {
45
45
  "GCs_BB",
46
46
  [
47
47
  ((0.0, 0.0), 180, "TM_1310_350"),
48
- ((-20.4, 0.0), (_vx8, 0, _vy8), _waist, 0),
48
+ ((-20.4, 0.0), (_vx, 0, _vy), _waist, 0),
49
49
  ],
50
50
  None,
51
51
  "grating-coupler",
@@ -54,7 +54,7 @@ _component_data = {
54
54
  "GCs_BB",
55
55
  [
56
56
  ((0.0, 0.0), 180, "TM_1550_500"),
57
- ((-20.4, 0.0), (_vx8, 0, _vy8), _waist, 0),
57
+ ((-20.4, 0.0), (_vx, 0, _vy), _waist, 0),
58
58
  ],
59
59
  None,
60
60
  "grating_coupler",
@@ -9,6 +9,33 @@ from ._layers import _layers
9
9
  # https://www.appliednt.com/nanosoi/sys/
10
10
 
11
11
 
12
+ _sio2 = {
13
+ "optical": td.material_library["SiO2"]["Palik_LowLoss"],
14
+ "electrical": td.Medium(permittivity=4.2, name="SiO2"),
15
+ }
16
+ _si = {
17
+ "optical": td.material_library["cSi"]["Li1993_293K"],
18
+ "electrical": td.Medium(permittivity=12.3, name="Si"),
19
+ }
20
+ _router = {
21
+ "optical": td.material_library["Au"]["Olmon2012evaporated"],
22
+ "electrical": td.LossyMetalMedium(
23
+ conductivity=17,
24
+ frequency_range=[0.1e9, 200e9],
25
+ fit_param=td.SurfaceImpedanceFitterParam(max_num_poles=16),
26
+ ),
27
+ }
28
+ _heater = {
29
+ "optical": td.material_library["W"]["Werner2009"],
30
+ "electrical": td.LossyMetalMedium(
31
+ conductivity=1.6,
32
+ frequency_range=[0.1e9, 200e9],
33
+ fit_param=td.SurfaceImpedanceFitterParam(max_num_poles=16),
34
+ ),
35
+ }
36
+ _open = td.Medium(permittivity=1.0)
37
+
38
+
12
39
  @pf.parametric_technology
13
40
  def ebeam(
14
41
  *,
@@ -22,31 +49,11 @@ def ebeam(
22
49
  bottom_oxide_thickness: pft.PositiveDimension = 2.0,
23
50
  top_oxide_thickness: pft.PositiveDimension = 2.2,
24
51
  passivation_oxide_thickness: pft.PositiveDimension = 0.3,
25
- sio2: dict[str, pft.Medium] = {
26
- "optical": td.material_library["SiO2"]["Palik_Lossless"],
27
- "electrical": td.Medium(permittivity=4.2, name="SiO2"),
28
- },
29
- si: dict[str, pft.Medium] = {
30
- "optical": td.material_library["cSi"]["Li1993_293K"],
31
- "electrical": td.Medium(permittivity=12.3, name="Si"),
32
- },
33
- router_metal: dict[str, pft.Medium] = {
34
- "optical": td.material_library["Au"]["Olmon2012evaporated"],
35
- "electrical": td.LossyMetalMedium(
36
- conductivity=17,
37
- frequency_range=[0.1e9, 200e9],
38
- fit_param=td.SurfaceImpedanceFitterParam(max_num_poles=16),
39
- ),
40
- },
41
- heater_metal: dict[str, pft.Medium] = {
42
- "optical": td.material_library["W"]["Werner2009"],
43
- "electrical": td.LossyMetalMedium(
44
- conductivity=1.6,
45
- frequency_range=[0.1e9, 200e9],
46
- fit_param=td.SurfaceImpedanceFitterParam(max_num_poles=16),
47
- ),
48
- },
49
- opening: pft.Medium = td.Medium(permittivity=1.0),
52
+ sio2: dict[str, pft.Medium] = _sio2,
53
+ si: dict[str, pft.Medium] = _si,
54
+ router_metal: dict[str, pft.Medium] = _router,
55
+ heater_metal: dict[str, pft.Medium] = _heater,
56
+ opening: pft.Medium = _open,
50
57
  ) -> pf.Technology:
51
58
  """Create a technology for the e-beam PDK.
52
59
 
@@ -245,7 +252,7 @@ def ebeam(
245
252
  ),
246
253
  }
247
254
 
248
- result = pf.Technology("SiEPIC EBeam Si", "1.2.0", layers, extrusion_specs, ports, opening)
255
+ result = pf.Technology("SiEPIC EBeam Si", "1.2.2", layers, extrusion_specs, ports, opening)
249
256
  result.random_variables = [
250
257
  pf.monte_carlo.RandomVariable("si_thickness", value=0.22, stdev=0.0223 / 6),
251
258
  ]
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siepic-forge
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: SiEPIC EBeam PDK implementation for PhotonForge
5
5
  Author-email: "Flexcompute Inc." <info@flexcompute.com>
6
6
  Project-URL: homepage, https://github.com/flexcompute/siepic-forge
7
7
  Project-URL: documentation, https://github.com/flexcompute/siepic-forge
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE
10
- Requires-Dist: photonforge>=1.4.0
10
+ Requires-Dist: photonforge>=1.5.0
11
11
  Provides-Extra: test
12
12
  Requires-Dist: pytest>=7.2; extra == "test"
13
13
  Dynamic: license-file
@@ -1,4 +1,4 @@
1
- photonforge>=1.4.0
1
+ photonforge>=1.5.0
2
2
 
3
3
  [test]
4
4
  pytest>=7.2
File without changes
File without changes
File without changes