gplugins 1.1.2__tar.gz → 1.1.3__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 (253) hide show
  1. {gplugins-1.1.2 → gplugins-1.1.3}/PKG-INFO +6 -5
  2. {gplugins-1.1.2 → gplugins-1.1.3}/README.md +1 -1
  3. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/__init__.py +1 -1
  4. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/get_component_with_net_layers.py +24 -15
  5. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/get_meep_geometry.py +3 -0
  6. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/get_simulation.py +1 -1
  7. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/meep_adjoint_optimization.py +1 -1
  8. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/parse_gds.py +1 -2
  9. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/write_sparameters_lumerical.py +11 -13
  10. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/path_length_analysis/path_length_analysis_from_gds.py +34 -18
  11. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sentaurus/sprocess.py +11 -1
  12. {gplugins-1.1.2 → gplugins-1.1.3}/pyproject.toml +6 -5
  13. {gplugins-1.1.2 → gplugins-1.1.3}/LICENSE +0 -0
  14. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/__init__.py +0 -0
  15. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/base_models/__init__.py +0 -0
  16. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/base_models/component.py +0 -0
  17. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/base_models/simulation.py +0 -0
  18. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/config.py +0 -0
  19. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/types.py +0 -0
  20. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/__init__.py +0 -0
  21. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/add_simulation_markers.py +0 -0
  22. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/async_helpers.py +0 -0
  23. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/cache.py +0 -0
  24. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/convert_sparameters.py +0 -0
  25. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/disable_print.py +0 -0
  26. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/get_capacitance.py +0 -0
  27. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/get_component_with_local_layers.py +0 -0
  28. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/get_effective_indices.py +0 -0
  29. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/get_scattering.py +0 -0
  30. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/get_sparameters_path.py +0 -0
  31. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/optical_constants.py +0 -0
  32. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/parse_layer_stack.py +0 -0
  33. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/plot.py +0 -0
  34. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/plot_csv.py +0 -0
  35. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/port_symmetries.py +0 -0
  36. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/common/utils/tests/test_get_component_with_new_port_layers.py +0 -0
  37. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/dagster/Makefile +0 -0
  38. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/dagster/__init__.py +0 -0
  39. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/dagster/workflow.py +0 -0
  40. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/devsim/__init__.py +0 -0
  41. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/devsim/doping.py +0 -0
  42. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/devsim/get_simulation.py +0 -0
  43. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/devsim/get_simulation_xsection.py +0 -0
  44. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/devsim/get_solver.py +0 -0
  45. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/devsim/test_devsim.py +0 -0
  46. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/elmer/__init__.py +0 -0
  47. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/elmer/electrostatic.sif.j2 +0 -0
  48. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/elmer/get_capacitance.py +0 -0
  49. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/elmer/tests/test_elmer.py +0 -0
  50. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/fdtdz/__init__.py +0 -0
  51. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/fdtdz/get_epsilon_fdtdz.py +0 -0
  52. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/fdtdz/get_ports_fdtdz.py +0 -0
  53. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/fdtdz/get_sparameters_fdtdz.py +0 -0
  54. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/femwell/__init__.py +0 -0
  55. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/femwell/mode_solver.py +0 -0
  56. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/femwell/solve_thermal.py +0 -0
  57. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/femwell/test_mode_solver.py +0 -0
  58. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/Makefile +0 -0
  59. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/__init__.py +0 -0
  60. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/b64.py +0 -0
  61. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/gfviz.py +0 -0
  62. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/netlist.py +0 -0
  63. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/serve.py +0 -0
  64. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/static/b64.js +0 -0
  65. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/static/schemedit.js +0 -0
  66. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/static/schemedit.wasm +0 -0
  67. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/templates/example.json +0 -0
  68. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gfviz/templates/index.html +0 -0
  69. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/__init__.py +0 -0
  70. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/get_material.py +0 -0
  71. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/get_port_eigenmode.py +0 -0
  72. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/get_simulation_grating_farfield.py +0 -0
  73. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/get_simulation_grating_fiber.py +0 -0
  74. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_eigenmode.py +0 -0
  75. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_materials.py +0 -0
  76. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_crossing.csv +0 -0
  77. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_straight.csv +0 -0
  78. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_crossing.csv +0 -0
  79. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_straight.csv +0 -0
  80. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_symmetries_straight.csv +0 -0
  81. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi.csv +0 -0
  82. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi_pool.csv +0 -0
  83. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_crossing_symmetric.csv +0 -0
  84. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight.csv +0 -0
  85. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_batch.csv +0 -0
  86. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi.csv +0 -0
  87. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi_pool.csv +0 -0
  88. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_symmetric.csv +0 -0
  89. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/test_write_sparameters_meep.py +0 -0
  90. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/write_sparameters_grating.py +0 -0
  91. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/write_sparameters_meep.py +0 -0
  92. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/write_sparameters_meep_batch.py +0 -0
  93. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmeep/write_sparameters_meep_mpi.py +0 -0
  94. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/__init__.py +0 -0
  95. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/define_polysurfaces.py +0 -0
  96. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/get_mesh.py +0 -0
  97. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/parse_component.py +0 -0
  98. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/tests/test_custom_names.py +0 -0
  99. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/tests/test_meshing_2D.py +0 -0
  100. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/tests/test_meshing_3D.py +0 -0
  101. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/uz_xsection_mesh.py +0 -0
  102. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/xy_xsection_mesh.py +0 -0
  103. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/gmsh/xyz_mesh.py +0 -0
  104. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/__init__.py +0 -0
  105. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/dataprep/__init__.py +0 -0
  106. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/dataprep/regions.py +0 -0
  107. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/__init__.py +0 -0
  108. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/check_duplicated_cells.py +0 -0
  109. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/check_exclusion.py +0 -0
  110. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/check_inclusion.py +0 -0
  111. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/check_space.py +0 -0
  112. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/check_width.py +0 -0
  113. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/count_drc.py +0 -0
  114. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/samples/drc_errors.py +0 -0
  115. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/drc/write_drc.py +0 -0
  116. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/get_density.py +0 -0
  117. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/get_netlist.py +0 -0
  118. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/netlist_graph.py +0 -0
  119. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/netlist_spice_reader.py +0 -0
  120. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/plot_nets.py +0 -0
  121. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_dataprep_regions.py +0 -0
  122. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_density.py +0 -0
  123. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_drc_exclusion.py +0 -0
  124. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_drc_inclusion.py +0 -0
  125. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_drc_space.py +0 -0
  126. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_drc_width.py +0 -0
  127. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_global_density.py +0 -0
  128. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_netlist_spice_reader.py +0 -0
  129. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/klayout/tests/test_plot_nets.py +0 -0
  130. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/README.md +0 -0
  131. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/__init__.py +0 -0
  132. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/interconnect.py +0 -0
  133. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/mapping_ubcpdk.yml +0 -0
  134. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/read.py +0 -0
  135. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/settings.py +0 -0
  136. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/tests/test_lumerical_read_sparameters.py +0 -0
  137. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/tests/test_netlist.py +0 -0
  138. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/tests/test_netlist_get_routes.py +0 -0
  139. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/lumerical/write_sparameters_lumerical_components.py +0 -0
  140. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/materials/__init__.py +0 -0
  141. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/materials/inorganic.py +0 -0
  142. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/materials/optical/__init__.py +0 -0
  143. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/materials/optical/optical_mat.py +0 -0
  144. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/materials/optical/refractive_index_info.py +0 -0
  145. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/materials/semiconductor/__init__.py +0 -0
  146. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/materials/semiconductor/semiconductor_mat.py +0 -0
  147. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/meow/__init__.py +0 -0
  148. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/meow/meow_eme.py +0 -0
  149. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/meow/test_meow_simulation.py +0 -0
  150. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/__init__.py +0 -0
  151. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/coupler.py +0 -0
  152. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/find_coupling_vs_gap.py +0 -0
  153. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/find_mode_dispersion.py +0 -0
  154. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/find_modes.py +0 -0
  155. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/find_modes_cross_section.py +0 -0
  156. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/find_neff_ng_dw_dh.py +0 -0
  157. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/find_neff_vs_width.py +0 -0
  158. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/get_mode_solver_coupler.py +0 -0
  159. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/get_mode_solver_cross_section.py +0 -0
  160. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/get_mode_solver_rib.py +0 -0
  161. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/modes/neff_vs_width_nitride.csv +0 -0
  162. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/modes/neff_vs_width_rib.csv +0 -0
  163. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/modes/neff_vs_width_strip.csv +0 -0
  164. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/neff_convergence_test.py +0 -0
  165. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/neff_vs_width.csv +0 -0
  166. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/overlap.py +0 -0
  167. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_dw_dh/test_dw_dh.csv +0 -0
  168. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_dw_dh/test_dw_dh.obtained.csv +0 -0
  169. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_dw_dh/test_dw_dh_dispersion.csv +0 -0
  170. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_dw_dh.py +0 -0
  171. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_find_modes.py +0 -0
  172. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_find_modes_dispersion.py +0 -0
  173. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.csv +0 -0
  174. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.obtained.csv +0 -0
  175. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/tests/test_neff_vs_width.py +0 -0
  176. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/types.py +0 -0
  177. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/modes/waveguide.py +0 -0
  178. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/palace/__init__.py +0 -0
  179. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/palace/driven.json +0 -0
  180. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/palace/electrostatic.json +0 -0
  181. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/palace/get_capacitance.py +0 -0
  182. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/palace/get_scattering.py +0 -0
  183. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/palace/tests/test_palace.py +0 -0
  184. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/path_length_analysis/__init__.py +0 -0
  185. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/path_length_analysis/path_length_analysis.py +0 -0
  186. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/path_length_analysis/test_pathlength_extraction.py +0 -0
  187. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/photonic_circuit_models/__init__.py +0 -0
  188. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/photonic_circuit_models/coupler.py +0 -0
  189. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/photonic_circuit_models/fsr.py +0 -0
  190. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/photonic_circuit_models/heater.py +0 -0
  191. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/photonic_circuit_models/mzi.py +0 -0
  192. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/photonic_circuit_models/ring.py +0 -0
  193. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/__init__.py +0 -0
  194. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/diffusion.py +0 -0
  195. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/implant_tables.py +0 -0
  196. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/pysrim.py +0 -0
  197. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/silicon.py +0 -0
  198. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/skew/antimony_si_skew.csv +0 -0
  199. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/skew/arsenic_si_skew.csv +0 -0
  200. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/skew/boron_si_skew.csv +0 -0
  201. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/process/skew/phosphorus_si_skew.csv +0 -0
  202. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/__init__.py +0 -0
  203. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/build_model.py +0 -0
  204. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/integrations/__init__.py +0 -0
  205. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/integrations/femwell_waveguide_model.py +0 -0
  206. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/integrations/meep_FDTD_model.py +0 -0
  207. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/integrations/meow_eme_model.py +0 -0
  208. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/interpolators.py +0 -0
  209. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/mlp.py +0 -0
  210. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/models.py +0 -0
  211. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/parameter.py +0 -0
  212. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/plot_model.py +0 -0
  213. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/read.py +0 -0
  214. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/tests/test_mzi.py +0 -0
  215. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.obtained.yml +0 -0
  216. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.yml +0 -0
  217. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/tests/test_mzi_lattice.py +0 -0
  218. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sax/tests/test_parameters.py +0 -0
  219. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sentaurus/mask_sde.py +0 -0
  220. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sentaurus/mask_sprocess.py +0 -0
  221. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sentaurus/sde.py +0 -0
  222. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sentaurus/sdevice.py +0 -0
  223. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/sentaurus/svisual.py +0 -0
  224. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/spice/__init__.py +0 -0
  225. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/spice/spice_to_yaml.py +0 -0
  226. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/spice/tests/__init__.py +0 -0
  227. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/spice/tests/test_interconnect.py +0 -0
  228. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/__init__.py +0 -0
  229. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/component.py +0 -0
  230. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/get_results.py +0 -0
  231. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/get_simulation_grating_coupler.py +0 -0
  232. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/materials.py +0 -0
  233. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/modes.py +0 -0
  234. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_component_modeler.py +0 -0
  235. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_materials.py +0 -0
  236. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_modes/test_sweep_width.csv +0 -0
  237. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_modes/test_sweep_width.obtained.csv +0 -0
  238. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_modes_coupler.py +0 -0
  239. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_modes_waveguide.py +0 -0
  240. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_plot_simulation_grating_coupler.py +0 -0
  241. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/test_write_sparameters.py +0 -0
  242. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/tests_sparameters/sim_ref.yaml +0 -0
  243. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters.py +0 -0
  244. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters_grating_coupler.py +0 -0
  245. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/types.py +0 -0
  246. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/util.py +0 -0
  247. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/tidy3d/write_sparameters_grating_coupler.py +0 -0
  248. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/vlsir/__init__.py +0 -0
  249. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/vlsir/export_netlist.py +0 -0
  250. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/vlsir/tests/resources/pads_correct.cir +0 -0
  251. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/vlsir/tests/resources/pads_correct.scs +0 -0
  252. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/vlsir/tests/resources/pads_correct.sp +0 -0
  253. {gplugins-1.1.2 → gplugins-1.1.3}/gplugins/vlsir/tests/test_vlsir.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: gplugins
3
- Version: 1.1.2
3
+ Version: 1.1.3
4
4
  Summary: gdsfactory plugins
5
5
  Keywords: python
6
6
  Author-email: gdsfactory <contact@gdsfactory.com>
@@ -14,6 +14,7 @@ Requires-Dist: gdsfactory>=8.5.3
14
14
  Requires-Dist: pint
15
15
  Requires-Dist: gdstk
16
16
  Requires-Dist: tqdm
17
+ Requires-Dist: numpy<3
17
18
  Requires-Dist: dagster ; extra == "dagster"
18
19
  Requires-Dist: dagit ; extra == "dagster"
19
20
  Requires-Dist: pre-commit ; extra == "dev"
@@ -34,7 +35,7 @@ Requires-Dist: tidy3d>=2.5.2,<2.8 ; extra == "devsim"
34
35
  Requires-Dist: jupytext ; extra == "docs"
35
36
  Requires-Dist: matplotlib ; extra == "docs"
36
37
  Requires-Dist: jupyter-book~=1.0 ; extra == "docs"
37
- Requires-Dist: pyvista[all,trame]<=0.43.8 ; extra == "docs"
38
+ Requires-Dist: pyvista[all, trame]<=0.43.8 ; extra == "docs"
38
39
  Requires-Dist: femwell~=0.1.11 ; extra == "femwell"
39
40
  Requires-Dist: meshwell~=1.0.7 ; extra == "femwell"
40
41
  Requires-Dist: jinja2 ; extra == "gfviz"
@@ -60,7 +61,7 @@ Requires-Dist: tidy3d>=2.5.2,<2.8 ; extra == "meow"
60
61
  Requires-Dist: jax>=0.4.26 ; extra == "sax"
61
62
  Requires-Dist: jaxlib>=0.4.26 ; extra == "sax"
62
63
  Requires-Dist: flax>=0.8.2 ; extra == "sax"
63
- Requires-Dist: sax~=0.13.1 ; extra == "sax"
64
+ Requires-Dist: sax>=0.13.1,<0.15.0 ; extra == "sax"
64
65
  Requires-Dist: scikit-learn ; extra == "sax"
65
66
  Requires-Dist: pyvis<=0.3.1 ; extra == "sax"
66
67
  Requires-Dist: bokeh ; extra == "schematic"
@@ -85,7 +86,7 @@ Provides-Extra: schematic
85
86
  Provides-Extra: tidy3d
86
87
  Provides-Extra: vlsir
87
88
 
88
- # gplugins 1.1.2
89
+ # gplugins 1.1.3
89
90
 
90
91
  [![docs](https://github.com/gdsfactory/gplugins/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/gplugins/)
91
92
  [![PyPI](https://img.shields.io/pypi/v/gplugins)](https://pypi.org/project/gplugins/)
@@ -1,4 +1,4 @@
1
- # gplugins 1.1.2
1
+ # gplugins 1.1.3
2
2
 
3
3
  [![docs](https://github.com/gdsfactory/gplugins/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/gplugins/)
4
4
  [![PyPI](https://img.shields.io/pypi/v/gplugins)](https://pypi.org/project/gplugins/)
@@ -1,6 +1,6 @@
1
1
  """gplugins - gdsfactory plugins"""
2
2
 
3
- __version__ = "1.1.2"
3
+ __version__ = "1.1.3"
4
4
 
5
5
  import pathlib
6
6
 
@@ -1,7 +1,7 @@
1
1
  import copy
2
2
 
3
3
  import gdsfactory as gf
4
- import gdstk
4
+ from gdsfactory.technology import LogicalLayer
5
5
  from gdsfactory.typings import Component, LayerStack
6
6
 
7
7
 
@@ -56,9 +56,9 @@ def get_component_with_net_layers(
56
56
  add_to_layerstack: True by default, but can be set to False to disable parsing of the layerstack.
57
57
  """
58
58
 
59
- return NotImplementedError(
60
- "Meshing component with net layers not implemented in gdsfactory8 yet."
61
- )
59
+ # return NotImplementedError(
60
+ # "Meshing component with net layers not implemented in gdsfactory8 yet."
61
+ # )
62
62
 
63
63
  # Initialize returned component
64
64
  net_component = component.copy()
@@ -67,17 +67,23 @@ def get_component_with_net_layers(
67
67
  for i, portname in enumerate(port_names):
68
68
  port = component.ports[portname]
69
69
  # Get original port layer polygons, and modify a new component without that layer
70
- polygons = net_component.extract(layers=[port.layer]).get_polygons()
71
- net_component = net_component.remove_layers(layers=[port.layer])
70
+ polygons = (
71
+ net_component.extract(layers=(port.layer,))
72
+ .get_polygons()
73
+ .get(port.layer, [])
74
+ )
75
+ net_component = net_component.remove_layers(layers=(port.layer,))
72
76
  for polygon in polygons:
73
77
  # If polygon belongs to port, create a unique new layer, and add the polygon to it
74
-
75
- if gdstk.inside(
76
- [port.center],
77
- gdstk.offset(gdstk.Polygon(polygon), gf.get_active_pdk().grid_size),
78
- )[0]:
78
+ if polygon.sized(3 * gf.kcl.dbu).inside(port.center):
79
+ # if gdstk.inside(
80
+ # [port.center],
81
+ # gdstk.offset(gdstk.Polygon(polygon), gf.get_active_pdk().grid_size),
82
+ # )[0]:
79
83
  try:
80
- port_layernames = layer_stack.get_layer_to_layername()[port.layer]
84
+ port_layernames = layer_stack.get_layer_to_layername()[
85
+ LogicalLayer(layer=port.layer)
86
+ ]
81
87
  except KeyError as e:
82
88
  raise KeyError(
83
89
  "Make sure your `layer_stack` contains all layers with ports"
@@ -89,10 +95,13 @@ def get_component_with_net_layers(
89
95
  )
90
96
  if add_to_layerstack:
91
97
  new_layer = copy.deepcopy(layer_stack.layers[old_layername])
92
- new_layer.layer = (
93
- new_layers_init[0] + i,
94
- new_layers_init[1] + j,
98
+ new_layer.layer = LogicalLayer(
99
+ layer=(
100
+ new_layers_init[0] + i,
101
+ new_layers_init[1] + j,
102
+ )
95
103
  )
104
+ new_layer.name = f"{old_layername}{delimiter}{portname}"
96
105
  layer_stack.layers[f"{old_layername}{delimiter}{portname}"] = (
97
106
  new_layer
98
107
  )
@@ -44,12 +44,15 @@ def get_meep_geometry_from_component(
44
44
  layer_to_polygons = component_with_booleans.get_polygons_points()
45
45
 
46
46
  ordered_layer_stack_keys = order_layer_stack(layer_stack)[::-1]
47
+
47
48
  for layername in ordered_layer_stack_keys:
48
49
  layer = layer_stack.layers[layername].layer
49
50
 
50
51
  if layer not in layer_to_polygons:
51
52
  continue
52
53
  polygons = layer_to_polygons[layer]
54
+ print(f"layer: {layer}, polygons: {polygons}")
55
+
53
56
  if layer in layer_to_thickness and layer in layer_to_material:
54
57
  height = layer_to_thickness[layer] if is_3d else mp.inf
55
58
  zmin_um = layer_to_zmin[layer] if is_3d else 0
@@ -270,7 +270,7 @@ def get_simulation(
270
270
 
271
271
  # Add port monitors dict
272
272
  monitors = {}
273
- for port in component_ref:
273
+ for port in component_ref.ports:
274
274
  port_name = port.name
275
275
  angle_rad = np.radians(port.orientation)
276
276
  width = port.width + 2 * port_margin
@@ -137,7 +137,7 @@ def get_meep_adjoint_optimizer(
137
137
  for monitor in monitors.values()
138
138
  ]
139
139
 
140
- c = component.copy()
140
+ c = component.dup()
141
141
  for design_region, design_variable in zip(design_regions, design_variables):
142
142
  sim.geometry.append(
143
143
  Block(design_region.size, design_region.center, material=design_variable)
@@ -24,7 +24,6 @@ def round_coordinates(geom, ndigits=4):
24
24
 
25
25
  def fuse_polygons(component, layer, round_tol=4, simplify_tol=1e-4, offset_tol=None):
26
26
  """Take all polygons from a layer, and returns a single (Multi)Polygon shapely object."""
27
-
28
27
  layer_region = layer.get_shapes(component)
29
28
 
30
29
  # Convert polygons to shapely
@@ -37,7 +36,7 @@ def fuse_polygons(component, layer, round_tol=4, simplify_tol=1e-4, offset_tol=N
37
36
  exterior_points.append((point.x / 1000, point.y / 1000))
38
37
  for hole_index in range(klayout_polygon.holes()):
39
38
  holes_points = []
40
- for point in layer_region.each_polygon_hole(hole_index):
39
+ for point in klayout_polygon.each_point_hole(hole_index):
41
40
  holes_points.append((point.x / 1000, point.y / 1000))
42
41
  interior_points.append(holes_points)
43
42
 
@@ -241,7 +241,6 @@ def write_sparameters_lumerical(
241
241
  component_extended_beyond_pml = gf.components.extension.extend_ports(
242
242
  component=component_extended, length=ss.port_extension
243
243
  )
244
- component_extended_beyond_pml.name = "top"
245
244
  gdspath = component_extended_beyond_pml.write_gds()
246
245
 
247
246
  filepath_npz = get_sparameters_path(
@@ -270,17 +269,17 @@ def write_sparameters_lumerical(
270
269
 
271
270
  layers_thickness = [
272
271
  layer_to_thickness[layer]
273
- for layer in component_with_booleans.get_layers()
272
+ for layer in component_with_booleans.layers
274
273
  if layer in layer_to_thickness
275
274
  ]
276
275
  if not layers_thickness:
277
276
  raise ValueError(
278
- f"no layers for component {component.get_layers()}"
277
+ f"no layers for component {component.layers}"
279
278
  f"in layer stack {layer_stack}"
280
279
  )
281
280
  layers_zmin = [
282
281
  layer_to_zmin[layer]
283
- for layer in component_with_booleans.get_layers()
282
+ for layer in component_with_booleans.layers
284
283
  if layer in layer_to_zmin
285
284
  ]
286
285
  component_thickness = max(layers_thickness)
@@ -357,7 +356,7 @@ def write_sparameters_lumerical(
357
356
  simulation_time=ss.simulation_time,
358
357
  simulation_temperature=ss.simulation_temperature,
359
358
  )
360
- component_layers = component_with_booleans.get_layers()
359
+ component_layers = component_with_booleans.layers
361
360
 
362
361
  for layer, thickness in layer_to_thickness.items():
363
362
  if layer not in component_layers:
@@ -410,21 +409,21 @@ def write_sparameters_lumerical(
410
409
  direction = "Backward"
411
410
  injection_axis = "x-axis"
412
411
  dxp = 0
413
- dyp = 2 * ss.port_margin + port.width
412
+ dyp = 2 * ss.port_margin + port.dwidth
414
413
  elif 45 < deg < 90 + 45:
415
414
  direction = "Backward"
416
415
  injection_axis = "y-axis"
417
- dxp = 2 * ss.port_margin + port.width
416
+ dxp = 2 * ss.port_margin + port.dwidth
418
417
  dyp = 0
419
418
  elif 90 + 45 < deg < 180 + 45:
420
419
  direction = "Forward"
421
420
  injection_axis = "x-axis"
422
421
  dxp = 0
423
- dyp = 2 * ss.port_margin + port.width
422
+ dyp = 2 * ss.port_margin + port.dwidth
424
423
  elif 180 + 45 < deg < 180 + 45 + 90:
425
424
  direction = "Forward"
426
425
  injection_axis = "y-axis"
427
- dxp = 2 * ss.port_margin + port.width
426
+ dxp = 2 * ss.port_margin + port.dwidth
428
427
  dyp = 0
429
428
 
430
429
  else:
@@ -545,9 +544,8 @@ def _sample_convergence_wavelength():
545
544
 
546
545
 
547
546
  if __name__ == "__main__":
548
- import lumapi
549
-
550
- s = lumapi.FDTD()
547
+ # import lumapi
548
+ # s = lumapi.FDTD()
551
549
 
552
550
  # component = gf.components.straight(length=2.5)
553
551
  component = gf.components.mmi1x2()
@@ -557,7 +555,7 @@ if __name__ == "__main__":
557
555
  component=component,
558
556
  material_name_to_lumerical=material_name_to_lumerical,
559
557
  run=False,
560
- session=s,
558
+ # session=s,
561
559
  )
562
560
  # c = gf.components.coupler_ring(length_x=3)
563
561
  # c = gf.components.mmi1x2()
@@ -8,6 +8,7 @@ import matplotlib.pyplot as plt
8
8
  import numpy as np
9
9
  import shapely as sh
10
10
  import shapely.ops as ops
11
+ from gdsfactory import logger
11
12
  from gdsfactory.typings import List, Optional, Tuple
12
13
  from klayout.db import DPoint, Polygon
13
14
  from scipy.signal import savgol_filter
@@ -89,8 +90,8 @@ def centerline_single_poly_2_ports(poly, under_sampling, port_list) -> np.ndarra
89
90
  mid_point_found = _check_midpoint_found(inner_points, outer_points, port_list)
90
91
 
91
92
  # ==== This is for debugging, keep until this is stable ====
92
- # print(len(outer_points))
93
- # print(len(inner_points))
93
+ # logger.debug(len(outer_points))
94
+ # logger.debug(len(inner_points))
94
95
  # input()
95
96
 
96
97
  # Relatively simple check to make sure that the first half is the outer curve and the
@@ -133,7 +134,7 @@ def centerline_single_poly_2_ports(poly, under_sampling, port_list) -> np.ndarra
133
134
  if n_rolls > points.shape[0] and n_fixes_tried < 10 and not mid_point_found:
134
135
  # Sometimes it is enough if we make the inner point be +-n elements longer
135
136
  n_fixes_tried += 1
136
- # print(f"Trying fix {n_fixes_tried}")
137
+ # logger.debug(f"Trying fix {n_fixes_tried}")
137
138
  n_rolls = 0
138
139
 
139
140
  outer_points = points[: (mid_index + fix_values[n_fixes_tried]), :]
@@ -154,7 +155,7 @@ def centerline_single_poly_2_ports(poly, under_sampling, port_list) -> np.ndarra
154
155
 
155
156
  elif n_rolls > points.shape[0] and not mid_point_found:
156
157
  # We could not find the right inner and outer points
157
- print("We could not find the center line correctly")
158
+ logger.error(f"We could not find the center line correctly for {port_list}")
158
159
  mid_point_found = True
159
160
  outer_points = points[:mid_index]
160
161
  inner_points = points[mid_index:]
@@ -166,18 +167,29 @@ def centerline_single_poly_2_ports(poly, under_sampling, port_list) -> np.ndarra
166
167
  inds = np.argsort(outer_points[:, 0])
167
168
  outer_points = outer_points[inds, :]
168
169
 
169
- # Apply undersampling if necessary
170
- inner_points = np.append(
171
- inner_points[::under_sampling], np.array([inner_points[-1]]), axis=0
172
- )
173
- outer_points = np.append(
174
- outer_points[::under_sampling], np.array([outer_points[-1]]), axis=0
175
- )
170
+ # # (OLD, keep juts in case for now) Apply undersampling if necessary
171
+ # inner_points = np.append(
172
+ # inner_points[::under_sampling], np.array([inner_points[-1]]), axis=0
173
+ # )
174
+ # outer_points = np.append(
175
+ # outer_points[::under_sampling], np.array([outer_points[-1]]), axis=0
176
+ # )
177
+
178
+ # Apply undersampling if necessary, and add the last point if it is not there
179
+ last_inner_pt = inner_points[-1]
180
+ inner_points = inner_points[::under_sampling]
181
+ if last_inner_pt not in inner_points:
182
+ inner_points = np.append(inner_points, np.array([last_inner_pt]), axis=0)
183
+
184
+ last_outer_pt = outer_points[-1]
185
+ outer_points = outer_points[::under_sampling]
186
+ if last_outer_pt not in outer_points:
187
+ outer_points = np.append(outer_points, np.array([last_outer_pt]), axis=0)
176
188
 
177
189
  # There is a chance that the length of inner and outer is different
178
190
  # Interpolate if that's the case
179
191
  if inner_points.shape[0] != outer_points.shape[0]:
180
- # print('interpolating')
192
+ # logger.debug('interpolating')
181
193
  if inner_points.shape[0] > outer_points.shape[0]:
182
194
  # More points in inner
183
195
  outer_pts_x = outer_points[:, 0]
@@ -318,9 +330,13 @@ def extract_paths(
318
330
 
319
331
  if n_ports == 2:
320
332
  # This is the simplest case - a straight or a bend
321
- centerline = centerline_single_poly_2_ports(
322
- poly, under_sampling, consider_ports
323
- )
333
+
334
+ if poly[0].is_box(): # only 4 points, no undersampling
335
+ centerline = centerline_single_poly_2_ports(poly, 1, consider_ports)
336
+ else:
337
+ centerline = centerline_single_poly_2_ports(
338
+ poly, under_sampling, consider_ports
339
+ )
324
340
  if filter_function is not None:
325
341
  centerline = filter_function(centerline)
326
342
  p = gf.Path(centerline)
@@ -652,10 +668,10 @@ def _demo_routes():
652
668
  if __name__ == "__main__":
653
669
  # c0 = gf.components.bend_euler(npoints=20)
654
670
  # c0 = gf.components.bend_euler(cross_section="xs_sc", with_arc_floorplan=True)
655
- # c0 = gf.components.bend_circular()
671
+ c0 = gf.components.bend_circular()
656
672
  # c0 = gf.components.bend_s(npoints=50)
657
673
  # c0 = gf.components.mmi2x2()
658
- c0 = gf.components.coupler()
674
+ # c0 = gf.components.coupler()
659
675
  ev_coupling = True
660
676
  # c0 = _demo_routes()
661
677
  # ev_coupling = False
@@ -672,7 +688,7 @@ if __name__ == "__main__":
672
688
  under_sampling=1,
673
689
  evanescent_coupling=ev_coupling,
674
690
  # consider_ports=["o2", "o3"],
675
- port_positions=[(-10.0, -1.6), (30.0, -1.6)],
691
+ # port_positions=[(-10.0, -1.6), (30.0, -1.6)],
676
692
  )
677
693
  r_and_l_dict = get_min_radius_and_length_path_dict(path_dict)
678
694
  for ports, (min_radius, length) in r_and_l_dict.items():
@@ -1,3 +1,4 @@
1
+ import importlib
1
2
  import math
2
3
  import pathlib
3
4
  from pathlib import Path
@@ -15,7 +16,10 @@ from gdsfactory.technology.processes import (
15
16
  from gdsfactory.typings import Dict, Tuple
16
17
 
17
18
  from gplugins.gmsh.parse_gds import cleanup_component_layermap
18
- from gplugins.sentaurus.mask import get_sentaurus_mask_2D, get_sentaurus_mask_3D
19
+ from gplugins.sentaurus.mask_sprocess import (
20
+ get_sentaurus_mask_2D,
21
+ get_sentaurus_mask_3D,
22
+ )
19
23
 
20
24
  DEFAULT_INIT_LINES = """AdvancedCalibration
21
25
  mgoals accuracy=2e-5
@@ -212,6 +216,12 @@ def write_sprocess(
212
216
  num_threads (int): for parallelization
213
217
  """
214
218
 
219
+ gf_version = importlib.metadata.version("gdsfactory")
220
+ if int(gf_version.split(".")[0]) >= 8:
221
+ raise ImportError(
222
+ "The Sentaurus Process plugin is not compatible with gdsfactory version 8 or above."
223
+ )
224
+
215
225
  save_directory = (
216
226
  Path("./sprocess/") if save_directory is None else Path(save_directory)
217
227
  )
@@ -26,7 +26,8 @@ dependencies = [
26
26
  "gdsfactory>=8.5.3",
27
27
  "pint",
28
28
  "gdstk",
29
- "tqdm"
29
+ "tqdm",
30
+ "numpy<3"
30
31
  ]
31
32
  description = "gdsfactory plugins"
32
33
  keywords = ["python"]
@@ -34,7 +35,7 @@ license = {file = "LICENSE"}
34
35
  name = "gplugins"
35
36
  readme = "README.md"
36
37
  requires-python = ">=3.10"
37
- version = "1.1.2"
38
+ version = "1.1.3"
38
39
 
39
40
  [project.optional-dependencies]
40
41
  dagster = ["dagster", "dagit"]
@@ -99,7 +100,7 @@ sax = [
99
100
  "jax>=0.4.26",
100
101
  "jaxlib>=0.4.26",
101
102
  "flax>=0.8.2",
102
- "sax~=0.13.1",
103
+ "sax>=0.13.1,<0.15.0",
103
104
  "scikit-learn",
104
105
  "pyvis<=0.3.1"
105
106
  ]
@@ -123,7 +124,7 @@ ignore-words-list = 'te, te/tm, te, ba, fpr, fpr_spacing, ro, nd, donot, schem,
123
124
  skip = 'notebooks/palace_02_fullwave.ipynb'
124
125
 
125
126
  [tool.mypy]
126
- python_version = "3.10"
127
+ python_version = "3.11"
127
128
  strict = true
128
129
 
129
130
  [tool.pylsp-mypy]
@@ -210,7 +211,7 @@ message_template = "Bump to {new_version}"
210
211
  tag_template = "v{new_version}"
211
212
 
212
213
  [tool.tbump.version]
213
- current = "1.1.2"
214
+ current = "1.1.3"
214
215
  regex = '''
215
216
  (?P<major>\d+)
216
217
  \.
File without changes
File without changes