gplugins 1.3.1__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.
- {gplugins-1.3.1 → gplugins-1.3.2}/PKG-INFO +6 -5
- {gplugins-1.3.1 → gplugins-1.3.2}/README.md +1 -1
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/__init__.py +1 -1
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/fdtdz/get_ports_fdtdz.py +4 -4
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/fdtdz/get_sparameters_fdtdz.py +4 -4
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/femwell/mode_solver.py +2 -2
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/netlist.py +5 -5
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/get_port_eigenmode.py +8 -8
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/get_simulation.py +4 -4
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/get_simulation_grating_farfield.py +10 -10
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/get_simulation_grating_fiber.py +4 -4
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/meep_adjoint_optimization.py +6 -6
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/get_mesh.py +1 -3
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/check_exclusion.py +2 -2
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/check_inclusion.py +4 -4
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/samples/drc_errors.py +6 -6
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/get_density.py +5 -5
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_density.py +2 -2
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_exclusion.py +2 -2
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_inclusion.py +4 -4
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/write_sparameters_lumerical.py +22 -13
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/meow/meow_eme.py +4 -4
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/path_length_analysis/path_length_analysis_from_gds.py +3 -3
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/path_length_analysis/test_pathlength_extraction.py +1 -1
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sentaurus/sde.py +6 -6
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sentaurus/sprocess.py +12 -12
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/get_simulation_grating_coupler.py +1 -1
- {gplugins-1.3.1 → gplugins-1.3.2}/pyproject.toml +16 -6
- {gplugins-1.3.1 → gplugins-1.3.2}/LICENSE +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/base_models/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/base_models/component.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/base_models/simulation.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/config.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/types.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/add_simulation_markers.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/async_helpers.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/cache.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/convert_sparameters.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/disable_print.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/get_capacitance.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/get_component_with_local_layers.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/get_component_with_net_layers.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/get_effective_indices.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/get_scattering.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/get_sparameters_path.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/optical_constants.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/parse_layer_stack.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/plot.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/plot_csv.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/port_symmetries.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/common/utils/tests/test_get_component_with_new_port_layers.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/devsim/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/devsim/doping.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/devsim/get_simulation.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/devsim/get_simulation_xsection.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/devsim/get_solver.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/devsim/test_devsim.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/elmer/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/elmer/electrostatic.sif.j2 +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/elmer/get_capacitance.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/elmer/tests/test_elmer.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/fdtdz/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/fdtdz/get_epsilon_fdtdz.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/femwell/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/femwell/solve_thermal.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/femwell/test_mode_solver.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/Makefile +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/b64.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/gfviz.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/serve.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/static/b64.js +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/static/schemedit.js +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/static/schemedit.wasm +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/templates/example.json +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gfviz/templates/index.html +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/get_material.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/get_meep_geometry.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_eigenmode.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_materials.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_crossing.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_straight.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_crossing.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_straight.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_symmetries_straight.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi_pool.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_crossing_symmetric.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_batch.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi_pool.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_symmetric.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/test_write_sparameters_meep.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_grating.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_meep.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_meep_batch.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmeep/write_sparameters_meep_mpi.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/define_polysurfaces.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/parse_component.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/parse_gds.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/tests/test_custom_names.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/tests/test_meshing_2D.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/tests/test_meshing_3D.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/uz_xsection_mesh.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/xy_xsection_mesh.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/gmsh/xyz_mesh.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/dataprep/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/dataprep/regions.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/check_duplicated_cells.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/check_space.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/check_width.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/count_drc.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/drc/write_drc.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/get_netlist.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/netlist_graph.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/netlist_spice_reader.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/plot_nets.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_dataprep_regions.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_space.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_drc_width.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_global_density.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_netlist_spice_reader.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/klayout/tests/test_plot_nets.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/README.md +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/interconnect.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/mapping_ubcpdk.yml +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/read.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/settings.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/tests/test_lumerical_read_sparameters.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/tests/test_netlist.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/tests/test_netlist_get_routes.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/lumerical/write_sparameters_lumerical_components.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/materials/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/materials/inorganic.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/materials/optical/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/materials/optical/optical_mat.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/materials/optical/refractive_index_info.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/materials/semiconductor/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/materials/semiconductor/semiconductor_mat.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/meow/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/meow/test_meow_simulation.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/coupler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/find_coupling_vs_gap.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/find_mode_dispersion.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/find_modes.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/find_modes_cross_section.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/find_neff_ng_dw_dh.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/find_neff_vs_width.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/get_mode_solver_coupler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/get_mode_solver_cross_section.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/get_mode_solver_rib.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/modes/neff_vs_width_nitride.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/modes/neff_vs_width_rib.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/modes/neff_vs_width_strip.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/neff_convergence_test.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/neff_vs_width.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/overlap.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh.obtained.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh/test_dw_dh_dispersion.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_dw_dh.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_find_modes.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_find_modes_dispersion.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.obtained.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/tests/test_neff_vs_width.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/types.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/modes/waveguide.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/palace/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/palace/driven.json +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/palace/electrostatic.json +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/palace/get_capacitance.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/palace/get_scattering.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/palace/tests/test_palace.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/path_length_analysis/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/path_length_analysis/path_length_analysis.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/photonic_circuit_models/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/photonic_circuit_models/coupler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/photonic_circuit_models/fsr.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/photonic_circuit_models/heater.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/photonic_circuit_models/mzi.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/photonic_circuit_models/ring.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/diffusion.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/implant_tables.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/pysrim.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/silicon.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/skew/antimony_si_skew.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/skew/arsenic_si_skew.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/skew/boron_si_skew.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/process/skew/phosphorus_si_skew.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/build_model.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/integrations/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/integrations/femwell_waveguide_model.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/integrations/meep_FDTD_model.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/integrations/meow_eme_model.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/interpolators.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/mlp.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/models.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/parameter.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/plot_model.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/read.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.obtained.yml +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.yml +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/tests/test_mzi_lattice.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sax/tests/test_parameters.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sentaurus/mask_sde.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sentaurus/mask_sprocess.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sentaurus/sdevice.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/sentaurus/svisual.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/spice/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/spice/spice_to_yaml.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/spice/tests/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/spice/tests/test_interconnect.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/component.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/get_results.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/materials.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/modes.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_component_modeler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_materials.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes/test_sweep_width.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes/test_sweep_width.obtained.csv +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes_coupler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_modes_waveguide.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_plot_simulation_grating_coupler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/test_write_sparameters.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/tests_sparameters/sim_ref.yaml +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters_grating_coupler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/types.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/util.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/tidy3d/write_sparameters_grating_coupler.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/typings.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/vlsir/__init__.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/vlsir/export_netlist.py +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/vlsir/tests/resources/pads_correct.cir +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/vlsir/tests/resources/pads_correct.scs +0 -0
- {gplugins-1.3.1 → gplugins-1.3.2}/gplugins/vlsir/tests/resources/pads_correct.sp +0 -0
- {gplugins-1.3.1 → 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.
|
|
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"
|
|
@@ -24,7 +25,7 @@ Requires-Dist: pyswarms ; extra == "dev"
|
|
|
24
25
|
Requires-Dist: autograd ; extra == "dev"
|
|
25
26
|
Requires-Dist: devsim ; extra == "devsim"
|
|
26
27
|
Requires-Dist: pyvista<=0.43.8 ; extra == "devsim"
|
|
27
|
-
Requires-Dist: tidy3d>=2.7.8 ; extra == "devsim"
|
|
28
|
+
Requires-Dist: tidy3d>=2.7.8,<2.8 ; extra == "devsim"
|
|
28
29
|
Requires-Dist: jupytext ; extra == "docs"
|
|
29
30
|
Requires-Dist: matplotlib ; extra == "docs"
|
|
30
31
|
Requires-Dist: jupyter-book~=1.0 ; extra == "docs"
|
|
@@ -57,7 +58,7 @@ Requires-Dist: jax>=0.4.26 ; extra == "meow"
|
|
|
57
58
|
Requires-Dist: jaxlib>=0.4.26 ; extra == "meow"
|
|
58
59
|
Requires-Dist: flax>=0.8.2 ; extra == "meow"
|
|
59
60
|
Requires-Dist: meow-sim>=0.11,<0.13 ; extra == "meow"
|
|
60
|
-
Requires-Dist: tidy3d>=2.7.8 ; extra == "meow"
|
|
61
|
+
Requires-Dist: tidy3d>=2.7.8,<2.8 ; extra == "meow"
|
|
61
62
|
Requires-Dist: scipy<=1.14.1 ; extra == "meow"
|
|
62
63
|
Requires-Dist: jax>=0.4.26 ; extra == "sax"
|
|
63
64
|
Requires-Dist: jaxlib>=0.4.26 ; extra == "sax"
|
|
@@ -69,7 +70,7 @@ Requires-Dist: ray ; extra == "sax"
|
|
|
69
70
|
Requires-Dist: bokeh ; extra == "schematic"
|
|
70
71
|
Requires-Dist: ipywidgets ; extra == "schematic"
|
|
71
72
|
Requires-Dist: natsort ; extra == "schematic"
|
|
72
|
-
Requires-Dist: tidy3d>=2.7.8 ; extra == "tidy3d"
|
|
73
|
+
Requires-Dist: tidy3d>=2.7.8,<2.8 ; extra == "tidy3d"
|
|
73
74
|
Requires-Dist: meshio ; extra == "tidy3d"
|
|
74
75
|
Requires-Dist: numpy ; extra == "tidy3d"
|
|
75
76
|
Requires-Dist: meshwell~=1.0.7 ; extra == "tidy3d"
|
|
@@ -90,7 +91,7 @@ Provides-Extra: schematic
|
|
|
90
91
|
Provides-Extra: tidy3d
|
|
91
92
|
Provides-Extra: vlsir
|
|
92
93
|
|
|
93
|
-
# gplugins 1.3.
|
|
94
|
+
# gplugins 1.3.2
|
|
94
95
|
|
|
95
96
|
[](https://gdsfactory.github.io/gplugins/)
|
|
96
97
|
[](https://pypi.org/project/gplugins/)
|
|
@@ -224,8 +224,8 @@ if __name__ == "__main__":
|
|
|
224
224
|
omega=omega,
|
|
225
225
|
port=c.ports["o1"],
|
|
226
226
|
epsilon=epsilon,
|
|
227
|
-
xmin=c.
|
|
228
|
-
ymin=c.
|
|
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.
|
|
238
|
-
ymin=c.
|
|
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.
|
|
97
|
-
component_ref.
|
|
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.
|
|
133
|
-
ymin=component_extended.
|
|
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.
|
|
72
|
-
dy = c.
|
|
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.
|
|
171
|
-
x1 = c.
|
|
172
|
-
y0 = c.
|
|
173
|
-
y1 = c.
|
|
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.
|
|
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.
|
|
23
|
-
xmax = sim_center.
|
|
24
|
-
ymin = sim_center.
|
|
25
|
-
ymax = sim_center.
|
|
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.
|
|
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.
|
|
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.
|
|
120
|
+
ny = int(size.y * sim.resolution)
|
|
121
121
|
nz = int(size.z * sim.resolution)
|
|
122
122
|
y = np.linspace(
|
|
123
|
-
center.
|
|
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.
|
|
148
|
-
component_ref.
|
|
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.
|
|
199
|
-
component.
|
|
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).
|
|
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).
|
|
197
|
-
e2=mp.Vector3(y=1).
|
|
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).
|
|
209
|
-
e2=mp.Vector3(y=1).
|
|
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.
|
|
419
|
-
center_waveguide.
|
|
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).
|
|
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.
|
|
436
|
-
center_fiber.
|
|
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.
|
|
505
|
-
center_waveguide.
|
|
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.
|
|
522
|
-
center_fiber.
|
|
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.
|
|
155
|
-
c.
|
|
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.
|
|
266
|
-
xmax = sim_center.
|
|
267
|
-
ymin = sim_center.
|
|
268
|
-
ymax = sim_center.
|
|
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.
|
|
74
|
-
r2.
|
|
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.
|
|
75
|
-
r1.
|
|
76
|
-
r2.
|
|
77
|
-
r2.
|
|
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.
|
|
29
|
-
r2.
|
|
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.
|
|
41
|
-
r2.
|
|
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.
|
|
72
|
-
r2.
|
|
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.
|
|
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.
|
|
390
|
-
small_rect.
|
|
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.
|
|
393
|
-
small_rect2.
|
|
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.
|
|
22
|
-
small_rect2.
|
|
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.
|
|
22
|
-
r2.
|
|
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.
|
|
24
|
-
r1.
|
|
25
|
-
r2.
|
|
26
|
-
r2.
|
|
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.
|
|
266
|
-
x_max = (component_extended.
|
|
267
|
-
y_min = (component_extended.
|
|
268
|
-
y_max = (component_extended.
|
|
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
|
-
|
|
280
|
+
index_to_thickness[gf.get_layer(layer)]
|
|
272
281
|
for layer in component_with_booleans.layers
|
|
273
|
-
if layer in
|
|
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
|
-
|
|
289
|
+
index_to_zmin[gf.get_layer(layer)]
|
|
281
290
|
for layer in component_with_booleans.layers
|
|
282
|
-
if layer in
|
|
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.
|
|
397
|
-
s.setnamed(p, "y", port.
|
|
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.
|
|
151
|
-
component.
|
|
152
|
-
component.
|
|
153
|
-
component.
|
|
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
|
{gplugins-1.3.1 → gplugins-1.3.2}/gplugins/path_length_analysis/path_length_analysis_from_gds.py
RENAMED
|
@@ -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.
|
|
351
|
+
y_val = (simplified_component.ymax + simplified_component.ymin) / 2
|
|
352
352
|
slice = sh.LineString(
|
|
353
353
|
[
|
|
354
|
-
[simplified_component.
|
|
355
|
-
[simplified_component.
|
|
354
|
+
[simplified_component.xmin, y_val],
|
|
355
|
+
[simplified_component.xmax, y_val],
|
|
356
356
|
]
|
|
357
357
|
)
|
|
358
358
|
|
{gplugins-1.3.1 → gplugins-1.3.2}/gplugins/path_length_analysis/test_pathlength_extraction.py
RENAMED
|
@@ -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.
|
|
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.
|
|
72
|
-
xmax = component.
|
|
73
|
-
ymin = component.
|
|
74
|
-
ymax = component.
|
|
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.
|
|
286
|
-
ym = (test_component.
|
|
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
|