gplugins 2.1.2__tar.gz → 2.1.4__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 (260) hide show
  1. {gplugins-2.1.2 → gplugins-2.1.4}/PKG-INFO +4 -4
  2. {gplugins-2.1.2 → gplugins-2.1.4}/README.md +1 -1
  3. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/__init__.py +1 -1
  4. gplugins-2.1.4/gplugins/lumerical/tests/test_background_layers.py +36 -0
  5. gplugins-2.1.4/gplugins/lumerical/tests/test_write_sparameters_lumerical.py +78 -0
  6. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/write_sparameters_lumerical.py +65 -17
  7. {gplugins-2.1.2 → gplugins-2.1.4}/pyproject.toml +7 -4
  8. {gplugins-2.1.2 → gplugins-2.1.4}/LICENSE +0 -0
  9. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/__init__.py +0 -0
  10. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/base_models/__init__.py +0 -0
  11. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/base_models/component.py +0 -0
  12. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/base_models/simulation.py +0 -0
  13. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/config.py +0 -0
  14. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/types.py +0 -0
  15. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/__init__.py +0 -0
  16. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/add_simulation_markers.py +0 -0
  17. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/async_helpers.py +0 -0
  18. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/cache.py +0 -0
  19. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/convert_sparameters.py +0 -0
  20. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/disable_print.py +0 -0
  21. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/geometry.py +0 -0
  22. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/get_capacitance.py +0 -0
  23. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/get_component_with_net_layers.py +0 -0
  24. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/get_effective_indices.py +0 -0
  25. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/get_scattering.py +0 -0
  26. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/get_sparameters_path.py +0 -0
  27. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/optical_constants.py +0 -0
  28. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/parse_layer_stack.py +0 -0
  29. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/plot.py +0 -0
  30. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/plot_csv.py +0 -0
  31. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/port_symmetries.py +0 -0
  32. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/common/utils/tests/test_get_component_with_new_port_layers.py +0 -0
  33. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/devsim/__init__.py +0 -0
  34. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/devsim/doping.py +0 -0
  35. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/devsim/get_simulation.py +0 -0
  36. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/devsim/get_simulation_xsection.py +0 -0
  37. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/devsim/get_solver.py +0 -0
  38. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/devsim/test_devsim.py +0 -0
  39. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/elmer/__init__.py +0 -0
  40. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/elmer/electrostatic.sif.j2 +0 -0
  41. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/elmer/get_capacitance.py +0 -0
  42. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/elmer/tests/test_elmer.py +0 -0
  43. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/emode/__init__.py +0 -0
  44. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/emode/emode.py +0 -0
  45. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/emode/tests/__init__.py +0 -0
  46. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/emode/tests/conftest.py +0 -0
  47. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/emode/tests/test_emode.py +0 -0
  48. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/fdtdz/__init__.py +0 -0
  49. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/fdtdz/get_epsilon_fdtdz.py +0 -0
  50. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/fdtdz/get_ports_fdtdz.py +0 -0
  51. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/fdtdz/get_sparameters_fdtdz.py +0 -0
  52. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/femwell/__init__.py +0 -0
  53. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/femwell/mode_solver.py +0 -0
  54. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/femwell/solve_thermal.py +0 -0
  55. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/femwell/test_mode_solver.py +0 -0
  56. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/Makefile +0 -0
  57. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/__init__.py +0 -0
  58. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/b64.py +0 -0
  59. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/gfviz.py +0 -0
  60. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/netlist.py +0 -0
  61. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/serve.py +0 -0
  62. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/static/b64.js +0 -0
  63. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/static/schemedit.js +0 -0
  64. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/static/schemedit.wasm +0 -0
  65. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/templates/example.json +0 -0
  66. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gfviz/templates/index.html +0 -0
  67. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/__init__.py +0 -0
  68. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/get_material.py +0 -0
  69. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/get_meep_geometry.py +0 -0
  70. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/get_port_eigenmode.py +0 -0
  71. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/get_simulation.py +0 -0
  72. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/get_simulation_grating_farfield.py +0 -0
  73. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/get_simulation_grating_fiber.py +0 -0
  74. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/meep_adjoint_optimization.py +0 -0
  75. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_eigenmode.py +0 -0
  76. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_materials.py +0 -0
  77. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_crossing.csv +0 -0
  78. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_straight.csv +0 -0
  79. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_crossing.csv +0 -0
  80. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_straight.csv +0 -0
  81. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_symmetries_straight.csv +0 -0
  82. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi.csv +0 -0
  83. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi_pool.csv +0 -0
  84. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_crossing_symmetric.csv +0 -0
  85. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight.csv +0 -0
  86. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_batch.csv +0 -0
  87. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi.csv +0 -0
  88. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi_pool.csv +0 -0
  89. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_symmetric.csv +0 -0
  90. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/test_write_sparameters_meep.py +0 -0
  91. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/write_sparameters_grating.py +0 -0
  92. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/write_sparameters_meep.py +0 -0
  93. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/write_sparameters_meep_batch.py +0 -0
  94. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/gmeep/write_sparameters_meep_mpi.py +0 -0
  95. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/__init__.py +0 -0
  96. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/dataprep/__init__.py +0 -0
  97. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/dataprep/regions.py +0 -0
  98. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/__init__.py +0 -0
  99. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/check_duplicated_cells.py +0 -0
  100. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/check_exclusion.py +0 -0
  101. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/check_inclusion.py +0 -0
  102. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/check_space.py +0 -0
  103. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/check_width.py +0 -0
  104. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/count_drc.py +0 -0
  105. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/samples/drc_errors.py +0 -0
  106. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/drc/write_drc.py +0 -0
  107. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/get_density.py +0 -0
  108. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/get_netlist.py +0 -0
  109. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/netlist_graph.py +0 -0
  110. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/netlist_spice_reader.py +0 -0
  111. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/plot_nets.py +0 -0
  112. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/__init__.py +0 -0
  113. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/conftest.py +0 -0
  114. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_dataprep_regions.py +0 -0
  115. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_density.py +0 -0
  116. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_drc_exclusion.py +0 -0
  117. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_drc_inclusion.py +0 -0
  118. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_drc_space.py +0 -0
  119. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_drc_width.py +0 -0
  120. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_global_density.py +0 -0
  121. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_netlist_spice_reader.py +0 -0
  122. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/klayout/tests/test_plot_nets.py +0 -0
  123. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/README.md +0 -0
  124. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/__init__.py +0 -0
  125. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/interconnect.py +0 -0
  126. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/mapping_ubcpdk.yml +0 -0
  127. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/read.py +0 -0
  128. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/settings.py +0 -0
  129. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/tests/test_lumerical_read_sparameters.py +0 -0
  130. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/tests/test_netlist.py +0 -0
  131. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/tests/test_netlist_get_routes.py +0 -0
  132. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/lumerical/write_sparameters_lumerical_components.py +0 -0
  133. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/materials/__init__.py +0 -0
  134. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/materials/inorganic.py +0 -0
  135. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/materials/optical/__init__.py +0 -0
  136. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/materials/optical/optical_mat.py +0 -0
  137. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/materials/optical/refractive_index_info.py +0 -0
  138. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/materials/semiconductor/__init__.py +0 -0
  139. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/materials/semiconductor/semiconductor_mat.py +0 -0
  140. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/meow/__init__.py +0 -0
  141. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/meow/meow_eme.py +0 -0
  142. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/meow/test_meow_simulation.py +0 -0
  143. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/meshwell/__init__.py +0 -0
  144. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/meshwell/get_meshwell_3D.py +0 -0
  145. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/meshwell/get_meshwell_cross_section.py +0 -0
  146. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/meshwell/tests/test_meshwell.py +0 -0
  147. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/__init__.py +0 -0
  148. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/coupler.py +0 -0
  149. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/find_coupling_vs_gap.py +0 -0
  150. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/find_mode_dispersion.py +0 -0
  151. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/find_modes.py +0 -0
  152. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/find_modes_cross_section.py +0 -0
  153. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/find_neff_ng_dw_dh.py +0 -0
  154. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/find_neff_vs_width.py +0 -0
  155. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/get_mode_solver_coupler.py +0 -0
  156. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/get_mode_solver_cross_section.py +0 -0
  157. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/get_mode_solver_rib.py +0 -0
  158. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/modes/neff_vs_width_nitride.csv +0 -0
  159. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/modes/neff_vs_width_rib.csv +0 -0
  160. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/modes/neff_vs_width_strip.csv +0 -0
  161. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/neff_convergence_test.py +0 -0
  162. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/neff_vs_width.csv +0 -0
  163. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/overlap.py +0 -0
  164. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_dw_dh/test_dw_dh.csv +0 -0
  165. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_dw_dh/test_dw_dh.obtained.csv +0 -0
  166. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_dw_dh/test_dw_dh_dispersion.csv +0 -0
  167. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_dw_dh.py +0 -0
  168. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_find_modes.py +0 -0
  169. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_find_modes_dispersion.py +0 -0
  170. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.csv +0 -0
  171. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.obtained.csv +0 -0
  172. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/tests/test_neff_vs_width.py +0 -0
  173. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/types.py +0 -0
  174. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/modes/waveguide.py +0 -0
  175. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/__init__.py +0 -0
  176. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/driven.json +0 -0
  177. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/electrostatic.json +0 -0
  178. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/get_capacitance.py +0 -0
  179. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/get_scattering.py +0 -0
  180. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/tests/__init__.py +0 -0
  181. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/tests/conftest.py +0 -0
  182. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/palace/tests/test_palace.py +0 -0
  183. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/path_length_analysis/__init__.py +0 -0
  184. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/path_length_analysis/path_length_analysis.py +0 -0
  185. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/path_length_analysis/path_length_analysis_from_gds.py +0 -0
  186. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/path_length_analysis/test_pathlength_extraction.py +0 -0
  187. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/path_length_analysis/test_pathlength_extraction_from_gds.py +0 -0
  188. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/path_length_analysis/test_pathlength_extraction_utils.py +0 -0
  189. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/path_length_analysis/utils.py +0 -0
  190. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/photonic_circuit_models/__init__.py +0 -0
  191. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/photonic_circuit_models/coupler.py +0 -0
  192. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/photonic_circuit_models/fsr.py +0 -0
  193. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/photonic_circuit_models/heater.py +0 -0
  194. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/photonic_circuit_models/mzi.py +0 -0
  195. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/photonic_circuit_models/ring.py +0 -0
  196. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/__init__.py +0 -0
  197. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/diffusion.py +0 -0
  198. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/implant_tables.py +0 -0
  199. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/pysrim.py +0 -0
  200. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/silicon.py +0 -0
  201. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/skew/antimony_si_skew.csv +0 -0
  202. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/skew/arsenic_si_skew.csv +0 -0
  203. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/skew/boron_si_skew.csv +0 -0
  204. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/process/skew/phosphorus_si_skew.csv +0 -0
  205. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/__init__.py +0 -0
  206. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/interpolators.py +0 -0
  207. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/mlp.py +0 -0
  208. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/models.py +0 -0
  209. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/parameter.py +0 -0
  210. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/plot_model.py +0 -0
  211. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/read.py +0 -0
  212. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/strategy.py +0 -0
  213. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/tests/__init__.py +0 -0
  214. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/tests/conftest.py +0 -0
  215. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/tests/test_mzi.py +0 -0
  216. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.obtained.yml +0 -0
  217. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.yml +0 -0
  218. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/tests/test_mzi_lattice.py +0 -0
  219. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sax/tests/test_parameters.py +0 -0
  220. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sentaurus/mask_sde.py +0 -0
  221. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sentaurus/mask_sprocess.py +0 -0
  222. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sentaurus/sde.py +0 -0
  223. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sentaurus/sdevice.py +0 -0
  224. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sentaurus/sprocess.py +0 -0
  225. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/sentaurus/svisual.py +0 -0
  226. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/spice/__init__.py +0 -0
  227. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/spice/spice_to_yaml.py +0 -0
  228. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/spice/tests/__init__.py +0 -0
  229. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/spice/tests/test_interconnect.py +0 -0
  230. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/__init__.py +0 -0
  231. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/component.py +0 -0
  232. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/get_results.py +0 -0
  233. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/get_simulation_grating_coupler.py +0 -0
  234. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/materials.py +0 -0
  235. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/modes.py +0 -0
  236. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/__init__.py +0 -0
  237. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/conftest.py +0 -0
  238. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_component_modeler.py +0 -0
  239. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_materials.py +0 -0
  240. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_modes/test_sweep_width.csv +0 -0
  241. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_modes/test_sweep_width.obtained.csv +0 -0
  242. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_modes_coupler.py +0 -0
  243. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_modes_waveguide.py +0 -0
  244. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_plot_simulation_grating_coupler.py +0 -0
  245. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/test_write_sparameters.py +0 -0
  246. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/tests_sparameters/sim_ref.yaml +0 -0
  247. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters.py +0 -0
  248. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters_grating_coupler.py +0 -0
  249. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/types.py +0 -0
  250. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/util.py +0 -0
  251. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/tidy3d/write_sparameters_grating_coupler.py +0 -0
  252. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/typings.py +0 -0
  253. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/__init__.py +0 -0
  254. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/export_netlist.py +0 -0
  255. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/tests/__init__.py +0 -0
  256. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/tests/conftest.py +0 -0
  257. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/tests/resources/pads_correct.cir +0 -0
  258. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/tests/resources/pads_correct.scs +0 -0
  259. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/tests/resources/pads_correct.sp +0 -0
  260. {gplugins-2.1.2 → gplugins-2.1.4}/gplugins/vlsir/tests/test_vlsir.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gplugins
3
- Version: 2.1.2
3
+ Version: 2.1.4
4
4
  Summary: gdsfactory plugins
5
5
  Keywords: python
6
6
  Author-email: gdsfactory <contact@gdsfactory.com>
@@ -38,7 +38,7 @@ Requires-Dist: scikit-learn ; extra == "docs"
38
38
  Requires-Dist: zensical>=0.0.46,<0.1.0 ; extra == "docs"
39
39
  Requires-Dist: emodeconnection>=1.1.11 ; extra == "emode"
40
40
  Requires-Dist: femwell~=0.1.11 ; extra == "femwell"
41
- Requires-Dist: meshwell~=2.1.2 ; extra == "femwell"
41
+ Requires-Dist: meshwell~=2.1.1 ; extra == "femwell"
42
42
  Requires-Dist: jinja2 ; extra == "gfviz"
43
43
  Requires-Dist: fastapi ; extra == "gfviz"
44
44
  Requires-Dist: shapely ; extra == "gfviz"
@@ -57,7 +57,7 @@ Requires-Dist: meow-sim>=0.15 ; extra == "meow"
57
57
  Requires-Dist: sax>=0.17,<0.19 ; extra == "meow"
58
58
  Requires-Dist: tidy3d~=2.11.1 ; extra == "meow"
59
59
  Requires-Dist: shapely ; extra == "meshwell"
60
- Requires-Dist: meshwell~=2.1.2 ; extra == "meshwell"
60
+ Requires-Dist: meshwell~=2.1.1 ; extra == "meshwell"
61
61
  Requires-Dist: bokeh ; extra == "path-length-analysis"
62
62
  Requires-Dist: numba>=0.60 ; extra == "path-length-analysis"
63
63
  Requires-Dist: shapely ; extra == "path-length-analysis"
@@ -88,7 +88,7 @@ Provides-Extra: tidy3d
88
88
  Provides-Extra: vlsir
89
89
  Import-Name: gplugins
90
90
 
91
- # gplugins 2.1.2
91
+ # gplugins 2.1.4
92
92
 
93
93
  [![docs](https://github.com/gdsfactory/gplugins/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/gplugins/)
94
94
  [![PyPI](https://img.shields.io/pypi/v/gplugins)](https://pypi.org/project/gplugins/)
@@ -1,4 +1,4 @@
1
- # gplugins 2.1.2
1
+ # gplugins 2.1.4
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__ = "2.1.2"
3
+ __version__ = "2.1.4"
4
4
 
5
5
  import pathlib
6
6
 
@@ -0,0 +1,36 @@
1
+ from types import SimpleNamespace
2
+
3
+ import gdsfactory as gf
4
+ from kfactory import kdb
5
+
6
+ from gplugins.lumerical.write_sparameters_lumerical import (
7
+ _get_component_with_background_layers,
8
+ )
9
+
10
+
11
+ class _LayerStack:
12
+ def __init__(self, level: SimpleNamespace) -> None:
13
+ self.layers = {"background": level}
14
+
15
+ def get_component_with_derived_layers(
16
+ self, component: gf.Component
17
+ ) -> gf.Component:
18
+ return component.copy()
19
+
20
+
21
+ def test_materializes_background_layer_with_exclusions() -> None:
22
+ component = gf.Component()
23
+ component.add_polygon([(0, 0), (10, 0), (10, 10), (0, 10)], layer=(3, 0))
24
+ component.add_polygon([(2, 2), (8, 2), (8, 8), (2, 8)], layer=(2, 0))
25
+ layer_stack = _LayerStack(
26
+ SimpleNamespace(
27
+ background=True,
28
+ layer=(1, 0),
29
+ background_exclude_layers=((2, 0),),
30
+ )
31
+ )
32
+
33
+ result = _get_component_with_background_layers(component, layer_stack)
34
+ region = kdb.Region(result.kdb_cell.begin_shapes_rec(result.kcl.layer(1, 0)))
35
+
36
+ assert region.area() == 64_000_000
@@ -0,0 +1,78 @@
1
+ import sys
2
+ from types import ModuleType
3
+
4
+ import gdsfactory as gf
5
+ from gdsfactory.technology import LayerLevel, LayerStack
6
+
7
+ from gplugins.lumerical.write_sparameters_lumerical import write_sparameters_lumerical
8
+
9
+
10
+ class _Session:
11
+ def __init__(self) -> None:
12
+ self.ports = 0
13
+
14
+ def newproject(self) -> None:
15
+ pass
16
+
17
+ def selectall(self) -> None:
18
+ pass
19
+
20
+ def deleteall(self) -> None:
21
+ pass
22
+
23
+ def addrect(self, **kwargs: object) -> None:
24
+ pass
25
+
26
+ def setnamed(self, *args: object) -> None:
27
+ pass
28
+
29
+ def addfdtd(self, **kwargs: object) -> None:
30
+ pass
31
+
32
+ def gdsimport(self, *args: object) -> None:
33
+ pass
34
+
35
+ def addport(self) -> None:
36
+ self.ports += 1
37
+
38
+ def setglobalsource(self, *args: object) -> None:
39
+ pass
40
+
41
+
42
+ def test_keeps_ports_on_layers_not_in_layer_stack(monkeypatch, tmp_path) -> None:
43
+ monkeypatch.setitem(sys.modules, "lumapi", ModuleType("lumapi"))
44
+ component = gf.Component()
45
+ component.add_polygon([(0, 0), (10, 0), (10, 1), (0, 1)], layer=(1, 0))
46
+ component.add_port(
47
+ name="known",
48
+ center=(0, 0.5),
49
+ width=1,
50
+ orientation=180,
51
+ layer=(1, 0),
52
+ port_type="optical",
53
+ )
54
+ component.add_port(
55
+ name="unknown",
56
+ center=(10, 0.5),
57
+ width=1,
58
+ orientation=0,
59
+ layer=(2, 0),
60
+ port_type="optical",
61
+ )
62
+ layer_stack = LayerStack(
63
+ layers={
64
+ "core": LayerLevel(layer=(1, 0), thickness=0.22, zmin=0, material="sio2")
65
+ }
66
+ )
67
+ session = _Session()
68
+
69
+ result = write_sparameters_lumerical(
70
+ component,
71
+ session=session,
72
+ run=False,
73
+ dirpath=tmp_path,
74
+ layer_stack=layer_stack,
75
+ )
76
+
77
+ assert result is session
78
+ assert session.ports == 2
@@ -53,6 +53,56 @@ def _add_material_name_aliases(
53
53
  material_mapping[canonical_name] = material_mapping[legacy_name]
54
54
 
55
55
 
56
+ def _get_component_with_background_layers(
57
+ component: gf.Component, layer_stack: LayerStack
58
+ ) -> gf.Component:
59
+ """Materialize LayerStack background layers for simulation export.
60
+
61
+ Background layers occupy the component bounding box minus their declared
62
+ source-layer exclusions. ``get_component_with_derived_layers`` evaluates
63
+ derived layers but does not apply this background-layer semantics.
64
+ """
65
+ component_with_derived_layers = layer_stack.get_component_with_derived_layers(
66
+ component
67
+ )
68
+ if not any(
69
+ getattr(level, "background", False) for level in layer_stack.layers.values()
70
+ ):
71
+ return component_with_derived_layers
72
+
73
+ from kfactory import kdb
74
+
75
+ for level in layer_stack.layers.values():
76
+ if not getattr(level, "background", False):
77
+ continue
78
+
79
+ layer = level.layer
80
+ if isinstance(layer, LogicalLayer):
81
+ target_layer = gf.get_layer_tuple(layer.layer)
82
+ elif isinstance(layer, DerivedLayer):
83
+ assert level.derived_layer is not None
84
+ target_layer = gf.get_layer_tuple(level.derived_layer.layer)
85
+ elif isinstance(layer, tuple):
86
+ target_layer = layer
87
+ else:
88
+ raise ValueError(
89
+ f"Layer {layer!r} is not a DerivedLayer, LogicalLayer, or tuple"
90
+ )
91
+
92
+ background = kdb.Region(component.kdb_cell.bbox())
93
+ for excluded_layer in getattr(level, "background_exclude_layers", ()):
94
+ excluded_layer_tuple = gf.get_layer_tuple(excluded_layer)
95
+ excluded_layer_index = component.kcl.layer(*excluded_layer_tuple)
96
+ background -= kdb.Region(
97
+ component.kdb_cell.begin_shapes_rec(excluded_layer_index)
98
+ )
99
+
100
+ component_with_derived_layers.remove_layers([target_layer])
101
+ component_with_derived_layers.add_polygon(background, layer=target_layer)
102
+
103
+ return component_with_derived_layers
104
+
105
+
56
106
  def set_material(session, structure: str, material: MaterialSpec) -> None:
57
107
  """Sets the material of a structure.
58
108
 
@@ -228,7 +278,6 @@ def write_sparameters_lumerical(
228
278
  ymargin_top = ymargin_top or ymargin
229
279
  ymargin_bot = ymargin_bot or ymargin
230
280
 
231
- layer_to_thickness = layer_stack.get_layer_to_thickness()
232
281
  layer_to_zmin = layer_stack.get_layer_to_zmin()
233
282
  layer_to_material = layer_stack.get_layer_to_material()
234
283
 
@@ -246,18 +295,11 @@ def write_sparameters_lumerical(
246
295
  sim_settings.update(**settings)
247
296
  ss = SimulationSettingsLumericalFdtd(**sim_settings)
248
297
 
249
- component_with_booleans = layer_stack.get_component_with_derived_layers(component)
250
- component_with_padding = gf.add_padding_container(
251
- component_with_booleans,
252
- default=0,
253
- top=ymargin_top,
254
- bottom=ymargin_bot,
255
- left=xmargin_left,
256
- right=xmargin_right,
298
+ component_with_booleans = _get_component_with_background_layers(
299
+ component, layer_stack
257
300
  )
258
-
259
301
  component_extended = gf.components.extend_ports(
260
- component_with_padding, length=ss.distance_monitors_to_pml
302
+ component_with_booleans, length=ss.distance_monitors_to_pml
261
303
  )
262
304
 
263
305
  ports = component.ports.filter(port_type="optical")
@@ -292,10 +334,10 @@ def write_sparameters_lumerical(
292
334
  print(run_false_warning)
293
335
 
294
336
  logger.info(f"Writing Sparameters to {filepath_npz.absolute()!r}")
295
- x_min = (component_extended.xmin - xmargin) * 1e-6
296
- x_max = (component_extended.xmax + xmargin) * 1e-6
297
- y_min = (component_extended.ymin - ymargin) * 1e-6
298
- y_max = (component_extended.ymax + ymargin) * 1e-6
337
+ x_min = (component_extended.xmin - xmargin_left) * 1e-6
338
+ x_max = (component_extended.xmax + xmargin_right) * 1e-6
339
+ y_min = (component_extended.ymin - ymargin_bot) * 1e-6
340
+ y_max = (component_extended.ymax + ymargin_top) * 1e-6
299
341
 
300
342
  index_to_thickness = {}
301
343
  index_to_zmin = {}
@@ -470,8 +512,14 @@ def write_sparameters_lumerical(
470
512
 
471
513
  for i, port in enumerate(ports):
472
514
  port_layer_index = gf.get_layer(port.layer)
473
- zmin = index_to_zmin[port_layer_index]
474
- thickness = index_to_thickness[port_layer_index]
515
+ zmin = index_to_zmin.get(port_layer_index, component_zmin)
516
+ thickness = index_to_thickness.get(port_layer_index, component_thickness)
517
+ if port_layer_index not in index_to_thickness:
518
+ logger.warning(
519
+ "Port %r is on a layer not defined in the layer stack; using the "
520
+ "component vertical extent for its mode port",
521
+ port.name,
522
+ )
475
523
  z = (zmin + thickness) / 2
476
524
  zspan = 2 * ss.port_margin + thickness
477
525
 
@@ -25,7 +25,7 @@ license = {file = "LICENSE"}
25
25
  name = "gplugins"
26
26
  readme = "README.md"
27
27
  requires-python = ">=3.11"
28
- version = "2.1.2"
28
+ version = "2.1.4"
29
29
 
30
30
  [project.optional-dependencies]
31
31
  dev = [
@@ -51,13 +51,13 @@ docs = [
51
51
  "zensical>=0.0.46,<0.1.0"
52
52
  ]
53
53
  emode = ["emodeconnection>=1.1.11"]
54
- femwell = ["femwell~=0.1.11", "meshwell~=2.1.2"]
54
+ femwell = ["femwell~=0.1.11", "meshwell~=2.1.1"]
55
55
  gfviz = ["jinja2", "fastapi", "shapely", "natsort"]
56
56
  klayout = ["klayout", "pyvis<=0.3.2", "vlsir", "vlsirtools", "gitpython"]
57
57
  luminescent = ["luminescent>=0.2.12,<4.1.0", "sortedcontainers"]
58
58
  maintainer = ["mypy", "tbump", "towncrier"]
59
59
  meow = ["meow-sim>=0.15", "sax>=0.17,<0.19", "tidy3d~=2.11.1"]
60
- meshwell = ["shapely", "meshwell~=2.1.2"]
60
+ meshwell = ["shapely", "meshwell~=2.1.1"]
61
61
  path_length_analysis = ["bokeh", "numba>=0.60", "shapely"]
62
62
  sax = ["sax>=0.17,<0.19"]
63
63
  schematic = ["bokeh", "ipywidgets", "natsort"]
@@ -170,12 +170,15 @@ cmd = "grep -q -F {new_version} CHANGELOG.md"
170
170
  name = "create & check changelog"
171
171
 
172
172
  [[tool.tbump.file]]
173
+ search = '^# gplugins {current_version}$'
173
174
  src = "README.md"
174
175
 
175
176
  [[tool.tbump.file]]
177
+ search = '^version = "{current_version}"$'
176
178
  src = "pyproject.toml"
177
179
 
178
180
  [[tool.tbump.file]]
181
+ search = '^__version__ = "{current_version}"$'
179
182
  src = "gplugins/__init__.py"
180
183
 
181
184
  [tool.tbump.git]
@@ -183,7 +186,7 @@ message_template = "Bump to {new_version}"
183
186
  tag_template = "v{new_version}"
184
187
 
185
188
  [tool.tbump.version]
186
- current = "2.1.2"
189
+ current = "2.1.4"
187
190
  regex = '''
188
191
  (?P<major>\d+)
189
192
  \.
File without changes
File without changes