gplugins 1.2.1__tar.gz → 1.2.3__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.2.1 → gplugins-1.2.3}/PKG-INFO +25 -18
- {gplugins-1.2.1 → gplugins-1.2.3}/README.md +24 -17
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/__init__.py +1 -1
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/base_models/component.py +19 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/add_simulation_markers.py +3 -7
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/get_simulation.py +5 -2
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/write_drc.py +9 -1
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sentaurus/sde.py +18 -21
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/get_simulation_grating_coupler.py +216 -213
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_materials.py +7 -7
- {gplugins-1.2.1 → gplugins-1.2.3}/pyproject.toml +2 -2
- {gplugins-1.2.1 → gplugins-1.2.3}/LICENSE +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/base_models/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/base_models/simulation.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/config.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/types.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/async_helpers.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/cache.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/convert_sparameters.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/disable_print.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/get_capacitance.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/get_component_with_local_layers.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/get_component_with_net_layers.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/get_effective_indices.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/get_scattering.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/get_sparameters_path.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/optical_constants.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/parse_layer_stack.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/plot.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/plot_csv.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/port_symmetries.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/common/utils/tests/test_get_component_with_new_port_layers.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/dagster/Makefile +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/dagster/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/dagster/workflow.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/devsim/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/devsim/doping.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/devsim/get_simulation.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/devsim/get_simulation_xsection.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/devsim/get_solver.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/devsim/test_devsim.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/elmer/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/elmer/electrostatic.sif.j2 +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/elmer/get_capacitance.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/elmer/tests/test_elmer.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/fdtdz/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/fdtdz/get_epsilon_fdtdz.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/fdtdz/get_ports_fdtdz.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/fdtdz/get_sparameters_fdtdz.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/femwell/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/femwell/mode_solver.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/femwell/solve_thermal.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/femwell/test_mode_solver.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/Makefile +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/b64.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/gfviz.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/netlist.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/serve.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/static/b64.js +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/static/schemedit.js +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/static/schemedit.wasm +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/templates/example.json +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gfviz/templates/index.html +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/get_material.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/get_meep_geometry.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/get_port_eigenmode.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/get_simulation_grating_farfield.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/get_simulation_grating_fiber.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/meep_adjoint_optimization.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_eigenmode.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_materials.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_crossing.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_sparameterNxN/test_sparameterNxN_straight.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_crossing.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_straight.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameterNxN_symmetries_straight.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameter_straight_mpi_pool.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_crossing_symmetric.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_batch.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_mpi_pool.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep/test_sparameters_straight_symmetric.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/test_write_sparameters_meep.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/write_sparameters_grating.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/write_sparameters_meep.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/write_sparameters_meep_batch.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmeep/write_sparameters_meep_mpi.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/define_polysurfaces.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/get_mesh.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/parse_component.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/parse_gds.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/tests/test_custom_names.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/tests/test_meshing_2D.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/tests/test_meshing_3D.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/uz_xsection_mesh.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/xy_xsection_mesh.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/gmsh/xyz_mesh.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/dataprep/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/dataprep/regions.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/check_duplicated_cells.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/check_exclusion.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/check_inclusion.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/check_space.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/check_width.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/count_drc.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/drc/samples/drc_errors.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/get_density.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/get_netlist.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/netlist_graph.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/netlist_spice_reader.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/plot_nets.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_dataprep_regions.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_density.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_drc_exclusion.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_drc_inclusion.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_drc_space.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_drc_width.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_global_density.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_netlist_spice_reader.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/klayout/tests/test_plot_nets.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/README.md +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/interconnect.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/mapping_ubcpdk.yml +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/read.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/settings.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/tests/test_lumerical_read_sparameters.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/tests/test_netlist.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/tests/test_netlist_get_routes.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/write_sparameters_lumerical.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/lumerical/write_sparameters_lumerical_components.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/materials/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/materials/inorganic.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/materials/optical/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/materials/optical/optical_mat.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/materials/optical/refractive_index_info.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/materials/semiconductor/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/materials/semiconductor/semiconductor_mat.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/meow/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/meow/meow_eme.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/meow/test_meow_simulation.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/coupler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/find_coupling_vs_gap.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/find_mode_dispersion.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/find_modes.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/find_modes_cross_section.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/find_neff_ng_dw_dh.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/find_neff_vs_width.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/get_mode_solver_coupler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/get_mode_solver_cross_section.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/get_mode_solver_rib.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/modes/neff_vs_width_nitride.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/modes/neff_vs_width_rib.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/modes/neff_vs_width_strip.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/neff_convergence_test.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/neff_vs_width.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/overlap.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_dw_dh/test_dw_dh.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_dw_dh/test_dw_dh.obtained.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_dw_dh/test_dw_dh_dispersion.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_dw_dh.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_find_modes.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_find_modes_dispersion.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_neff_vs_width/test_neff_vs_width.obtained.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/tests/test_neff_vs_width.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/types.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/modes/waveguide.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/palace/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/palace/driven.json +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/palace/electrostatic.json +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/palace/get_capacitance.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/palace/get_scattering.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/palace/tests/test_palace.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/path_length_analysis/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/path_length_analysis/path_length_analysis.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/path_length_analysis/path_length_analysis_from_gds.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/path_length_analysis/test_pathlength_extraction.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/photonic_circuit_models/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/photonic_circuit_models/coupler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/photonic_circuit_models/fsr.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/photonic_circuit_models/heater.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/photonic_circuit_models/mzi.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/photonic_circuit_models/ring.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/diffusion.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/implant_tables.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/pysrim.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/silicon.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/skew/antimony_si_skew.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/skew/arsenic_si_skew.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/skew/boron_si_skew.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/process/skew/phosphorus_si_skew.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/build_model.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/integrations/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/integrations/femwell_waveguide_model.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/integrations/meep_FDTD_model.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/integrations/meow_eme_model.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/interpolators.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/mlp.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/models.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/parameter.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/plot_model.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/read.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/tests/test_mzi.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.obtained.yml +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/tests/test_mzi_lattice/test_mzi_lattice.yml +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/tests/test_mzi_lattice.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sax/tests/test_parameters.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sentaurus/mask_sde.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sentaurus/mask_sprocess.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sentaurus/sdevice.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sentaurus/sprocess.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/sentaurus/svisual.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/spice/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/spice/spice_to_yaml.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/spice/tests/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/spice/tests/test_interconnect.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/component.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/get_results.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/materials.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/modes.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_component_modeler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_modes/test_sweep_width.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_modes/test_sweep_width.obtained.csv +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_modes_coupler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_modes_waveguide.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_plot_simulation_grating_coupler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/test_write_sparameters.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/tests_sparameters/sim_ref.yaml +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/tests/tests_sparameters/test_write_sparameters_grating_coupler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/types.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/util.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/tidy3d/write_sparameters_grating_coupler.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/vlsir/__init__.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/vlsir/export_netlist.py +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/vlsir/tests/resources/pads_correct.cir +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/vlsir/tests/resources/pads_correct.scs +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/vlsir/tests/resources/pads_correct.sp +0 -0
- {gplugins-1.2.1 → gplugins-1.2.3}/gplugins/vlsir/tests/test_vlsir.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: gplugins
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
4
4
|
Summary: gdsfactory plugins
|
|
5
5
|
Keywords: python
|
|
6
6
|
Author-email: gdsfactory <contact@gdsfactory.com>
|
|
@@ -91,7 +91,7 @@ Provides-Extra: schematic
|
|
|
91
91
|
Provides-Extra: tidy3d
|
|
92
92
|
Provides-Extra: vlsir
|
|
93
93
|
|
|
94
|
-
# gplugins 1.2.
|
|
94
|
+
# gplugins 1.2.3
|
|
95
95
|
|
|
96
96
|
[](https://gdsfactory.github.io/gplugins/)
|
|
97
97
|
[](https://pypi.org/project/gplugins/)
|
|
@@ -101,22 +101,29 @@ Provides-Extra: vlsir
|
|
|
101
101
|
|
|
102
102
|
GDSFactory plugins:
|
|
103
103
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
- `
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
- `
|
|
114
|
-
- `
|
|
115
|
-
- `
|
|
116
|
-
-
|
|
117
|
-
- `
|
|
118
|
-
-
|
|
119
|
-
-
|
|
104
|
+
- Device simulators
|
|
105
|
+
- Meshing
|
|
106
|
+
- FDTD
|
|
107
|
+
- `Ansys Lumerical`
|
|
108
|
+
- tidy3d
|
|
109
|
+
- Luminescent
|
|
110
|
+
- FDTDz
|
|
111
|
+
- MEEP
|
|
112
|
+
- FEM
|
|
113
|
+
- `femwell` Finite Element Method Solver (heaters, modes, TCAD, RF waveguides).
|
|
114
|
+
- `elmer` for electrostatic (capacitive) simulations.
|
|
115
|
+
- `palace` for full-wave driven (S parameter) and electrostatic (capacitive) simulations.
|
|
116
|
+
- EME
|
|
117
|
+
- `meow` Eigen Mode Expansion (EME).
|
|
118
|
+
- Mode Solver
|
|
119
|
+
- Tidy3d
|
|
120
|
+
- Femwell
|
|
121
|
+
- MPB
|
|
122
|
+
- TCAD
|
|
123
|
+
- `devsim` TCAD device simulator.
|
|
124
|
+
- Circuit simulations
|
|
125
|
+
- `sax` S-parameter circuit solver.
|
|
126
|
+
- `vlsir` for parsing GDS-extracted circuit netlists into Cadence Spectre, NgSpice and Xyce Schematic File formats.
|
|
120
127
|
|
|
121
128
|
|
|
122
129
|
## Installation
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# gplugins 1.2.
|
|
1
|
+
# gplugins 1.2.3
|
|
2
2
|
|
|
3
3
|
[](https://gdsfactory.github.io/gplugins/)
|
|
4
4
|
[](https://pypi.org/project/gplugins/)
|
|
@@ -8,22 +8,29 @@
|
|
|
8
8
|
|
|
9
9
|
GDSFactory plugins:
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
- `
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- `
|
|
21
|
-
- `
|
|
22
|
-
- `
|
|
23
|
-
-
|
|
24
|
-
- `
|
|
25
|
-
-
|
|
26
|
-
-
|
|
11
|
+
- Device simulators
|
|
12
|
+
- Meshing
|
|
13
|
+
- FDTD
|
|
14
|
+
- `Ansys Lumerical`
|
|
15
|
+
- tidy3d
|
|
16
|
+
- Luminescent
|
|
17
|
+
- FDTDz
|
|
18
|
+
- MEEP
|
|
19
|
+
- FEM
|
|
20
|
+
- `femwell` Finite Element Method Solver (heaters, modes, TCAD, RF waveguides).
|
|
21
|
+
- `elmer` for electrostatic (capacitive) simulations.
|
|
22
|
+
- `palace` for full-wave driven (S parameter) and electrostatic (capacitive) simulations.
|
|
23
|
+
- EME
|
|
24
|
+
- `meow` Eigen Mode Expansion (EME).
|
|
25
|
+
- Mode Solver
|
|
26
|
+
- Tidy3d
|
|
27
|
+
- Femwell
|
|
28
|
+
- MPB
|
|
29
|
+
- TCAD
|
|
30
|
+
- `devsim` TCAD device simulator.
|
|
31
|
+
- Circuit simulations
|
|
32
|
+
- `sax` S-parameter circuit solver.
|
|
33
|
+
- `vlsir` for parsing GDS-extracted circuit netlists into Cadence Spectre, NgSpice and Xyce Schematic File formats.
|
|
27
34
|
|
|
28
35
|
|
|
29
36
|
## Installation
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
from functools import cached_property
|
|
2
2
|
from hashlib import md5
|
|
3
|
+
from typing import TypeAlias
|
|
3
4
|
|
|
4
5
|
import gdsfactory as gf
|
|
5
6
|
import numpy as np
|
|
6
7
|
from gdsfactory.component import Component
|
|
7
8
|
from gdsfactory.technology import LayerLevel, LayerStack
|
|
9
|
+
from numpy.typing import NDArray
|
|
8
10
|
from pydantic import (
|
|
9
11
|
BaseModel,
|
|
10
12
|
ConfigDict,
|
|
@@ -17,6 +19,23 @@ from gplugins.gmsh.parse_gds import cleanup_component
|
|
|
17
19
|
|
|
18
20
|
from ..types import AnyShapelyPolygon, GFComponent
|
|
19
21
|
|
|
22
|
+
Coordinate: TypeAlias = tuple[float, float]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def move_polar_rad_copy(
|
|
26
|
+
pos: Coordinate, angle: float, length: float
|
|
27
|
+
) -> NDArray[np.float64]:
|
|
28
|
+
"""Returns the points of a position (pos) with angle, shifted by length.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
pos: position.
|
|
32
|
+
angle: in radians.
|
|
33
|
+
length: extension length in um.
|
|
34
|
+
"""
|
|
35
|
+
c = np.cos(angle)
|
|
36
|
+
s = np.sin(angle)
|
|
37
|
+
return pos + length * np.array([c, s])
|
|
38
|
+
|
|
20
39
|
|
|
21
40
|
class LayeredComponentBase(BaseModel):
|
|
22
41
|
model_config = ConfigDict(
|
|
@@ -5,10 +5,8 @@ from __future__ import annotations
|
|
|
5
5
|
import warnings
|
|
6
6
|
|
|
7
7
|
import gdsfactory as gf
|
|
8
|
-
import numpy as np
|
|
9
8
|
from gdsfactory.add_pins import add_pin_rectangle
|
|
10
9
|
from gdsfactory.component import Component
|
|
11
|
-
from gdsfactory.components.bend_circular import bend_circular
|
|
12
10
|
from gdsfactory.pdk import get_layer_stack
|
|
13
11
|
from gdsfactory.technology import LayerLevel
|
|
14
12
|
from gdsfactory.typings import ComponentSpec, Layer
|
|
@@ -16,7 +14,7 @@ from gdsfactory.typings import ComponentSpec, Layer
|
|
|
16
14
|
|
|
17
15
|
@gf.cell
|
|
18
16
|
def add_simulation_markers(
|
|
19
|
-
component: ComponentSpec = bend_circular,
|
|
17
|
+
component: ComponentSpec = gf.c.bend_circular,
|
|
20
18
|
port_margin: float = 3,
|
|
21
19
|
port_source_name: str = "o1",
|
|
22
20
|
layer_source: Layer = (110, 0),
|
|
@@ -107,9 +105,7 @@ def add_simulation_markers(
|
|
|
107
105
|
|
|
108
106
|
# Add source
|
|
109
107
|
port = ref.ports[port_source_name]
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
port = port.move_polar_copy(angle=angle_rad, d=port_source_offset)
|
|
108
|
+
port = port.copy_polar(d=port_source_offset / c.kcl.dbu, angle=port.angle)
|
|
113
109
|
add_pin_rectangle(c, port=port, port_margin=port_margin, layer=layer_source)
|
|
114
110
|
|
|
115
111
|
layer_stack.layers["source"] = LayerLevel(
|
|
@@ -124,7 +120,7 @@ def add_simulation_markers(
|
|
|
124
120
|
if __name__ == "__main__":
|
|
125
121
|
# c = gf.components.coupler_ring()
|
|
126
122
|
c = gf.components.mmi1x2()
|
|
127
|
-
c = add_simulation_markers(c)
|
|
123
|
+
# c = add_simulation_markers(c)
|
|
128
124
|
c.show()
|
|
129
125
|
scene = c.to_3d()
|
|
130
126
|
scene.show()
|
|
@@ -10,10 +10,10 @@ import gdsfactory as gf
|
|
|
10
10
|
import meep as mp
|
|
11
11
|
import numpy as np
|
|
12
12
|
from gdsfactory.component import Component
|
|
13
|
-
from gdsfactory.components.extension import extend_ports, move_polar_rad_copy
|
|
14
13
|
from gdsfactory.pdk import get_layer_stack
|
|
15
14
|
from gdsfactory.technology import LayerStack
|
|
16
15
|
|
|
16
|
+
from gplugins.common.base_models.component import move_polar_rad_copy
|
|
17
17
|
from gplugins.gmeep.get_material import get_material
|
|
18
18
|
from gplugins.gmeep.get_meep_geometry import (
|
|
19
19
|
get_meep_geometry_from_component,
|
|
@@ -108,6 +108,7 @@ def get_simulation(
|
|
|
108
108
|
wavelength_points: wavelength steps.
|
|
109
109
|
dfcen: delta frequency.
|
|
110
110
|
port_source_name: input port name.
|
|
111
|
+
port_source_mode: mode number for source.
|
|
111
112
|
port_margin: margin on each side of the port.
|
|
112
113
|
distance_source_to_monitors: in (um) source goes before.
|
|
113
114
|
port_source_offset: offset between source GDS port and source MEEP port.
|
|
@@ -162,7 +163,9 @@ def get_simulation(
|
|
|
162
163
|
), f"component needs to be a gf.Component, got Type {type(component)}"
|
|
163
164
|
|
|
164
165
|
component_extended = (
|
|
165
|
-
extend_ports(
|
|
166
|
+
gf.c.extend_ports(
|
|
167
|
+
component=component, length=extend_ports_length, centered=True
|
|
168
|
+
)
|
|
166
169
|
if extend_ports_length
|
|
167
170
|
else component
|
|
168
171
|
)
|
|
@@ -138,6 +138,7 @@ def check_width(value: float | int, layer: str, angle_limit: float = 90.0) -> st
|
|
|
138
138
|
|
|
139
139
|
Args:
|
|
140
140
|
value: width in um if float, dbu if int (nm).
|
|
141
|
+
layer: layer name.
|
|
141
142
|
angle_limit: angle limit in degrees.
|
|
142
143
|
"""
|
|
143
144
|
category = "width"
|
|
@@ -153,6 +154,7 @@ def check_space(value: float | int, layer: str, angle_limit: float = 90.0) -> st
|
|
|
153
154
|
|
|
154
155
|
Args:
|
|
155
156
|
value: width in um if float, dbu if int (nm).
|
|
157
|
+
layer: layer name.
|
|
156
158
|
angle_limit: angle limit in degrees.
|
|
157
159
|
"""
|
|
158
160
|
category = "space"
|
|
@@ -198,7 +200,7 @@ def check_area(layer: str, min_area_um2: float | int = 2.0) -> str:
|
|
|
198
200
|
"""Return script for min area checking.
|
|
199
201
|
|
|
200
202
|
Args:
|
|
201
|
-
|
|
203
|
+
layer: layer name.
|
|
202
204
|
min_area_um2: min area in um2. int if dbu, float if um.
|
|
203
205
|
|
|
204
206
|
"""
|
|
@@ -449,6 +451,12 @@ if __name__ == "__main__":
|
|
|
449
451
|
derived_layer_boolean("TRENCH", "SLAB90", "-", "WG"),
|
|
450
452
|
check_width(layer="WG", value=0.2),
|
|
451
453
|
check_space(layer="WG", value=0.2),
|
|
454
|
+
check_width(layer="M1", value=0.2),
|
|
455
|
+
check_space(layer="M1", value=0.2),
|
|
456
|
+
check_width(layer="M2", value=1.0),
|
|
457
|
+
check_space(layer="M2", value=1.0),
|
|
458
|
+
check_width(layer="M3", value=1.0),
|
|
459
|
+
check_space(layer="M3", value=1.0),
|
|
452
460
|
check_separation(layer1="HEATER", layer2="M1", value=1.0),
|
|
453
461
|
check_enclosing(layer1="VIAC", layer2="M1", value=0.2),
|
|
454
462
|
check_area(layer="WG", min_area_um2=0.05),
|
|
@@ -43,14 +43,14 @@ def initialize_sde(
|
|
|
43
43
|
"""Returns a string defining the geometry definition for a Sentaurus sde file based on a component, initial wafer state, and settings.
|
|
44
44
|
|
|
45
45
|
Arguments:
|
|
46
|
-
component
|
|
46
|
+
component: gdsfactory component containing polygons defining the mask
|
|
47
47
|
waferstack: gdsfactory layerstack representing the initial wafer
|
|
48
48
|
layermap: gdsfactory LayerMap object containing all layers
|
|
49
|
-
|
|
50
|
-
xsection_bounds: two in-plane coordinates ((x1,y1), (x2,y2)) defining a line cut for a 2D process cross-section
|
|
49
|
+
xsection_bounds: two in-plane coordinates ((x1,y1), (x2,y2)) defining a line cut for a 2D process cross-section. If None, simulate in 3D.
|
|
51
50
|
u_offset: for the x-axis of the 2D coordinate system, useful to go back to component units if xsection_bounds parallel to x or y
|
|
52
|
-
round_tol
|
|
53
|
-
simplify_tol
|
|
51
|
+
round_tol: for gds cleanup (grid snapping by rounding coordinates)
|
|
52
|
+
simplify_tol: for gds cleanup (shape simplification)
|
|
53
|
+
header_str: initial string to write to the TCL file. Useful for settings
|
|
54
54
|
"""
|
|
55
55
|
output_str = ""
|
|
56
56
|
|
|
@@ -113,25 +113,22 @@ def write_sde(
|
|
|
113
113
|
"""Writes a Sentaurus Device Editor Scheme file for the component + layermap + initial waferstack + process.
|
|
114
114
|
|
|
115
115
|
Arguments:
|
|
116
|
-
component
|
|
117
|
-
waferstack: gdsfactory layerstack representing the initial wafer
|
|
118
|
-
layermap: gdsfactory LayerMap object containing all layers
|
|
119
|
-
process: list of gdsfactory.technology.processes process steps
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
116
|
+
component: gdsfactory component containing polygons defining the mask.
|
|
117
|
+
waferstack: gdsfactory layerstack representing the initial wafer.
|
|
118
|
+
layermap: gdsfactory LayerMap object containing all layers.
|
|
119
|
+
process: list of gdsfactory.technology.processes process steps.
|
|
120
|
+
contact_str: string defining the contacts to be added to the device.
|
|
121
|
+
slice_str: string defining the slices to be added to the device.
|
|
122
|
+
init_tdr: tdr file containing the initial structure, ready for sdevice simulation.
|
|
123
|
+
save_directory: directory where to save output and script. Default ./sprocess.
|
|
123
124
|
execution_directory: directory where sprocess will be run from. Default local ./
|
|
124
125
|
filename: name of the final sprocess command file
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
contact_portnames Tuple(str): list of portnames to convert into device contacts
|
|
128
|
-
round_tol (int): for gds cleanup (grid snapping by rounding coordinates)
|
|
126
|
+
fileout: tdr file containing the final structure, ready for sdevice simulation. Defaults to component name.
|
|
127
|
+
round_tol: for gds cleanup (grid snapping by rounding coordinates).
|
|
129
128
|
simplify_tol (float): for gds cleanup (shape simplification)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
initial_xy_resolution (float): initial resolution in the wafer plane
|
|
134
|
-
global_device_remeshing_str (str): commands to apply before remeshing
|
|
129
|
+
device_remesh (bool): whether to remesh the device after processing.
|
|
130
|
+
remesh_str (str): string defining the remeshing options.
|
|
131
|
+
header_str (str): initial string to write to the TCL file. Useful for settings.
|
|
135
132
|
num_threads (int): for parallelization
|
|
136
133
|
"""
|
|
137
134
|
save_directory = Path("./sde/") if save_directory is None else Path(save_directory)
|