gplugins 1.3.4__tar.gz → 1.3.6__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.4 → gplugins-1.3.6}/PKG-INFO +4 -12
- {gplugins-1.3.4 → gplugins-1.3.6}/README.md +1 -1
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/__init__.py +1 -1
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/base_models/component.py +79 -8
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/get_meep_geometry.py +38 -13
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/get_simulation.py +2 -6
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/meep_adjoint_optimization.py +5 -3
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/write_sparameters_meep.py +3 -1
- {gplugins-1.3.4 → gplugins-1.3.6}/pyproject.toml +9 -12
- gplugins-1.3.4/gplugins/sax/build_model.py +0 -344
- gplugins-1.3.4/gplugins/sax/integrations/femwell_waveguide_model.py +0 -232
- gplugins-1.3.4/gplugins/sax/integrations/meep_FDTD_model.py +0 -198
- gplugins-1.3.4/gplugins/sax/integrations/meow_eme_model.py +0 -133
- gplugins-1.3.4/gplugins/spice/tests/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/LICENSE +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/base_models/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/base_models/simulation.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/config.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/types.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/add_simulation_markers.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/async_helpers.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/cache.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/convert_sparameters.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/disable_print.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/get_capacitance.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/get_component_with_net_layers.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/get_effective_indices.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/get_scattering.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/get_sparameters_path.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/optical_constants.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/parse_layer_stack.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/plot.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/plot_csv.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/port_symmetries.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/common/utils/tests/test_get_component_with_new_port_layers.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/devsim/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/devsim/doping.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/devsim/get_simulation.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/devsim/get_simulation_xsection.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/devsim/get_solver.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/devsim/test_devsim.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/elmer/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/elmer/electrostatic.sif.j2 +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/elmer/get_capacitance.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/elmer/tests/test_elmer.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/fdtdz/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/fdtdz/get_epsilon_fdtdz.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/fdtdz/get_ports_fdtdz.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/fdtdz/get_sparameters_fdtdz.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/femwell/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/femwell/mode_solver.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/femwell/solve_thermal.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/femwell/test_mode_solver.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/Makefile +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/b64.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/gfviz.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/netlist.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/serve.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/static/b64.js +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/static/schemedit.js +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/static/schemedit.wasm +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/templates/example.json +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gfviz/templates/index.html +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/get_material.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/get_port_eigenmode.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/get_simulation_grating_farfield.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/get_simulation_grating_fiber.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_eigenmode.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_materials.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_crossing.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_straight.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_crossing.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_straight.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_symmetries_straight.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi_pool.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_crossing_symmetric.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_batch.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi_pool.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_symmetric.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/test_write_sparameters_meep.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/write_sparameters_grating.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/write_sparameters_meep_batch.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmeep/write_sparameters_meep_mpi.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/define_polysurfaces.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/get_mesh.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/parse_component.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/parse_gds.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/tests/test_custom_names.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/tests/test_meshing_2D.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/tests/test_meshing_3D.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/uz_xsection_mesh.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/xy_xsection_mesh.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/gmsh/xyz_mesh.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/dataprep/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/dataprep/regions.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/check_duplicated_cells.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/check_exclusion.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/check_inclusion.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/check_space.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/check_width.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/count_drc.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/samples/drc_errors.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/drc/write_drc.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/get_density.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/get_netlist.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/netlist_graph.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/netlist_spice_reader.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/plot_nets.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_dataprep_regions.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_density.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_drc_exclusion.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_drc_inclusion.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_drc_space.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_drc_width.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_global_density.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_netlist_spice_reader.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/klayout/tests/test_plot_nets.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/README.md +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/interconnect.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/mapping_ubcpdk.yml +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/read.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/settings.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/tests/test_lumerical_read_sparameters.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/tests/test_netlist.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/tests/test_netlist_get_routes.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/write_sparameters_lumerical.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/lumerical/write_sparameters_lumerical_components.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/materials/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/materials/inorganic.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/materials/optical/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/materials/optical/optical_mat.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/materials/optical/refractive_index_info.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/materials/semiconductor/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/materials/semiconductor/semiconductor_mat.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/meow/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/meow/meow_eme.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/meow/test_meow_simulation.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/find_coupling_vs_gap.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/find_mode_dispersion.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/find_modes.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/find_modes_cross_section.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/find_neff_ng_dw_dh.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/find_neff_vs_width.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/get_mode_solver_coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/get_mode_solver_cross_section.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/get_mode_solver_rib.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/modes/neff_vs_width_nitride.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/modes/neff_vs_width_rib.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/modes/neff_vs_width_strip.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/neff_convergence_test.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/neff_vs_width.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/overlap.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_dw_dh/test_dw_dh.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_dw_dh/test_dw_dh.obtained.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_dw_dh/test_dw_dh_dispersion.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_dw_dh.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_find_modes.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_find_modes_dispersion.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.obtained.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/tests/test_neff_vs_width.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/types.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/modes/waveguide.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/palace/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/palace/driven.json +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/palace/electrostatic.json +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/palace/get_capacitance.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/palace/get_scattering.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/palace/tests/test_palace.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/path_length_analysis/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/path_length_analysis/path_length_analysis.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/path_length_analysis/path_length_analysis_from_gds.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/path_length_analysis/test_pathlength_extraction.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/photonic_circuit_models/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/photonic_circuit_models/coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/photonic_circuit_models/fsr.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/photonic_circuit_models/heater.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/photonic_circuit_models/mzi.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/photonic_circuit_models/ring.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/diffusion.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/implant_tables.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/pysrim.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/silicon.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/skew/antimony_si_skew.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/skew/arsenic_si_skew.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/skew/boron_si_skew.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/process/skew/phosphorus_si_skew.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/interpolators.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/mlp.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/models.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/parameter.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/plot_model.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/read.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/tests/test_mzi.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.obtained.yml +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.yml +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/tests/test_mzi_lattice.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sax/tests/test_parameters.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sentaurus/mask_sde.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sentaurus/mask_sprocess.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sentaurus/sde.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sentaurus/sdevice.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sentaurus/sprocess.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/sentaurus/svisual.py +0 -0
- {gplugins-1.3.4/gplugins/sax/integrations → gplugins-1.3.6/gplugins/spice}/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/spice/spice_to_yaml.py +0 -0
- {gplugins-1.3.4/gplugins/spice → gplugins-1.3.6/gplugins/spice/tests}/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/spice/tests/test_interconnect.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/component.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/get_results.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/get_simulation_grating_coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/materials.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/modes.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_component_modeler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_materials.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_modes/test_sweep_width.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_modes/test_sweep_width.obtained.csv +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_modes_coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_modes_waveguide.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_plot_simulation_grating_coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/test_write_sparameters.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/tests_sparameters/sim_ref.yaml +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters_grating_coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/types.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/util.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/tidy3d/write_sparameters_grating_coupler.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/typings.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/vlsir/__init__.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/vlsir/export_netlist.py +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/vlsir/tests/resources/pads_correct.cir +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/vlsir/tests/resources/pads_correct.scs +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/vlsir/tests/resources/pads_correct.sp +0 -0
- {gplugins-1.3.4 → gplugins-1.3.6}/gplugins/vlsir/tests/test_vlsir.py +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gplugins
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.6
|
|
4
4
|
Summary: gdsfactory plugins
|
|
5
5
|
Keywords: python
|
|
6
6
|
Author-email: gdsfactory <contact@gdsfactory.com>
|
|
7
7
|
Requires-Python: >=3.11
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
10
9
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
10
|
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
Requires-Dist: gdsfactory>=9.3.5
|
|
@@ -29,6 +29,7 @@ Requires-Dist: matplotlib ; extra == "docs"
|
|
|
29
29
|
Requires-Dist: jupyter-book~=1.0 ; extra == "docs"
|
|
30
30
|
Requires-Dist: pyvista[all]<=0.43.8 ; extra == "docs"
|
|
31
31
|
Requires-Dist: bokeh ; extra == "docs"
|
|
32
|
+
Requires-Dist: scikit-learn ; extra == "docs"
|
|
32
33
|
Requires-Dist: femwell~=0.1.11 ; extra == "femwell"
|
|
33
34
|
Requires-Dist: meshwell~=1.0.7 ; extra == "femwell"
|
|
34
35
|
Requires-Dist: jinja2 ; extra == "gfviz"
|
|
@@ -58,20 +59,11 @@ 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.13,<0.14 ; extra == "meow"
|
|
60
61
|
Requires-Dist: tidy3d>=2.8.2,<2.9 ; extra == "meow"
|
|
61
|
-
Requires-Dist: jax>=0.4.26 ; extra == "sax"
|
|
62
|
-
Requires-Dist: jaxlib>=0.4.26 ; extra == "sax"
|
|
63
|
-
Requires-Dist: flax>=0.8.2 ; extra == "sax"
|
|
64
62
|
Requires-Dist: sax>=0.13.1,<0.15.0 ; extra == "sax"
|
|
65
|
-
Requires-Dist: scikit-learn ; extra == "sax"
|
|
66
|
-
Requires-Dist: pyvis<=0.3.1 ; extra == "sax"
|
|
67
|
-
Requires-Dist: ray ; extra == "sax"
|
|
68
63
|
Requires-Dist: bokeh ; extra == "schematic"
|
|
69
64
|
Requires-Dist: ipywidgets ; extra == "schematic"
|
|
70
65
|
Requires-Dist: natsort ; extra == "schematic"
|
|
71
66
|
Requires-Dist: tidy3d>=2.8.2,<2.9 ; extra == "tidy3d"
|
|
72
|
-
Requires-Dist: meshio ; extra == "tidy3d"
|
|
73
|
-
Requires-Dist: numpy ; extra == "tidy3d"
|
|
74
|
-
Requires-Dist: meshwell~=1.0.7 ; extra == "tidy3d"
|
|
75
67
|
Requires-Dist: gdstk ; extra == "tidy3d"
|
|
76
68
|
Requires-Dist: vlsir ; extra == "vlsir"
|
|
77
69
|
Requires-Dist: vlsirtools ; extra == "vlsir"
|
|
@@ -90,7 +82,7 @@ Provides-Extra: schematic
|
|
|
90
82
|
Provides-Extra: tidy3d
|
|
91
83
|
Provides-Extra: vlsir
|
|
92
84
|
|
|
93
|
-
# gplugins 1.3.
|
|
85
|
+
# gplugins 1.3.6
|
|
94
86
|
|
|
95
87
|
[](https://gdsfactory.github.io/gplugins/)
|
|
96
88
|
[](https://pypi.org/project/gplugins/)
|
|
@@ -2,6 +2,7 @@ from functools import cached_property
|
|
|
2
2
|
from hashlib import md5
|
|
3
3
|
from typing import TypeAlias
|
|
4
4
|
|
|
5
|
+
import shapely
|
|
5
6
|
import gdsfactory as gf
|
|
6
7
|
import numpy as np
|
|
7
8
|
from gdsfactory.component import Component
|
|
@@ -15,13 +16,77 @@ from pydantic import (
|
|
|
15
16
|
)
|
|
16
17
|
from shapely import MultiPolygon, Polygon
|
|
17
18
|
|
|
18
|
-
from gplugins.gmsh.parse_gds import cleanup_component
|
|
19
19
|
|
|
20
20
|
from ..types import AnyShapelyPolygon, GFComponent
|
|
21
21
|
|
|
22
|
+
from gdsfactory.pdk import get_layer_stack, get_layer, get_layer_name
|
|
23
|
+
|
|
22
24
|
Coordinate: TypeAlias = tuple[float, float]
|
|
23
25
|
|
|
24
26
|
|
|
27
|
+
def round_coordinates(geom, ndigits=4):
|
|
28
|
+
"""Round coordinates to n_digits to eliminate floating point errors."""
|
|
29
|
+
|
|
30
|
+
def _round_coords(x, y, z=None):
|
|
31
|
+
x = round(x, ndigits)
|
|
32
|
+
y = round(y, ndigits)
|
|
33
|
+
|
|
34
|
+
if z is not None:
|
|
35
|
+
z = round(x, ndigits)
|
|
36
|
+
|
|
37
|
+
return [c for c in (x, y, z) if c is not None]
|
|
38
|
+
|
|
39
|
+
return shapely.ops.transform(_round_coords, geom)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def fuse_polygons(component, layer, round_tol=4, simplify_tol=1e-4, offset_tol=None):
|
|
43
|
+
"""Take all polygons from a layer, and returns a single (Multi)Polygon shapely object."""
|
|
44
|
+
layer_region = layer.get_shapes(component)
|
|
45
|
+
|
|
46
|
+
# Convert polygons to shapely
|
|
47
|
+
# TODO: do all polygon processing in KLayout at the gplugins level for speed
|
|
48
|
+
shapely_polygons = []
|
|
49
|
+
for klayout_polygon in layer_region.each_merged():
|
|
50
|
+
exterior_points = [
|
|
51
|
+
(point.x / 1000, point.y / 1000)
|
|
52
|
+
for point in klayout_polygon.each_point_hull()
|
|
53
|
+
]
|
|
54
|
+
interior_points = []
|
|
55
|
+
for hole_index in range(klayout_polygon.holes()):
|
|
56
|
+
holes_points = [
|
|
57
|
+
(point.x / 1000, point.y / 1000)
|
|
58
|
+
for point in klayout_polygon.each_point_hole(hole_index)
|
|
59
|
+
]
|
|
60
|
+
interior_points.append(holes_points)
|
|
61
|
+
|
|
62
|
+
shapely_polygons.append(
|
|
63
|
+
round_coordinates(
|
|
64
|
+
shapely.geometry.Polygon(shell=exterior_points, holes=interior_points),
|
|
65
|
+
round_tol,
|
|
66
|
+
)
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
return shapely.ops.unary_union(shapely_polygons).simplify(
|
|
70
|
+
simplify_tol, preserve_topology=False
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def cleanup_component(component, layer_stack, round_tol=2, simplify_tol=1e-2):
|
|
75
|
+
"""Process component polygons before meshing."""
|
|
76
|
+
layer_stack_dict = layer_stack.to_dict()
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
layername: fuse_polygons(
|
|
80
|
+
component,
|
|
81
|
+
layer["layer"],
|
|
82
|
+
round_tol=round_tol,
|
|
83
|
+
simplify_tol=simplify_tol,
|
|
84
|
+
)
|
|
85
|
+
for layername, layer in layer_stack_dict.items()
|
|
86
|
+
if layer["layer"] is not None
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
25
90
|
def move_polar_rad_copy(
|
|
26
91
|
pos: Coordinate, angle: float, length: float
|
|
27
92
|
) -> NDArray[np.float64]:
|
|
@@ -223,13 +288,19 @@ class LayeredComponentBase(BaseModel):
|
|
|
223
288
|
)
|
|
224
289
|
|
|
225
290
|
def get_port_layers(self, port: gf.Port) -> tuple[str, ...]:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
291
|
+
layer_name = get_layer_name(port.layer)
|
|
292
|
+
|
|
293
|
+
derived_layers = []
|
|
294
|
+
for l_name, level in self.layer_stack.layers.items():
|
|
295
|
+
if layer_name in str(level.layer):
|
|
296
|
+
derived_layers.append(l_name)
|
|
297
|
+
|
|
298
|
+
return derived_layers
|
|
299
|
+
|
|
300
|
+
# return ("core",)
|
|
301
|
+
# return tuple(
|
|
302
|
+
# k for k, v in self.layer_stack.layers.items() if port.layer in v.layer
|
|
303
|
+
# )
|
|
233
304
|
|
|
234
305
|
def get_layer_bbox(
|
|
235
306
|
self, layername: str
|
|
@@ -3,9 +3,13 @@ from __future__ import annotations
|
|
|
3
3
|
import gdsfactory as gf
|
|
4
4
|
import meep as mp
|
|
5
5
|
import numpy as np
|
|
6
|
-
from
|
|
6
|
+
from kfactory import LayerEnum
|
|
7
|
+
from typing import cast
|
|
8
|
+
import shapely
|
|
9
|
+
from gdsfactory.pdk import get_layer_stack, get_layer, get_layer_name
|
|
7
10
|
from gdsfactory.technology import LayerStack
|
|
8
|
-
from gdsfactory.
|
|
11
|
+
from gdsfactory.technology import DerivedLayer, LayerStack, LayerViews, LogicalLayer
|
|
12
|
+
from gdsfactory.typings import ComponentSpec, CrossSectionSpec, LayerSpecs
|
|
9
13
|
|
|
10
14
|
from gplugins.common.utils.parse_layer_stack import order_layer_stack
|
|
11
15
|
from gplugins.gmeep.get_material import get_material
|
|
@@ -18,6 +22,7 @@ def get_meep_geometry_from_component(
|
|
|
18
22
|
wavelength: float = 1.55,
|
|
19
23
|
is_3d: bool = False,
|
|
20
24
|
dispersive: bool = False,
|
|
25
|
+
exclude_layers: LayerSpecs | None = None,
|
|
21
26
|
**kwargs,
|
|
22
27
|
) -> list[mp.GeometricObject]:
|
|
23
28
|
"""Returns Meep geometry from a gdsfactory component.
|
|
@@ -32,6 +37,9 @@ def get_meep_geometry_from_component(
|
|
|
32
37
|
kwargs: settings.
|
|
33
38
|
"""
|
|
34
39
|
component = gf.get_component(component=component, **kwargs)
|
|
40
|
+
polygons_per_layer = component.get_polygons_points(merge=True)
|
|
41
|
+
|
|
42
|
+
|
|
35
43
|
layer_stack = layer_stack or get_layer_stack()
|
|
36
44
|
|
|
37
45
|
layer_to_thickness = layer_stack.get_layer_to_thickness()
|
|
@@ -41,24 +49,40 @@ def get_meep_geometry_from_component(
|
|
|
41
49
|
component_with_booleans = layer_stack.get_component_with_derived_layers(component)
|
|
42
50
|
|
|
43
51
|
geometry = []
|
|
52
|
+
exclude_layers = exclude_layers or []
|
|
44
53
|
layer_to_polygons = component_with_booleans.get_polygons_points()
|
|
45
54
|
|
|
46
|
-
ordered_layer_stack_keys = order_layer_stack(layer_stack)[::-1]
|
|
55
|
+
# ordered_layer_stack_keys = order_layer_stack(layer_stack)[::-1]
|
|
56
|
+
|
|
57
|
+
for level in layer_stack.layers.values():
|
|
58
|
+
layer = level.layer
|
|
59
|
+
|
|
60
|
+
if isinstance(layer, LogicalLayer):
|
|
61
|
+
assert isinstance(layer.layer, tuple | LayerEnum)
|
|
62
|
+
layer_tuple = cast(tuple[int, int], tuple(layer.layer))
|
|
63
|
+
elif isinstance(layer, DerivedLayer):
|
|
64
|
+
assert level.derived_layer is not None
|
|
65
|
+
assert isinstance(level.derived_layer.layer, tuple | LayerEnum)
|
|
66
|
+
layer_tuple = cast(tuple[int, int], tuple(level.derived_layer.layer))
|
|
67
|
+
else:
|
|
68
|
+
raise ValueError(f"Layer {layer!r} is not a DerivedLayer or LogicalLayer")
|
|
47
69
|
|
|
48
|
-
|
|
49
|
-
layer = layer_stack.layers[layername].layer
|
|
70
|
+
layer_index = int(get_layer(layer_tuple))
|
|
50
71
|
|
|
51
|
-
if
|
|
72
|
+
if layer_index in exclude_layers:
|
|
52
73
|
continue
|
|
53
|
-
polygons = layer_to_polygons[layer]
|
|
54
|
-
print(f"layer: {layer}, polygons: {polygons}")
|
|
55
74
|
|
|
56
|
-
if
|
|
57
|
-
|
|
58
|
-
zmin_um = layer_to_zmin[layer] if is_3d else 0
|
|
59
|
-
# center = mp.Vector3(0, 0, (zmin_um + height) / 2)
|
|
75
|
+
if layer_index not in polygons_per_layer:
|
|
76
|
+
continue
|
|
60
77
|
|
|
78
|
+
zmin = level.zmin
|
|
79
|
+
zmin_um = layer_to_zmin[layer] if is_3d else 0
|
|
80
|
+
if zmin is not None:
|
|
81
|
+
has_polygons = True
|
|
82
|
+
polygons = polygons_per_layer[layer_index]
|
|
83
|
+
height = level.thickness
|
|
61
84
|
for polygon in polygons:
|
|
85
|
+
p = shapely.geometry.Polygon(polygon)
|
|
62
86
|
vertices = [mp.Vector3(p[0], p[1], zmin_um) for p in polygon]
|
|
63
87
|
material_name = layer_to_material[layer]
|
|
64
88
|
|
|
@@ -80,6 +104,7 @@ def get_meep_geometry_from_component(
|
|
|
80
104
|
# center=center
|
|
81
105
|
)
|
|
82
106
|
)
|
|
107
|
+
|
|
83
108
|
return geometry
|
|
84
109
|
|
|
85
110
|
|
|
@@ -163,7 +188,7 @@ if __name__ == "__main__":
|
|
|
163
188
|
|
|
164
189
|
import gplugins.gmeep as gm
|
|
165
190
|
|
|
166
|
-
c = gf.components.
|
|
191
|
+
c = gf.components.straight()
|
|
167
192
|
sp = gm.write_sparameters_meep(
|
|
168
193
|
c, run=False, ymargin_top=3, ymargin_bot=3, is_3d=True
|
|
169
194
|
)
|
|
@@ -170,12 +170,8 @@ def get_simulation(
|
|
|
170
170
|
else component
|
|
171
171
|
)
|
|
172
172
|
|
|
173
|
-
component_extended.
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
# geometry_center = [component_extended.x, component_extended.y]
|
|
177
|
-
# geometry_center = [0, 0]
|
|
178
|
-
# print(geometry_center)
|
|
173
|
+
component_extended = component_extended.copy()
|
|
174
|
+
component_extended.flatten()
|
|
179
175
|
|
|
180
176
|
layers_thickness = [
|
|
181
177
|
layer_to_thickness[layer]
|
|
@@ -5,7 +5,6 @@ from types import LambdaType
|
|
|
5
5
|
from typing import Any
|
|
6
6
|
|
|
7
7
|
import gdsfactory as gf
|
|
8
|
-
import nlopt
|
|
9
8
|
import numpy as np
|
|
10
9
|
from gdsfactory import Component
|
|
11
10
|
from gdsfactory.technology import LayerStack
|
|
@@ -190,7 +189,7 @@ def run_meep_adjoint_optimizer(
|
|
|
190
189
|
cost_function: LambdaType,
|
|
191
190
|
update_variable: np.ndarray,
|
|
192
191
|
maximize_cost_function: bool = True,
|
|
193
|
-
|
|
192
|
+
algorithm_name: str = "LD_MMA",
|
|
194
193
|
lower_bound: Any = 0,
|
|
195
194
|
upper_bound: Any = 1,
|
|
196
195
|
maxeval: int = 10,
|
|
@@ -205,7 +204,7 @@ def run_meep_adjoint_optimizer(
|
|
|
205
204
|
cost_function: cost function to optimize.
|
|
206
205
|
update_variable: variable to update the optimization with.
|
|
207
206
|
maximize_cost_function: if True, maximize the cost function, else minimize it.
|
|
208
|
-
|
|
207
|
+
algorithm_name: nlopt algorithm to use (default: nlopt.LD_MMA).
|
|
209
208
|
lower_bound: lower bound for the optimization.
|
|
210
209
|
upper_bound: upper bound for the optimization.
|
|
211
210
|
maxeval: maximum number of evaluations.
|
|
@@ -219,6 +218,9 @@ def run_meep_adjoint_optimizer(
|
|
|
219
218
|
threshold_offset_from_max: threshold offset from max eps value.
|
|
220
219
|
layer: layer to apply to the optimized component.
|
|
221
220
|
"""
|
|
221
|
+
import nlopt
|
|
222
|
+
|
|
223
|
+
algorithm = getattr(nlopt, algorithm_name)
|
|
222
224
|
solver = nlopt.opt(algorithm, number_of_params)
|
|
223
225
|
solver.set_lower_bounds(lower_bound)
|
|
224
226
|
solver.set_upper_bounds(upper_bound)
|
|
@@ -19,7 +19,7 @@ from gdsfactory.component import Component
|
|
|
19
19
|
from gdsfactory.pdk import get_layer_stack
|
|
20
20
|
from gdsfactory.serialization import clean_value_json
|
|
21
21
|
from gdsfactory.technology import LayerStack
|
|
22
|
-
from gdsfactory.typings import ComponentSpec, PathType, Port, PortSymmetries
|
|
22
|
+
from gdsfactory.typings import ComponentSpec, PathType, Port, PortSymmetries, LayerSpec
|
|
23
23
|
from tqdm.auto import tqdm
|
|
24
24
|
|
|
25
25
|
from gplugins.common.utils import port_symmetries
|
|
@@ -151,6 +151,7 @@ def write_sparameters_meep(
|
|
|
151
151
|
plot_args: dict | None = None,
|
|
152
152
|
only_return_filepath_sim_settings=False,
|
|
153
153
|
verbosity: int = 0,
|
|
154
|
+
padding_layers: tuple[LayerSpec, ...] = ("PADDING",),
|
|
154
155
|
**settings,
|
|
155
156
|
) -> dict[str, np.ndarray]:
|
|
156
157
|
r"""Returns Sparameters and writes them to npz filepath.
|
|
@@ -340,6 +341,7 @@ def write_sparameters_meep(
|
|
|
340
341
|
|
|
341
342
|
component = gf.add_padding_container(
|
|
342
343
|
component,
|
|
344
|
+
layers=padding_layers,
|
|
343
345
|
default=0,
|
|
344
346
|
top=ymargin_top,
|
|
345
347
|
bottom=ymargin_bot,
|
|
@@ -7,9 +7,9 @@ requires = ["flit_core >=3.2,<4"]
|
|
|
7
7
|
[project]
|
|
8
8
|
authors = [{name = "gdsfactory", email = "contact@gdsfactory.com"}]
|
|
9
9
|
classifiers = [
|
|
10
|
-
"Programming Language :: Python :: 3.10",
|
|
11
10
|
"Programming Language :: Python :: 3.11",
|
|
12
11
|
"Programming Language :: Python :: 3.12",
|
|
12
|
+
"Programming Language :: Python :: 3.13",
|
|
13
13
|
"Operating System :: OS Independent"
|
|
14
14
|
]
|
|
15
15
|
dependencies = [
|
|
@@ -25,7 +25,7 @@ license = {file = "LICENSE"}
|
|
|
25
25
|
name = "gplugins"
|
|
26
26
|
readme = "README.md"
|
|
27
27
|
requires-python = ">=3.11"
|
|
28
|
-
version = "1.3.
|
|
28
|
+
version = "1.3.6"
|
|
29
29
|
|
|
30
30
|
[project.optional-dependencies]
|
|
31
31
|
dev = [
|
|
@@ -36,7 +36,7 @@ dev = [
|
|
|
36
36
|
"pyswarms"
|
|
37
37
|
]
|
|
38
38
|
devsim = ["devsim", "pyvista<=0.43.8", "tidy3d>=2.8.2,<2.9"]
|
|
39
|
-
docs = ["jupytext", "matplotlib", "jupyter-book~=1.0", "pyvista[all]<=0.43.8", "bokeh"]
|
|
39
|
+
docs = ["jupytext", "matplotlib", "jupyter-book~=1.0", "pyvista[all]<=0.43.8", "bokeh", "scikit-learn"]
|
|
40
40
|
femwell = ["femwell~=0.1.11", "meshwell~=1.0.7"]
|
|
41
41
|
gfviz = ["jinja2", "fastapi", "shapely", "natsort"]
|
|
42
42
|
gmsh = [
|
|
@@ -61,16 +61,13 @@ meow = [
|
|
|
61
61
|
"tidy3d>=2.8.2,<2.9"
|
|
62
62
|
]
|
|
63
63
|
sax = [
|
|
64
|
-
"
|
|
65
|
-
"jaxlib>=0.4.26",
|
|
66
|
-
"flax>=0.8.2",
|
|
67
|
-
"sax>=0.13.1,<0.15.0",
|
|
68
|
-
"scikit-learn",
|
|
69
|
-
"pyvis<=0.3.1",
|
|
70
|
-
"ray"
|
|
64
|
+
"sax>=0.13.1,<0.15.0"
|
|
71
65
|
]
|
|
72
66
|
schematic = ["bokeh", "ipywidgets", "natsort"]
|
|
73
|
-
tidy3d = [
|
|
67
|
+
tidy3d = [
|
|
68
|
+
"tidy3d>=2.8.2,<2.9",
|
|
69
|
+
"gdstk"
|
|
70
|
+
]
|
|
74
71
|
vlsir = ["vlsir", "vlsirtools"]
|
|
75
72
|
|
|
76
73
|
[tool.codespell]
|
|
@@ -192,7 +189,7 @@ message_template = "Bump to {new_version}"
|
|
|
192
189
|
tag_template = "v{new_version}"
|
|
193
190
|
|
|
194
191
|
[tool.tbump.version]
|
|
195
|
-
current = "1.3.
|
|
192
|
+
current = "1.3.6"
|
|
196
193
|
regex = '''
|
|
197
194
|
(?P<major>\d+)
|
|
198
195
|
\.
|