gplugins 1.3.0__tar.gz → 1.3.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 (251) hide show
  1. {gplugins-1.3.0 → gplugins-1.3.2}/PKG-INFO +3 -2
  2. {gplugins-1.3.0 → gplugins-1.3.2}/README.md +1 -1
  3. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/__init__.py +1 -1
  4. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/fdtdz/get_ports_fdtdz.py +4 -4
  5. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/fdtdz/get_sparameters_fdtdz.py +4 -4
  6. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/femwell/mode_solver.py +2 -2
  7. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/netlist.py +5 -5
  8. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/get_port_eigenmode.py +8 -8
  9. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/get_simulation.py +4 -4
  10. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/get_simulation_grating_farfield.py +10 -10
  11. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/get_simulation_grating_fiber.py +4 -4
  12. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/meep_adjoint_optimization.py +6 -6
  13. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/get_mesh.py +1 -3
  14. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/check_exclusion.py +2 -2
  15. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/check_inclusion.py +4 -4
  16. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/samples/drc_errors.py +6 -6
  17. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/get_density.py +5 -5
  18. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_density.py +2 -2
  19. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_exclusion.py +2 -2
  20. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_inclusion.py +4 -4
  21. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/write_sparameters_lumerical.py +22 -13
  22. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/meow/meow_eme.py +4 -4
  23. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/path_length_analysis/path_length_analysis_from_gds.py +3 -3
  24. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/path_length_analysis/test_pathlength_extraction.py +1 -1
  25. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sentaurus/sde.py +6 -6
  26. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sentaurus/sprocess.py +12 -12
  27. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/get_simulation_grating_coupler.py +1 -1
  28. {gplugins-1.3.0 → gplugins-1.3.2}/pyproject.toml +10 -3
  29. {gplugins-1.3.0 → gplugins-1.3.2}/LICENSE +0 -0
  30. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/__init__.py +0 -0
  31. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/base_models/__init__.py +0 -0
  32. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/base_models/component.py +0 -0
  33. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/base_models/simulation.py +0 -0
  34. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/config.py +0 -0
  35. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/types.py +0 -0
  36. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/__init__.py +0 -0
  37. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/add_simulation_markers.py +0 -0
  38. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/async_helpers.py +0 -0
  39. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/cache.py +0 -0
  40. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/convert_sparameters.py +0 -0
  41. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/disable_print.py +0 -0
  42. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/get_capacitance.py +0 -0
  43. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/get_component_with_local_layers.py +0 -0
  44. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/get_component_with_net_layers.py +0 -0
  45. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/get_effective_indices.py +0 -0
  46. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/get_scattering.py +0 -0
  47. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/get_sparameters_path.py +0 -0
  48. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/optical_constants.py +0 -0
  49. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/parse_layer_stack.py +0 -0
  50. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/plot.py +0 -0
  51. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/plot_csv.py +0 -0
  52. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/port_symmetries.py +0 -0
  53. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/common/utils/tests/test_get_component_with_new_port_layers.py +0 -0
  54. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/devsim/__init__.py +0 -0
  55. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/devsim/doping.py +0 -0
  56. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/devsim/get_simulation.py +0 -0
  57. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/devsim/get_simulation_xsection.py +0 -0
  58. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/devsim/get_solver.py +0 -0
  59. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/devsim/test_devsim.py +0 -0
  60. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/elmer/__init__.py +0 -0
  61. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/elmer/electrostatic.sif.j2 +0 -0
  62. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/elmer/get_capacitance.py +0 -0
  63. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/elmer/tests/test_elmer.py +0 -0
  64. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/fdtdz/__init__.py +0 -0
  65. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/fdtdz/get_epsilon_fdtdz.py +0 -0
  66. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/femwell/__init__.py +0 -0
  67. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/femwell/solve_thermal.py +0 -0
  68. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/femwell/test_mode_solver.py +0 -0
  69. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/Makefile +0 -0
  70. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/__init__.py +0 -0
  71. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/b64.py +0 -0
  72. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/gfviz.py +0 -0
  73. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/serve.py +0 -0
  74. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/static/b64.js +0 -0
  75. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/static/schemedit.js +0 -0
  76. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/static/schemedit.wasm +0 -0
  77. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/templates/example.json +0 -0
  78. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gfviz/templates/index.html +0 -0
  79. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/__init__.py +0 -0
  80. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/get_material.py +0 -0
  81. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/get_meep_geometry.py +0 -0
  82. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_eigenmode.py +0 -0
  83. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_materials.py +0 -0
  84. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_crossing.csv +0 -0
  85. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_straight.csv +0 -0
  86. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_crossing.csv +0 -0
  87. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_straight.csv +0 -0
  88. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_symmetries_straight.csv +0 -0
  89. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi.csv +0 -0
  90. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi_pool.csv +0 -0
  91. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_crossing_symmetric.csv +0 -0
  92. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight.csv +0 -0
  93. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_batch.csv +0 -0
  94. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi.csv +0 -0
  95. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi_pool.csv +0 -0
  96. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_symmetric.csv +0 -0
  97. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep.py +0 -0
  98. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_grating.py +0 -0
  99. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_meep.py +0 -0
  100. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_meep_batch.py +0 -0
  101. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_meep_mpi.py +0 -0
  102. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/__init__.py +0 -0
  103. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/define_polysurfaces.py +0 -0
  104. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/parse_component.py +0 -0
  105. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/parse_gds.py +0 -0
  106. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/tests/test_custom_names.py +0 -0
  107. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/tests/test_meshing_2D.py +0 -0
  108. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/tests/test_meshing_3D.py +0 -0
  109. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/uz_xsection_mesh.py +0 -0
  110. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/xy_xsection_mesh.py +0 -0
  111. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/gmsh/xyz_mesh.py +0 -0
  112. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/__init__.py +0 -0
  113. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/dataprep/__init__.py +0 -0
  114. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/dataprep/regions.py +0 -0
  115. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/__init__.py +0 -0
  116. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/check_duplicated_cells.py +0 -0
  117. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/check_space.py +0 -0
  118. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/check_width.py +0 -0
  119. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/count_drc.py +0 -0
  120. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/drc/write_drc.py +0 -0
  121. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/get_netlist.py +0 -0
  122. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/netlist_graph.py +0 -0
  123. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/netlist_spice_reader.py +0 -0
  124. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/plot_nets.py +0 -0
  125. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_dataprep_regions.py +0 -0
  126. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_space.py +0 -0
  127. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_width.py +0 -0
  128. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_global_density.py +0 -0
  129. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_netlist_spice_reader.py +0 -0
  130. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/klayout/tests/test_plot_nets.py +0 -0
  131. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/README.md +0 -0
  132. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/__init__.py +0 -0
  133. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/interconnect.py +0 -0
  134. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/mapping_ubcpdk.yml +0 -0
  135. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/read.py +0 -0
  136. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/settings.py +0 -0
  137. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/tests/test_lumerical_read_sparameters.py +0 -0
  138. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/tests/test_netlist.py +0 -0
  139. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/tests/test_netlist_get_routes.py +0 -0
  140. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/lumerical/write_sparameters_lumerical_components.py +0 -0
  141. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/materials/__init__.py +0 -0
  142. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/materials/inorganic.py +0 -0
  143. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/materials/optical/__init__.py +0 -0
  144. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/materials/optical/optical_mat.py +0 -0
  145. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/materials/optical/refractive_index_info.py +0 -0
  146. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/materials/semiconductor/__init__.py +0 -0
  147. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/materials/semiconductor/semiconductor_mat.py +0 -0
  148. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/meow/__init__.py +0 -0
  149. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/meow/test_meow_simulation.py +0 -0
  150. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/__init__.py +0 -0
  151. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/coupler.py +0 -0
  152. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/find_coupling_vs_gap.py +0 -0
  153. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/find_mode_dispersion.py +0 -0
  154. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/find_modes.py +0 -0
  155. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/find_modes_cross_section.py +0 -0
  156. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/find_neff_ng_dw_dh.py +0 -0
  157. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/find_neff_vs_width.py +0 -0
  158. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/get_mode_solver_coupler.py +0 -0
  159. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/get_mode_solver_cross_section.py +0 -0
  160. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/get_mode_solver_rib.py +0 -0
  161. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/modes/neff_vs_width_nitride.csv +0 -0
  162. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/modes/neff_vs_width_rib.csv +0 -0
  163. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/modes/neff_vs_width_strip.csv +0 -0
  164. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/neff_convergence_test.py +0 -0
  165. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/neff_vs_width.csv +0 -0
  166. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/overlap.py +0 -0
  167. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh.csv +0 -0
  168. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh.obtained.csv +0 -0
  169. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh_dispersion.csv +0 -0
  170. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh.py +0 -0
  171. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_find_modes.py +0 -0
  172. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_find_modes_dispersion.py +0 -0
  173. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.csv +0 -0
  174. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.obtained.csv +0 -0
  175. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/tests/test_neff_vs_width.py +0 -0
  176. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/types.py +0 -0
  177. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/modes/waveguide.py +0 -0
  178. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/palace/__init__.py +0 -0
  179. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/palace/driven.json +0 -0
  180. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/palace/electrostatic.json +0 -0
  181. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/palace/get_capacitance.py +0 -0
  182. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/palace/get_scattering.py +0 -0
  183. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/palace/tests/test_palace.py +0 -0
  184. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/path_length_analysis/__init__.py +0 -0
  185. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/path_length_analysis/path_length_analysis.py +0 -0
  186. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/photonic_circuit_models/__init__.py +0 -0
  187. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/photonic_circuit_models/coupler.py +0 -0
  188. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/photonic_circuit_models/fsr.py +0 -0
  189. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/photonic_circuit_models/heater.py +0 -0
  190. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/photonic_circuit_models/mzi.py +0 -0
  191. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/photonic_circuit_models/ring.py +0 -0
  192. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/__init__.py +0 -0
  193. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/diffusion.py +0 -0
  194. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/implant_tables.py +0 -0
  195. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/pysrim.py +0 -0
  196. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/silicon.py +0 -0
  197. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/skew/antimony_si_skew.csv +0 -0
  198. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/skew/arsenic_si_skew.csv +0 -0
  199. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/skew/boron_si_skew.csv +0 -0
  200. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/process/skew/phosphorus_si_skew.csv +0 -0
  201. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/__init__.py +0 -0
  202. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/build_model.py +0 -0
  203. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/integrations/__init__.py +0 -0
  204. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/integrations/femwell_waveguide_model.py +0 -0
  205. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/integrations/meep_FDTD_model.py +0 -0
  206. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/integrations/meow_eme_model.py +0 -0
  207. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/interpolators.py +0 -0
  208. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/mlp.py +0 -0
  209. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/models.py +0 -0
  210. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/parameter.py +0 -0
  211. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/plot_model.py +0 -0
  212. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/read.py +0 -0
  213. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi.py +0 -0
  214. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.obtained.yml +0 -0
  215. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.yml +0 -0
  216. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi_lattice.py +0 -0
  217. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sax/tests/test_parameters.py +0 -0
  218. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sentaurus/mask_sde.py +0 -0
  219. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sentaurus/mask_sprocess.py +0 -0
  220. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sentaurus/sdevice.py +0 -0
  221. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/sentaurus/svisual.py +0 -0
  222. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/spice/__init__.py +0 -0
  223. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/spice/spice_to_yaml.py +0 -0
  224. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/spice/tests/__init__.py +0 -0
  225. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/spice/tests/test_interconnect.py +0 -0
  226. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/__init__.py +0 -0
  227. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/component.py +0 -0
  228. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/get_results.py +0 -0
  229. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/materials.py +0 -0
  230. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/modes.py +0 -0
  231. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_component_modeler.py +0 -0
  232. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_materials.py +0 -0
  233. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes/test_sweep_width.csv +0 -0
  234. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes/test_sweep_width.obtained.csv +0 -0
  235. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes_coupler.py +0 -0
  236. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes_waveguide.py +0 -0
  237. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_plot_simulation_grating_coupler.py +0 -0
  238. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_write_sparameters.py +0 -0
  239. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/tests_sparameters/sim_ref.yaml +0 -0
  240. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters.py +0 -0
  241. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters_grating_coupler.py +0 -0
  242. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/types.py +0 -0
  243. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/util.py +0 -0
  244. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/tidy3d/write_sparameters_grating_coupler.py +0 -0
  245. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/typings.py +0 -0
  246. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/vlsir/__init__.py +0 -0
  247. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/vlsir/export_netlist.py +0 -0
  248. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/vlsir/tests/resources/pads_correct.cir +0 -0
  249. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/vlsir/tests/resources/pads_correct.scs +0 -0
  250. {gplugins-1.3.0 → gplugins-1.3.2}/gplugins/vlsir/tests/resources/pads_correct.sp +0 -0
  251. {gplugins-1.3.0 → gplugins-1.3.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.3.0
3
+ Version: 1.3.2
4
4
  Summary: gdsfactory plugins
5
5
  Keywords: python
6
6
  Author-email: gdsfactory <contact@gdsfactory.com>
@@ -16,6 +16,7 @@ Requires-Dist: pint
16
16
  Requires-Dist: gdstk
17
17
  Requires-Dist: tqdm
18
18
  Requires-Dist: numpy
19
+ Requires-Dist: xarray==2025.1.2
19
20
  Requires-Dist: pre-commit ; extra == "dev"
20
21
  Requires-Dist: pytest ; extra == "dev"
21
22
  Requires-Dist: pytest-cov ; extra == "dev"
@@ -90,7 +91,7 @@ Provides-Extra: schematic
90
91
  Provides-Extra: tidy3d
91
92
  Provides-Extra: vlsir
92
93
 
93
- # gplugins 1.3.0
94
+ # gplugins 1.3.2
94
95
 
95
96
  [![docs](https://github.com/gdsfactory/gplugins/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/gplugins/)
96
97
  [![PyPI](https://img.shields.io/pypi/v/gplugins)](https://pypi.org/project/gplugins/)
@@ -1,4 +1,4 @@
1
- # gplugins 1.3.0
1
+ # gplugins 1.3.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.3.0"
3
+ __version__ = "1.3.2"
4
4
 
5
5
  import pathlib
6
6
 
@@ -224,8 +224,8 @@ if __name__ == "__main__":
224
224
  omega=omega,
225
225
  port=c.ports["o1"],
226
226
  epsilon=epsilon,
227
- xmin=c.dxmin,
228
- ymin=c.dymin,
227
+ xmin=c.xmin,
228
+ ymin=c.ymin,
229
229
  nm_per_pixel=nm_per_pixel,
230
230
  port_extent_xy=1,
231
231
  )
@@ -234,8 +234,8 @@ if __name__ == "__main__":
234
234
  port=c.ports["o1"],
235
235
  epsilon_port=epsilon_port,
236
236
  excitation=excitation,
237
- xmin=c.dxmin,
238
- ymin=c.dymin,
237
+ xmin=c.xmin,
238
+ ymin=c.ymin,
239
239
  zmin=zmin,
240
240
  nm_per_pixel=1000,
241
241
  figsize=(11, 4),
@@ -93,8 +93,8 @@ def get_sparameters_fdtdz(
93
93
  """
94
94
  # Checks from gmeep
95
95
  component_ref = component.ref()
96
- component_ref.dx = 0
97
- component_ref.dy = 0
96
+ component_ref.x = 0
97
+ component_ref.y = 0
98
98
 
99
99
  optical_port_names = list(component_ref.get_ports_dict(port_type="optical").keys())
100
100
 
@@ -129,8 +129,8 @@ def get_sparameters_fdtdz(
129
129
  omega=omega,
130
130
  port=component.ports[portname],
131
131
  epsilon=epsilon,
132
- xmin=component_extended.dxmin,
133
- ymin=component_extended.dymin,
132
+ xmin=component_extended.xmin,
133
+ ymin=component_extended.ymin,
134
134
  nm_per_pixel=nm_per_pixel,
135
135
  port_extent_xy=port_margin,
136
136
  )
@@ -68,8 +68,8 @@ def compute_cross_section_modes(
68
68
  """
69
69
  # Get meshable component from cross-section
70
70
  c = gf.components.straight(length=10, cross_section=cross_section)
71
- dx = c.dxsize
72
- dy = c.dysize
71
+ dx = c.xsize
72
+ dy = c.ysize
73
73
 
74
74
  xsection_bounds = [
75
75
  [dx / 2, dy - wafer_padding],
@@ -167,10 +167,10 @@ def get_ports(child, parent=None):
167
167
  else:
168
168
  ports = ports1
169
169
 
170
- x0 = c.dxmin
171
- x1 = c.dxmax
172
- y0 = c.dymin
173
- y1 = c.dymax
170
+ x0 = c.xmin
171
+ x1 = c.xmax
172
+ y0 = c.ymin
173
+ y1 = c.ymax
174
174
  x0, x1 = min(x0, x1), max(x0, x1)
175
175
  y0, y1 = min(y0, y1), max(y0, y1)
176
176
 
@@ -271,7 +271,7 @@ def _line_dists(points, start, end):
271
271
 
272
272
 
273
273
  def sort_ports(ports) -> list[gf.Port]:
274
- return natsorted(ports, key=lambda port: port.dx)
274
+ return natsorted(ports, key=lambda port: port.x)
275
275
 
276
276
 
277
277
  def wrap_component_in_netlist(name):
@@ -19,10 +19,10 @@ def get_domain_measurements(sim, output_plane, frequency, resolution=0):
19
19
  # Get domain measurements
20
20
  sim_center, sim_size = get_2D_dimensions(sim, output_plane)
21
21
 
22
- xmin = sim_center.dx- sim_size.dx/ 2
23
- xmax = sim_center.dx+ sim_size.dx/ 2
24
- ymin = sim_center.dy- sim_size.dy/ 2
25
- ymax = sim_center.dy+ sim_size.dy/ 2
22
+ xmin = sim_center.x- sim_size.x/ 2
23
+ xmax = sim_center.x+ sim_size.x/ 2
24
+ ymin = sim_center.y- sim_size.y/ 2
25
+ ymax = sim_center.y+ sim_size.y/ 2
26
26
  zmin = sim_center.z - sim_size.z / 2
27
27
  zmax = sim_center.z + sim_size.z / 2
28
28
 
@@ -31,12 +31,12 @@ def get_domain_measurements(sim, output_plane, frequency, resolution=0):
31
31
  Ny = int((ymax - ymin) * grid_resolution + 1)
32
32
  Nz = int((zmax - zmin) * grid_resolution + 1)
33
33
 
34
- if sim_size.dx== 0:
34
+ if sim_size.x== 0:
35
35
  # Plot y on x axis, z on y axis (YZ plane)
36
36
  xtics = np.array([sim_center.x])
37
37
  ytics = np.linspace(ymin, ymax, Ny)
38
38
  ztics = np.linspace(zmin, zmax, Nz)
39
- elif sim_size.dy== 0:
39
+ elif sim_size.y== 0:
40
40
  # Plot x on x axis, z on y axis (XZ plane)
41
41
  xtics = np.linspace(xmin, xmax, Nx)
42
42
  ytics = np.array([sim_center.y])
@@ -117,10 +117,10 @@ def get_port_2Dx_eigenmode(
117
117
  # The output of this function is slightly different then MPB (there is no mode_solver object)
118
118
  # Format like the Mode objects in gdsfactory/simulation/modes to reuse modes' functions
119
119
  if not choose_yz:
120
- ny = int(size.dy * sim.resolution)
120
+ ny = int(size.y * sim.resolution)
121
121
  nz = int(size.z * sim.resolution)
122
122
  y = np.linspace(
123
- center.dy - size.dy / 2, center.dy + size.dy / 2, ny
123
+ center.y - size.y / 2, center.y + size.y / 2, ny
124
124
  ) # eigenmode solver and sim res are technically different
125
125
  z = np.linspace(center.z - size.z / 2, center.z + size.z / 2, nz)
126
126
  yy, zz = np.meshgrid(y, z, indexing="ij")
@@ -144,8 +144,8 @@ def get_simulation(
144
144
 
145
145
  dummy_component = gf.Component()
146
146
  component_ref = dummy_component << component
147
- component_ref.dx = 0
148
- component_ref.dy = 0
147
+ component_ref.x = 0
148
+ component_ref.y = 0
149
149
 
150
150
  wavelength = (wavelength_start + wavelength_stop) / 2
151
151
 
@@ -195,8 +195,8 @@ def get_simulation(
195
195
  cell_thickness = tpml + zmargin_bot + t_core + zmargin_top + tpml if is_3d else 0
196
196
 
197
197
  cell_size = mp.Vector3(
198
- component.dxsize + 2 * tpml,
199
- component.dysize + 2 * tpml,
198
+ component.xsize + 2 * tpml,
199
+ component.ysize + 2 * tpml,
200
200
  cell_thickness,
201
201
  )
202
202
 
@@ -172,7 +172,7 @@ def get_simulation_grating_farfield(
172
172
  0.5 * sz - pml_thickness + y_offset - 1,
173
173
  )
174
174
  fiber_port_size = mp.Vector3(3 * fiber_core_diameter, 0, 0)
175
- # fiber_port_direction = mp.Vector3(y=-1).drotate(mp.Vector3(z=1), -1 * fiber_angle)
175
+ # fiber_port_direction = mp.Vector3(y=-1).rotate(mp.Vector3(z=1), -1 * fiber_angle)
176
176
 
177
177
  waveguide_port_center = mp.Vector3(-sxy / 4)
178
178
  waveguide_port_size = mp.Vector3(0, 2 * clad_thickness - 0.2)
@@ -193,8 +193,8 @@ def get_simulation_grating_farfield(
193
193
  x=grating_start + fiber_xposition - fiber_offset_from_angle
194
194
  ),
195
195
  size=mp.Vector3(fiber_clad, hfiber_geom),
196
- e1=mp.Vector3(x=1).drotate(mp.Vector3(z=1), -1 * fiber_angle),
197
- e2=mp.Vector3(y=1).drotate(mp.Vector3(z=1), -1 * fiber_angle),
196
+ e1=mp.Vector3(x=1).rotate(mp.Vector3(z=1), -1 * fiber_angle),
197
+ e2=mp.Vector3(y=1).rotate(mp.Vector3(z=1), -1 * fiber_angle),
198
198
  )
199
199
  ]
200
200
 
@@ -205,8 +205,8 @@ def get_simulation_grating_farfield(
205
205
  x=grating_start + fiber_xposition - fiber_offset_from_angle
206
206
  ),
207
207
  size=mp.Vector3(fiber_core_diameter, hfiber_geom),
208
- e1=mp.Vector3(x=1).drotate(mp.Vector3(z=1), -1 * fiber_angle),
209
- e2=mp.Vector3(y=1).drotate(mp.Vector3(z=1), -1 * fiber_angle),
208
+ e1=mp.Vector3(x=1).rotate(mp.Vector3(z=1), -1 * fiber_angle),
209
+ e2=mp.Vector3(y=1).rotate(mp.Vector3(z=1), -1 * fiber_angle),
210
210
  )
211
211
  )
212
212
 
@@ -415,8 +415,8 @@ def get_port_1D_eigenmode(
415
415
  frequency=fsrc,
416
416
  )
417
417
  ys_waveguide = np.linspace(
418
- center_waveguide.dy - size_waveguide.dy / 2,
419
- center_waveguide.dy + size_waveguide.dy / 2,
418
+ center_waveguide.y - size_waveguide.y / 2,
419
+ center_waveguide.y + size_waveguide.y / 2,
420
420
  int(sim.resolution * size_waveguide.y),
421
421
  )
422
422
  x_waveguide = center_waveguide.x
@@ -426,14 +426,14 @@ def get_port_1D_eigenmode(
426
426
  direction=mp.NO_DIRECTION,
427
427
  where=mp.Volume(center=center_fiber, size=size_fiber),
428
428
  band_num=band_num,
429
- kpoint=mp.Vector3(0, fsrc * 1.45, 0).drotate(
429
+ kpoint=mp.Vector3(0, fsrc * 1.45, 0).rotate(
430
430
  mp.Vector3(z=1), -1 * np.radians(fiber_angle_deg)
431
431
  ), # Hardcoded index for now, pull from simulation eventually
432
432
  frequency=fsrc,
433
433
  )
434
434
  xs_fiber = np.linspace(
435
- center_fiber.dx - size_fiber.dx / 2,
436
- center_fiber.dx + size_fiber.dx / 2,
435
+ center_fiber.x - size_fiber.x / 2,
436
+ center_fiber.x + size_fiber.x / 2,
437
437
  int(sim.resolution * size_fiber.x),
438
438
  )
439
439
  y_fiber = center_fiber.y
@@ -501,8 +501,8 @@ def get_port_1D_eigenmode(
501
501
  frequency=fsrc,
502
502
  )
503
503
  ys_waveguide = np.linspace(
504
- center_waveguide.dy - size_waveguide.dy / 2,
505
- center_waveguide.dy + size_waveguide.dy / 2,
504
+ center_waveguide.y - size_waveguide.y / 2,
505
+ center_waveguide.y + size_waveguide.y / 2,
506
506
  int(sim.resolution * size_waveguide.y),
507
507
  )
508
508
  x_waveguide = center_waveguide.x
@@ -518,8 +518,8 @@ def get_port_1D_eigenmode(
518
518
  frequency=fsrc,
519
519
  )
520
520
  xs_fiber = np.linspace(
521
- center_fiber.dx - size_fiber.dx / 2,
522
- center_fiber.dx + size_fiber.dx / 2,
521
+ center_fiber.x - size_fiber.x / 2,
522
+ center_fiber.x + size_fiber.x / 2,
523
523
  int(sim.resolution * size_fiber.x),
524
524
  )
525
525
  y_fiber = center_fiber.y
@@ -151,8 +151,8 @@ def get_meep_adjoint_optimizer(
151
151
  Vector3(*cell_size)
152
152
  if cell_size
153
153
  else Vector3(
154
- c.dxsize + 2 * sim.boundary_layers[0].thickness,
155
- c.dysize + 2 * sim.boundary_layers[0].thickness,
154
+ c.xsize + 2 * sim.boundary_layers[0].thickness,
155
+ c.ysize + 2 * sim.boundary_layers[0].thickness,
156
156
  cell_thickness,
157
157
  )
158
158
  )
@@ -262,10 +262,10 @@ def get_component_from_sim(
262
262
  """
263
263
  grid_resolution = upscale_factor * sim.resolution
264
264
  sim_center, sim_size = get_2D_dimensions(sim, output_plane=None)
265
- xmin = sim_center.dx - sim_size.dx / 2
266
- xmax = sim_center.dx + sim_size.dx / 2
267
- ymin = sim_center.dy - sim_size.dy / 2
268
- ymax = sim_center.dy + sim_size.dy / 2
265
+ xmin = sim_center.x - sim_size.x / 2
266
+ xmax = sim_center.x + sim_size.x / 2
267
+ ymin = sim_center.y - sim_size.y / 2
268
+ ymax = sim_center.y + sim_size.y / 2
269
269
  Nx = int((xmax - xmin) * grid_resolution + 1)
270
270
  Ny = int((ymax - ymin) * grid_resolution + 1)
271
271
  xtics = np.linspace(xmin, xmax, Nx)
@@ -98,9 +98,7 @@ def get_mesh(
98
98
 
99
99
  # Default meshing flags (all True)
100
100
  if layer_meshbool_map is None:
101
- layer_meshbool_map = {
102
- layer_name: True for layer_name in layer_stack.layers.keys()
103
- }
101
+ layer_meshbool_map = dict.fromkeys(layer_stack.layers.keys(), True)
104
102
  else:
105
103
  for layer_name in layer_stack.layers.keys():
106
104
  if layer_name not in layer_physical_map.keys():
@@ -70,8 +70,8 @@ if __name__ == "__main__":
70
70
  c = gf.Component()
71
71
  r1 = c << gf.components.rectangle(size=(w, w), layer=(1, 0))
72
72
  r2 = c << gf.components.rectangle(size=(w, w), layer=(2, 0))
73
- r1.dxmax = 0
74
- r2.dxmin = space
73
+ r1.xmax = 0
74
+ r2.xmin = space
75
75
  gdspath = c
76
76
  gf.show(gdspath)
77
77
  print(check_exclusion(c))
@@ -71,10 +71,10 @@ if __name__ == "__main__":
71
71
  c = gf.Component()
72
72
  r1 = c << gf.components.rectangle(size=(w1, w1), layer=(1, 0))
73
73
  r2 = c << gf.components.rectangle(size=(w2, w2), layer=(2, 0))
74
- r1.dx = 0
75
- r1.dy = 0
76
- r2.dx = 0
77
- r2.dy = 0
74
+ r1.x = 0
75
+ r1.y = 0
76
+ r2.x = 0
77
+ r2.y = 0
78
78
  gdspath = c
79
79
  gf.show(gdspath)
80
80
  print(check_inclusion(c, min_inclusion=min_inclusion))
@@ -25,8 +25,8 @@ def gap_min(gap: float = 0.1) -> Component:
25
25
  c = gf.Component()
26
26
  r1 = c << gf.components.rectangle(size=(1, 1), layer=layer)
27
27
  r2 = c << gf.components.rectangle(size=(1, 1), layer=layer)
28
- r1.dxmax = 0
29
- r2.dxmin = gap
28
+ r1.xmax = 0
29
+ r2.xmin = gap
30
30
  return c
31
31
 
32
32
 
@@ -37,8 +37,8 @@ def separation(
37
37
  c = gf.Component()
38
38
  r1 = c << gf.components.rectangle(size=(1, 1), layer=layer1)
39
39
  r2 = c << gf.components.rectangle(size=(1, 1), layer=layer2)
40
- r1.dxmax = 0
41
- r2.dxmin = gap
40
+ r1.xmax = 0
41
+ r2.xmin = gap
42
42
  return c
43
43
 
44
44
 
@@ -68,8 +68,8 @@ def snapping_error(gap: float = 1e-3) -> Component:
68
68
  c = gf.Component()
69
69
  r1 = c << gf.components.rectangle(size=(1, 1), layer=layer)
70
70
  r2 = c << gf.components.rectangle(size=(1, 1), layer=layer)
71
- r1.dxmax = 0
72
- r2.dxmin = gap
71
+ r1.xmax = 0
72
+ r2.xmin = gap
73
73
  return c
74
74
 
75
75
 
@@ -131,7 +131,7 @@ def get_gds_bbox(
131
131
  component = gf.import_gds(gdspath, cellname=cellname)
132
132
  if layer is not None:
133
133
  component = component.extract(layers=[layer])
134
- return (component.dxmin, component.dymin), (component.dxmax, component.dymax)
134
+ return (component.xmin, component.ymin), (component.xmax, component.ymax)
135
135
 
136
136
 
137
137
  def extend_grid_and_density_to_bbox(
@@ -386,11 +386,11 @@ if __name__ == "__main__":
386
386
  c = gf.Component("density_test1")
387
387
  large_rect = c << gf.components.rectangle(size=(100, 150), layer=(1, 0))
388
388
  small_rect = c << gf.components.rectangle(size=(50, 50), layer=(2, 0))
389
- small_rect.dx += 10
390
- small_rect.dy += 10
389
+ small_rect.x += 10
390
+ small_rect.y += 10
391
391
  small_rect2 = c << gf.components.rectangle(size=(25, 25), layer=(2, 0))
392
- small_rect2.dymax = 100 - small_rect2.dysize
393
- small_rect2.dxmax = large_rect.dxmax - small_rect2.dxsize
392
+ small_rect2.ymax = 100 - small_rect2.ysize
393
+ small_rect2.xmax = large_rect.xmax - small_rect2.xsize
394
394
  # c.write_gds(PATH.test_data / "test_gds_density1.gds")
395
395
  return c
396
396
 
@@ -18,8 +18,8 @@ def component_test_density1():
18
18
  large_rect = c << gf.components.rectangle(size=(100, 150), layer=(1, 0))
19
19
  _small_rect = c << gf.components.rectangle(size=(50, 50), layer=(2, 0))
20
20
  small_rect2 = c << gf.components.rectangle(size=(25, 25), layer=(2, 0))
21
- small_rect2.dymax = 100 - small_rect2.dysize
22
- small_rect2.dxmax = large_rect.dxmax - small_rect2.dxsize
21
+ small_rect2.ymax = 100 - small_rect2.ysize
22
+ small_rect2.xmax = large_rect.xmax - small_rect2.xsize
23
23
  return c
24
24
 
25
25
 
@@ -18,8 +18,8 @@ def exclusion(
18
18
  c = gf.Component()
19
19
  r1 = c << gf.components.rectangle(size=(width, width), layer=layer1)
20
20
  r2 = c << gf.components.rectangle(size=(width, width), layer=layer2)
21
- r1.dxmax = 0
22
- r2.dxmin = space
21
+ r1.xmax = 0
22
+ r2.xmin = space
23
23
  return c
24
24
 
25
25
 
@@ -20,10 +20,10 @@ def component_min_inclusion(
20
20
  r2 = c << gf.components.rectangle(
21
21
  size=(width - 2 * inclusion, width - 2 * inclusion), layer=layer2
22
22
  )
23
- r1.dx = 0
24
- r1.dy = 0
25
- r2.dx = 0
26
- r2.dy = 0
23
+ r1.x = 0
24
+ r1.y = 0
25
+ r2.x = 0
26
+ r2.y = 0
27
27
  return c
28
28
 
29
29
 
@@ -197,10 +197,9 @@ def write_sparameters_lumerical(
197
197
  suffix `a` for angle in radians and `m` for module.
198
198
 
199
199
  """
200
- component = gf.get_component(component)
201
- sim_settings = dict(simulation_settings)
202
-
203
200
  layer_stack = layer_stack or get_layer_stack()
201
+ component = component
202
+ sim_settings = dict(simulation_settings)
204
203
 
205
204
  layer_to_thickness = layer_stack.get_layer_to_thickness()
206
205
  layer_to_zmin = layer_stack.get_layer_to_zmin()
@@ -262,24 +261,34 @@ def write_sparameters_lumerical(
262
261
  print(run_false_warning)
263
262
 
264
263
  logger.info(f"Writing Sparameters to {filepath_npz.absolute()!r}")
265
- x_min = (component_extended.dxmin - xmargin) * 1e-6
266
- x_max = (component_extended.dxmax + xmargin) * 1e-6
267
- y_min = (component_extended.dymin - ymargin) * 1e-6
268
- y_max = (component_extended.dymax + ymargin) * 1e-6
264
+ x_min = (component_extended.xmin - xmargin) * 1e-6
265
+ x_max = (component_extended.xmax + xmargin) * 1e-6
266
+ y_min = (component_extended.ymin - ymargin) * 1e-6
267
+ y_max = (component_extended.ymax + ymargin) * 1e-6
268
+
269
+ index_to_thickness = {}
270
+ index_to_zmin = {}
271
+ for level in layer_stack.layers.values():
272
+ if level.derived_layer is None:
273
+ index_to_thickness[level.layer.layer] = level.thickness
274
+ index_to_zmin[level.layer.layer] = level.thickness
275
+ else:
276
+ index_to_thickness[level.derived_layer.layer] = level.zmin
277
+ index_to_zmin[level.derived_layer.layer] = level.zmin
269
278
 
270
279
  layers_thickness = [
271
- layer_to_thickness[layer]
280
+ index_to_thickness[gf.get_layer(layer)]
272
281
  for layer in component_with_booleans.layers
273
- if layer in layer_to_thickness
282
+ if gf.get_layer(layer) in index_to_thickness
274
283
  ]
275
284
  if not layers_thickness:
276
285
  raise ValueError(
277
286
  f"no layers for component {component.layers}in layer stack {layer_stack}"
278
287
  )
279
288
  layers_zmin = [
280
- layer_to_zmin[layer]
289
+ index_to_zmin[gf.get_layer(layer)]
281
290
  for layer in component_with_booleans.layers
282
- if layer in layer_to_zmin
291
+ if gf.get_layer(layer) in index_to_zmin
283
292
  ]
284
293
  component_thickness = max(layers_thickness)
285
294
  component_zmin = min(layers_zmin)
@@ -393,8 +402,8 @@ def write_sparameters_lumerical(
393
402
 
394
403
  s.addport()
395
404
  p = f"FDTD::ports::port {i + 1}"
396
- s.setnamed(p, "x", port.dx * 1e-6)
397
- s.setnamed(p, "y", port.dy * 1e-6)
405
+ s.setnamed(p, "x", port.x * 1e-6)
406
+ s.setnamed(p, "y", port.y * 1e-6)
398
407
  s.setnamed(p, "z", z * 1e-6)
399
408
  s.setnamed(p, "z span", zspan * 1e-6)
400
409
  s.setnamed(p, "frequency dependent profile", ss.frequency_dependent_profile)
@@ -147,10 +147,10 @@ class MEOW:
147
147
 
148
148
  # Process simulation bounds
149
149
  z_min, x_min, z_max, x_max = (
150
- component.dxmin,
151
- component.dymin,
152
- component.dxmax,
153
- component.dymax,
150
+ component.xmin,
151
+ component.ymin,
152
+ component.xmax,
153
+ component.ymax,
154
154
  )
155
155
  z_min, z_max = min(z_min, z_max) + 1e-10, max(z_min, z_max) - 1e-10
156
156
  x_min, x_max = min(x_min, x_max) + 1e-10, max(x_min, x_max) - 1e-10
@@ -348,11 +348,11 @@ def extract_paths(
348
348
  # Unfortunately klayout does not have an easy way to split, so
349
349
  # we will use shapely to do it and then go back to klayout
350
350
 
351
- y_val = (simplified_component.dymax + simplified_component.dymin) / 2
351
+ y_val = (simplified_component.ymax + simplified_component.ymin) / 2
352
352
  slice = sh.LineString(
353
353
  [
354
- [simplified_component.dxmin, y_val],
355
- [simplified_component.dxmax, y_val],
354
+ [simplified_component.xmin, y_val],
355
+ [simplified_component.xmax, y_val],
356
356
  ]
357
357
  )
358
358
 
@@ -147,7 +147,7 @@ def test_transformed_hierarchical_pathlength_extraction() -> None:
147
147
  iend = c.add_ref(
148
148
  gf.get_component("straight", cross_section=cross_section, length=100), "iend"
149
149
  )
150
- istart = istart.drotate(37)
150
+ istart = istart.rotate(37)
151
151
  imid.connect("o1", istart.ports["o2"])
152
152
  iend.connect("o1", imid.ports["o2"])
153
153
 
@@ -68,10 +68,10 @@ def initialize_sde(
68
68
  ymin = 0
69
69
  ymax = 0
70
70
  else:
71
- xmin = component.dxmin
72
- xmax = component.dxmax
73
- ymin = component.dymin
74
- ymax = component.dymax
71
+ xmin = component.xmin
72
+ xmax = component.xmax
73
+ ymin = component.ymin
74
+ ymax = component.ymax
75
75
 
76
76
  # Initialize
77
77
  output_str += header_str
@@ -282,8 +282,8 @@ if __name__ == "__main__":
282
282
  component=test_straight, domain=[[0, -4], [0, 4], [length, 4], [length, -4]]
283
283
  )
284
284
 
285
- yp = (test_component.dymax + test_component.dymin) / 2 + test_component.dysize / 2
286
- ym = (test_component.dymax + test_component.dymin) / 2 - test_component.dysize / 2
285
+ yp = (test_component.ymax + test_component.ymin) / 2 + test_component.ysize / 2
286
+ ym = (test_component.ymax + test_component.ymin) / 2 - test_component.ysize / 2
287
287
 
288
288
  WAFER_STACK.layers["substrate"].material = "Silicon"
289
289
  WAFER_STACK.layers["substrate"].thickness = 1
@@ -99,10 +99,10 @@ def initialize_sprocess(
99
99
  ymin = 0
100
100
  ymax = 0
101
101
  else:
102
- xmin = component.dxmin
103
- xmax = component.dxmax
104
- ymin = component.dymin
105
- ymax = component.dymax
102
+ xmin = component.xmin
103
+ xmax = component.xmax
104
+ ymin = component.ymin
105
+ ymax = component.ymax
106
106
 
107
107
  # Initial z-mesh from waferstack and resolutions
108
108
  z_map = {}
@@ -595,19 +595,19 @@ if __name__ == "__main__":
595
595
  component=test_straight, domain=[[0, -4], [0, 4], [length, 4], [length, -4]]
596
596
  )
597
597
 
598
- yp = (test_component.dymax + test_component.dymin) / 2 + test_component.dysize / 2
599
- ym = (test_component.dymax + test_component.dymin) / 2 - test_component.dysize / 2
598
+ yp = (test_component.ymax + test_component.ymin) / 2 + test_component.ysize / 2
599
+ ym = (test_component.ymax + test_component.ymin) / 2 - test_component.ysize / 2
600
600
  c.add_port(
601
601
  name="e1",
602
602
  center=(length / 2, yp),
603
- width=test_component.dysize / 2,
603
+ width=test_component.ysize / 2,
604
604
  orientation=0,
605
605
  layer=LAYER.VIAC,
606
606
  )
607
607
  c.add_port(
608
608
  name="e2",
609
609
  center=(length / 2, ym),
610
- width=test_component.dysize / 2,
610
+ width=test_component.ysize / 2,
611
611
  orientation=0,
612
612
  layer=LAYER.VIAC,
613
613
  )
@@ -632,8 +632,8 @@ if __name__ == "__main__":
632
632
  )
633
633
 
634
634
  contact_str = f"""contact name=cathode aluminum silicon xlo=0.0 xhi=0.2 ylo=0.0 yhi=1 zlo=0 zhi=0
635
- contact name=anode aluminum silicon xlo=0.0 xhi=0.2 ylo={c.dysize - 1:1.3f} yhi={c.dysize:1.3f} zlo=0 zhi=0
636
- contact name=substrate box silicon xlo=4.2 xhi=4.3 ylo=0.0 yhi={c.dysize:1.3f} zlo=0 zhi=0
635
+ contact name=anode aluminum silicon xlo=0.0 xhi=0.2 ylo={c.ysize - 1:1.3f} yhi={c.ysize:1.3f} zlo=0 zhi=0
636
+ contact name=substrate box silicon xlo=4.2 xhi=4.3 ylo=0.0 yhi={c.ysize:1.3f} zlo=0 zhi=0
637
637
  """
638
638
 
639
639
  write_sprocess(
@@ -642,8 +642,8 @@ contact name=substrate box silicon xlo=4.2 xhi=4.3 ylo=0.0 yhi={c.dysize:1.3f} z
642
642
  layermap=LAYER,
643
643
  process=get_process(),
644
644
  xsection_bounds=(
645
- ((test_component.dxmin + test_component.dxmax) / 2, test_component.dymin),
646
- ((test_component.dxmin + test_component.dxmax) / 2, test_component.dymax),
645
+ ((test_component.xmin + test_component.xmax) / 2, test_component.ymin),
646
+ ((test_component.xmin + test_component.xmax) / 2, test_component.ymax),
647
647
  ),
648
648
  save_directory="./sprocess/",
649
649
  filename="sprocess_2D_fps.cmd",
@@ -455,7 +455,7 @@ def get_simulation_grating_coupler(
455
455
  )
456
456
 
457
457
  fiber_port = component_with_booleans.ports[fiber_port_name]
458
- fiber_port_x = fiber_port.dcenter[0] + fiber_xoffset - component_with_booleans.dx
458
+ fiber_port_x = fiber_port.dcenter[0] + fiber_xoffset - component_with_booleans.x
459
459
 
460
460
  if not (-sim_size[0] / 2 <= fiber_port_x <= sim_size[0] / 2):
461
461
  xmin = float(np.round(-sim_size[0] / 2, 3))