gplugins 1.4.0__tar.gz → 1.4.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 (249) hide show
  1. {gplugins-1.4.0 → gplugins-1.4.2}/PKG-INFO +4 -4
  2. {gplugins-1.4.0 → gplugins-1.4.2}/README.md +1 -1
  3. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/__init__.py +1 -1
  4. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/xyz_mesh.py +3 -7
  5. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/path_length_analysis/path_length_analysis_from_gds.py +15 -7
  6. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/plot_model.py +25 -5
  7. {gplugins-1.4.0 → gplugins-1.4.2}/pyproject.toml +4 -4
  8. {gplugins-1.4.0 → gplugins-1.4.2}/LICENSE +0 -0
  9. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/__init__.py +0 -0
  10. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/base_models/__init__.py +0 -0
  11. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/base_models/component.py +0 -0
  12. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/base_models/simulation.py +0 -0
  13. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/config.py +0 -0
  14. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/types.py +0 -0
  15. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/__init__.py +0 -0
  16. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/add_simulation_markers.py +0 -0
  17. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/async_helpers.py +0 -0
  18. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/cache.py +0 -0
  19. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/convert_sparameters.py +0 -0
  20. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/disable_print.py +0 -0
  21. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/get_capacitance.py +0 -0
  22. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/get_component_with_net_layers.py +0 -0
  23. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/get_effective_indices.py +0 -0
  24. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/get_scattering.py +0 -0
  25. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/get_sparameters_path.py +0 -0
  26. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/optical_constants.py +0 -0
  27. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/parse_layer_stack.py +0 -0
  28. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/plot.py +0 -0
  29. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/plot_csv.py +0 -0
  30. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/port_symmetries.py +0 -0
  31. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/common/utils/tests/test_get_component_with_new_port_layers.py +0 -0
  32. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/devsim/__init__.py +0 -0
  33. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/devsim/doping.py +0 -0
  34. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/devsim/get_simulation.py +0 -0
  35. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/devsim/get_simulation_xsection.py +0 -0
  36. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/devsim/get_solver.py +0 -0
  37. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/devsim/test_devsim.py +0 -0
  38. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/elmer/__init__.py +0 -0
  39. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/elmer/electrostatic.sif.j2 +0 -0
  40. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/elmer/get_capacitance.py +0 -0
  41. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/elmer/tests/test_elmer.py +0 -0
  42. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/fdtdz/__init__.py +0 -0
  43. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/fdtdz/get_epsilon_fdtdz.py +0 -0
  44. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/fdtdz/get_ports_fdtdz.py +0 -0
  45. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/fdtdz/get_sparameters_fdtdz.py +0 -0
  46. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/femwell/__init__.py +0 -0
  47. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/femwell/mode_solver.py +0 -0
  48. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/femwell/solve_thermal.py +0 -0
  49. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/femwell/test_mode_solver.py +0 -0
  50. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/Makefile +0 -0
  51. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/__init__.py +0 -0
  52. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/b64.py +0 -0
  53. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/gfviz.py +0 -0
  54. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/netlist.py +0 -0
  55. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/serve.py +0 -0
  56. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/static/b64.js +0 -0
  57. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/static/schemedit.js +0 -0
  58. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/static/schemedit.wasm +0 -0
  59. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/templates/example.json +0 -0
  60. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gfviz/templates/index.html +0 -0
  61. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/__init__.py +0 -0
  62. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/get_material.py +0 -0
  63. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/get_meep_geometry.py +0 -0
  64. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/get_port_eigenmode.py +0 -0
  65. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/get_simulation.py +0 -0
  66. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/get_simulation_grating_farfield.py +0 -0
  67. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/get_simulation_grating_fiber.py +0 -0
  68. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/meep_adjoint_optimization.py +0 -0
  69. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_eigenmode.py +0 -0
  70. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_materials.py +0 -0
  71. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_crossing.csv +0 -0
  72. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_straight.csv +0 -0
  73. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_crossing.csv +0 -0
  74. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_straight.csv +0 -0
  75. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_symmetries_straight.csv +0 -0
  76. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi.csv +0 -0
  77. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi_pool.csv +0 -0
  78. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_crossing_symmetric.csv +0 -0
  79. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight.csv +0 -0
  80. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_batch.csv +0 -0
  81. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi.csv +0 -0
  82. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi_pool.csv +0 -0
  83. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_symmetric.csv +0 -0
  84. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/test_write_sparameters_meep.py +0 -0
  85. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/write_sparameters_grating.py +0 -0
  86. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/write_sparameters_meep.py +0 -0
  87. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/write_sparameters_meep_batch.py +0 -0
  88. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmeep/write_sparameters_meep_mpi.py +0 -0
  89. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/__init__.py +0 -0
  90. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/define_polysurfaces.py +0 -0
  91. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/get_mesh.py +0 -0
  92. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/parse_component.py +0 -0
  93. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/parse_gds.py +0 -0
  94. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/tests/test_custom_names.py +0 -0
  95. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/tests/test_meshing_2D.py +0 -0
  96. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/tests/test_meshing_3D.py +0 -0
  97. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/uz_xsection_mesh.py +0 -0
  98. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/gmsh/xy_xsection_mesh.py +0 -0
  99. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/__init__.py +0 -0
  100. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/dataprep/__init__.py +0 -0
  101. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/dataprep/regions.py +0 -0
  102. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/__init__.py +0 -0
  103. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/check_duplicated_cells.py +0 -0
  104. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/check_exclusion.py +0 -0
  105. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/check_inclusion.py +0 -0
  106. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/check_space.py +0 -0
  107. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/check_width.py +0 -0
  108. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/count_drc.py +0 -0
  109. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/samples/drc_errors.py +0 -0
  110. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/drc/write_drc.py +0 -0
  111. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/get_density.py +0 -0
  112. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/get_netlist.py +0 -0
  113. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/netlist_graph.py +0 -0
  114. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/netlist_spice_reader.py +0 -0
  115. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/plot_nets.py +0 -0
  116. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_dataprep_regions.py +0 -0
  117. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_density.py +0 -0
  118. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_drc_exclusion.py +0 -0
  119. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_drc_inclusion.py +0 -0
  120. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_drc_space.py +0 -0
  121. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_drc_width.py +0 -0
  122. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_global_density.py +0 -0
  123. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_netlist_spice_reader.py +0 -0
  124. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/klayout/tests/test_plot_nets.py +0 -0
  125. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/README.md +0 -0
  126. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/__init__.py +0 -0
  127. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/interconnect.py +0 -0
  128. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/mapping_ubcpdk.yml +0 -0
  129. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/read.py +0 -0
  130. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/settings.py +0 -0
  131. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/tests/test_lumerical_read_sparameters.py +0 -0
  132. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/tests/test_netlist.py +0 -0
  133. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/tests/test_netlist_get_routes.py +0 -0
  134. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/write_sparameters_lumerical.py +0 -0
  135. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/lumerical/write_sparameters_lumerical_components.py +0 -0
  136. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/materials/__init__.py +0 -0
  137. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/materials/inorganic.py +0 -0
  138. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/materials/optical/__init__.py +0 -0
  139. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/materials/optical/optical_mat.py +0 -0
  140. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/materials/optical/refractive_index_info.py +0 -0
  141. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/materials/semiconductor/__init__.py +0 -0
  142. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/materials/semiconductor/semiconductor_mat.py +0 -0
  143. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/meow/__init__.py +0 -0
  144. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/meow/meow_eme.py +0 -0
  145. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/meow/test_meow_simulation.py +0 -0
  146. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/__init__.py +0 -0
  147. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/coupler.py +0 -0
  148. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/find_coupling_vs_gap.py +0 -0
  149. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/find_mode_dispersion.py +0 -0
  150. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/find_modes.py +0 -0
  151. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/find_modes_cross_section.py +0 -0
  152. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/find_neff_ng_dw_dh.py +0 -0
  153. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/find_neff_vs_width.py +0 -0
  154. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/get_mode_solver_coupler.py +0 -0
  155. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/get_mode_solver_cross_section.py +0 -0
  156. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/get_mode_solver_rib.py +0 -0
  157. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/modes/neff_vs_width_nitride.csv +0 -0
  158. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/modes/neff_vs_width_rib.csv +0 -0
  159. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/modes/neff_vs_width_strip.csv +0 -0
  160. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/neff_convergence_test.py +0 -0
  161. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/neff_vs_width.csv +0 -0
  162. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/overlap.py +0 -0
  163. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh.csv +0 -0
  164. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh.obtained.csv +0 -0
  165. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh_dispersion.csv +0 -0
  166. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_dw_dh.py +0 -0
  167. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_find_modes.py +0 -0
  168. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_find_modes_dispersion.py +0 -0
  169. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.csv +0 -0
  170. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.obtained.csv +0 -0
  171. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/tests/test_neff_vs_width.py +0 -0
  172. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/types.py +0 -0
  173. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/modes/waveguide.py +0 -0
  174. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/palace/__init__.py +0 -0
  175. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/palace/driven.json +0 -0
  176. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/palace/electrostatic.json +0 -0
  177. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/palace/get_capacitance.py +0 -0
  178. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/palace/get_scattering.py +0 -0
  179. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/palace/tests/test_palace.py +0 -0
  180. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/path_length_analysis/__init__.py +0 -0
  181. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/path_length_analysis/path_length_analysis.py +0 -0
  182. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/path_length_analysis/test_pathlength_extraction.py +0 -0
  183. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/path_length_analysis/test_pathlength_extraction_from_gds.py +0 -0
  184. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/path_length_analysis/test_pathlength_extraction_utils.py +0 -0
  185. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/path_length_analysis/utils.py +0 -0
  186. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/photonic_circuit_models/__init__.py +0 -0
  187. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/photonic_circuit_models/coupler.py +0 -0
  188. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/photonic_circuit_models/fsr.py +0 -0
  189. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/photonic_circuit_models/heater.py +0 -0
  190. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/photonic_circuit_models/mzi.py +0 -0
  191. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/photonic_circuit_models/ring.py +0 -0
  192. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/__init__.py +0 -0
  193. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/diffusion.py +0 -0
  194. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/implant_tables.py +0 -0
  195. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/pysrim.py +0 -0
  196. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/silicon.py +0 -0
  197. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/skew/antimony_si_skew.csv +0 -0
  198. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/skew/arsenic_si_skew.csv +0 -0
  199. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/skew/boron_si_skew.csv +0 -0
  200. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/process/skew/phosphorus_si_skew.csv +0 -0
  201. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/__init__.py +0 -0
  202. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/interpolators.py +0 -0
  203. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/mlp.py +0 -0
  204. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/models.py +0 -0
  205. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/parameter.py +0 -0
  206. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/read.py +0 -0
  207. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/strategy.py +0 -0
  208. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/tests/test_mzi.py +0 -0
  209. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.obtained.yml +0 -0
  210. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.yml +0 -0
  211. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/tests/test_mzi_lattice.py +0 -0
  212. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sax/tests/test_parameters.py +0 -0
  213. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sentaurus/mask_sde.py +0 -0
  214. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sentaurus/mask_sprocess.py +0 -0
  215. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sentaurus/sde.py +0 -0
  216. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sentaurus/sdevice.py +0 -0
  217. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sentaurus/sprocess.py +0 -0
  218. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/sentaurus/svisual.py +0 -0
  219. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/spice/__init__.py +0 -0
  220. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/spice/spice_to_yaml.py +0 -0
  221. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/spice/tests/__init__.py +0 -0
  222. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/spice/tests/test_interconnect.py +0 -0
  223. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/__init__.py +0 -0
  224. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/component.py +0 -0
  225. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/get_results.py +0 -0
  226. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/get_simulation_grating_coupler.py +0 -0
  227. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/materials.py +0 -0
  228. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/modes.py +0 -0
  229. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_component_modeler.py +0 -0
  230. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_materials.py +0 -0
  231. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_modes/test_sweep_width.csv +0 -0
  232. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_modes/test_sweep_width.obtained.csv +0 -0
  233. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_modes_coupler.py +0 -0
  234. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_modes_waveguide.py +0 -0
  235. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_plot_simulation_grating_coupler.py +0 -0
  236. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/test_write_sparameters.py +0 -0
  237. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/tests_sparameters/sim_ref.yaml +0 -0
  238. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters.py +0 -0
  239. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters_grating_coupler.py +0 -0
  240. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/types.py +0 -0
  241. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/util.py +0 -0
  242. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/tidy3d/write_sparameters_grating_coupler.py +0 -0
  243. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/typings.py +0 -0
  244. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/vlsir/__init__.py +0 -0
  245. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/vlsir/export_netlist.py +0 -0
  246. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/vlsir/tests/resources/pads_correct.cir +0 -0
  247. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/vlsir/tests/resources/pads_correct.scs +0 -0
  248. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/vlsir/tests/resources/pads_correct.sp +0 -0
  249. {gplugins-1.4.0 → gplugins-1.4.2}/gplugins/vlsir/tests/test_vlsir.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gplugins
3
- Version: 1.4.0
3
+ Version: 1.4.2
4
4
  Summary: gdsfactory plugins
5
5
  Keywords: python
6
6
  Author-email: gdsfactory <contact@gdsfactory.com>
@@ -15,7 +15,7 @@ Requires-Dist: gdsfactory>=9.3.5
15
15
  Requires-Dist: pint
16
16
  Requires-Dist: tqdm
17
17
  Requires-Dist: numpy==2.2
18
- Requires-Dist: xarray==2025.1.2
18
+ Requires-Dist: xarray==2025.7.1
19
19
  Requires-Dist: hypothesis ; extra == "dev"
20
20
  Requires-Dist: numba ; extra == "dev"
21
21
  Requires-Dist: pre-commit ; extra == "dev"
@@ -38,7 +38,7 @@ Requires-Dist: jinja2 ; extra == "gfviz"
38
38
  Requires-Dist: fastapi ; extra == "gfviz"
39
39
  Requires-Dist: shapely ; extra == "gfviz"
40
40
  Requires-Dist: natsort ; extra == "gfviz"
41
- Requires-Dist: gmsh==4.13.0 ; extra == "gmsh"
41
+ Requires-Dist: gmsh==4.14.0 ; extra == "gmsh"
42
42
  Requires-Dist: h5py ; extra == "gmsh"
43
43
  Requires-Dist: mapbox_earcut ; extra == "gmsh"
44
44
  Requires-Dist: meshio ; extra == "gmsh"
@@ -86,7 +86,7 @@ Provides-Extra: schematic
86
86
  Provides-Extra: tidy3d
87
87
  Provides-Extra: vlsir
88
88
 
89
- # gplugins 1.4.0
89
+ # gplugins 1.4.2
90
90
 
91
91
  [![docs](https://github.com/gdsfactory/gplugins/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/gplugins/)
92
92
  [![PyPI](https://img.shields.io/pypi/v/gplugins)](https://pypi.org/project/gplugins/)
@@ -1,4 +1,4 @@
1
- # gplugins 1.4.0
1
+ # gplugins 1.4.2
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.4.0"
3
+ __version__ = "1.4.2"
4
4
 
5
5
  import pathlib
6
6
 
@@ -29,11 +29,10 @@ def define_edgeport(
29
29
  port: gf.Port,
30
30
  port_dict: dict[str, Any],
31
31
  model: Model,
32
- layerlevel: LayerLevel,
33
32
  ):
34
33
  """Creates an unmeshed box at the port location to tag the edge port surfaces in the final mesh."""
35
- zmin = port_dict.get("zmin") or layerlevel.zmin
36
- zmax = port_dict.get("zmax") or zmin + layerlevel.thickness
34
+ zmin = port_dict.get("zmin")
35
+ zmax = port_dict.get("zmax")
37
36
 
38
37
  dz = zmax - zmin
39
38
  x, y = port.center
@@ -288,18 +287,15 @@ def xyz_mesh(
288
287
  # Add edgeports
289
288
  if edge_ports is not None:
290
289
  ports = component.ports
291
- port_layernames = layer_stack.get_layer_to_layername()
292
- for portname, edge_ports_dict in edge_ports:
290
+ for portname, edge_ports_dict in edge_ports.items():
293
291
  port = ports[portname]
294
292
  prisms_list.append(
295
293
  define_edgeport(
296
294
  port,
297
295
  edge_ports_dict,
298
296
  model,
299
- layerlevel=layer_stack.layers[port_layernames[port.layer][0]],
300
297
  )
301
298
  )
302
-
303
299
  import copy
304
300
 
305
301
  resolutions = copy.deepcopy(resolutions)
@@ -15,6 +15,7 @@ from gplugins.path_length_analysis.utils import (
15
15
  filter_points_by_std_distance,
16
16
  resample_polygon_points_w_interpolator,
17
17
  sort_points_nearest_neighbor,
18
+ smoothed_savgol_filter,
18
19
  )
19
20
 
20
21
  fix_values = [0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8, -8]
@@ -80,6 +81,8 @@ def centerline_voronoi_2_ports(
80
81
  "port_list must be a list of 2 ports, got: "
81
82
  f"{port_list} with length {len(port_list)}"
82
83
  )
84
+ port_list = [p.to_itype() for p in port_list]
85
+
83
86
  # Simplify points that are too close to each other
84
87
  r = gf.kdb.Region(poly)
85
88
  r = r.smoothed(0.05, True)
@@ -96,6 +99,7 @@ def centerline_voronoi_2_ports(
96
99
  shapely_poly_original = sh.Polygon(points)
97
100
 
98
101
  # Infer port widths to be 2x the distance between the port center and the nearest point on the polygon
102
+ # This is done such that port_positions is supported
99
103
  port_widths = []
100
104
  for port in port_list:
101
105
  # Compute distances from each point to port center
@@ -655,7 +659,7 @@ def extract_paths(
655
659
  centerline.points[:, 0],
656
660
  centerline.points[:, 1],
657
661
  "x--",
658
- label=ports,
662
+ label=f"Ports {ports}",
659
663
  )
660
664
  plt.legend()
661
665
  plt.title("Direct paths")
@@ -675,13 +679,14 @@ def extract_paths(
675
679
  centerline.points[:, 0],
676
680
  centerline.points[:, 1],
677
681
  "--",
678
- label=ports,
682
+ label=f"Ports {ports}",
679
683
  )
680
684
  plt.legend()
681
685
  plt.title("Evanescent paths")
682
686
  plt.xlabel("X-coordinate")
683
687
  plt.ylabel("Y-coordinate")
684
688
  plt.grid(True)
689
+ plt.gca().set_aspect("equal", adjustable="box") # Force equilateral axes
685
690
 
686
691
  plt.show()
687
692
 
@@ -708,7 +713,7 @@ def get_min_radius_and_length(path: gf.Path) -> tuple[float, float]:
708
713
  return min_radius, path.length()
709
714
 
710
715
 
711
- def plot_curvature(path: gf.Path, rmax: int | float = 200) -> None:
716
+ def plot_curvature(path: gf.Path, rmax: int | float = 200) -> plt.Figure:
712
717
  """Plot the curvature of a path.
713
718
 
714
719
  Args:
@@ -721,11 +726,14 @@ def plot_curvature(path: gf.Path, rmax: int | float = 200) -> None:
721
726
  curvature2 = K[valid_indices]
722
727
  s2 = s[valid_indices]
723
728
 
729
+ smoothed_curvature = smoothed_savgol_filter(curvature2)
730
+
724
731
  plt.figure(figsize=(10, 5))
725
- plt.plot(s2, curvature2, ".-")
726
- plt.xlabel("Position along curve (arc length)")
732
+ plt.plot(s2, curvature2, ".-", label="Raw")
733
+ plt.plot(s2, smoothed_curvature, ".-", label="Savitzky–Golay filtered")
734
+ plt.xlabel("Position along arc length (units)")
727
735
  plt.ylabel("Curvature (units⁻¹)")
728
- plt.show()
736
+ plt.legend()
729
737
  return plt
730
738
 
731
739
 
@@ -744,7 +752,7 @@ def plot_radius(path: gf.Path, rmax: float = 200) -> plt.Figure:
744
752
 
745
753
  fig, ax = plt.subplots(1, 1, figsize=(15, 5))
746
754
  ax.plot(s2, radius2, ".-")
747
- ax.set_xlabel("Position along curve (arc length)")
755
+ ax.set_xlabel("Position along arc length (units)")
748
756
  ax.set_ylabel("Radius of curvature (units)")
749
757
  ax.grid(True)
750
758
  return fig
@@ -14,11 +14,13 @@ def plot_model(
14
14
  port1: str = "o1",
15
15
  ports2: tuple[str, ...] | None = None,
16
16
  logscale: bool = True,
17
+ min_db_range: float = 0.5,
17
18
  fig=None,
18
19
  wavelength_start: float = 1.5,
19
20
  wavelength_stop: float = 1.6,
20
21
  wavelength_points: int = 2000,
21
22
  phase: bool = False,
23
+ title: str | None = None,
22
24
  ) -> None:
23
25
  """Plot Model Sparameters Magnitude.
24
26
 
@@ -27,11 +29,13 @@ def plot_model(
27
29
  port1: input port name.
28
30
  ports2: list of ports.
29
31
  logscale: plots in dB logarithmic scale.
32
+ min_db_range: minimum dB range. Set to 0 to disable.
30
33
  fig: matplotlib figure.
31
- wavelength_start: wavelength min (um).
32
- wavelength_stop: wavelength max (um).
34
+ wavelength_start: wavelength min (µm).
35
+ wavelength_stop: wavelength max (µm).
33
36
  wavelength_points: number of wavelength steps.
34
37
  phase: plot phase instead of magnitude.
38
+ title: plot title.
35
39
 
36
40
  .. plot::
37
41
  :include-source:
@@ -66,9 +70,25 @@ def plot_model(
66
70
  y = np.abs(sdict[(port1, port2)])
67
71
  y = 20 * np.log10(y) if logscale else y
68
72
  ylabel = "|S (dB)|" if logscale else "|S|"
69
- ax.plot(wavelengths, y, label=port2)
70
- ax.set_title(port1)
71
- ax.set_xlabel("wavelength (um)")
73
+ ax.plot(wavelengths, y, label=f"{port1}→{port2}")
74
+
75
+ if logscale:
76
+ current_ylim = ax.get_ylim()
77
+ if current_ylim[1] - current_ylim[0] < min_db_range:
78
+ ax.set_ylim(y.mean() - min_db_range / 2, y.mean() + min_db_range / 2)
79
+
80
+ if title:
81
+ ax.set_title(title)
82
+ else:
83
+ # Handle functools.partial objects
84
+ if hasattr(model, "func"):
85
+ # It's a partial object
86
+ model_name = getattr(model.func, "__name__", "model")
87
+ else:
88
+ # Regular function
89
+ model_name = getattr(model, "__name__", "model")
90
+ ax.set_title(f"{model_name} S-Parameters")
91
+ ax.set_xlabel("wavelength (µm)")
72
92
  ax.set_ylabel(ylabel)
73
93
  plt.legend()
74
94
  return ax
@@ -17,7 +17,7 @@ dependencies = [
17
17
  "pint",
18
18
  "tqdm",
19
19
  "numpy==2.2", # numpy 2.2 is required for numba
20
- "xarray==2025.1.2"
20
+ "xarray==2025.7.1"
21
21
  ]
22
22
  description = "gdsfactory plugins"
23
23
  keywords = ["python"]
@@ -25,7 +25,7 @@ license = {file = "LICENSE"}
25
25
  name = "gplugins"
26
26
  readme = "README.md"
27
27
  requires-python = ">=3.11"
28
- version = "1.4.0"
28
+ version = "1.4.2"
29
29
 
30
30
  [project.optional-dependencies]
31
31
  dev = [
@@ -49,7 +49,7 @@ docs = [
49
49
  femwell = ["femwell~=0.1.11", "meshwell~=1.0.7"]
50
50
  gfviz = ["jinja2", "fastapi", "shapely", "natsort"]
51
51
  gmsh = [
52
- "gmsh==4.13.0",
52
+ "gmsh==4.14.0",
53
53
  "h5py",
54
54
  "mapbox_earcut",
55
55
  "meshio",
@@ -192,7 +192,7 @@ message_template = "Bump to {new_version}"
192
192
  tag_template = "v{new_version}"
193
193
 
194
194
  [tool.tbump.version]
195
- current = "1.4.0"
195
+ current = "1.4.2"
196
196
  regex = '''
197
197
  (?P<major>\d+)
198
198
  \.
File without changes
File without changes