tidy3d 2.10.2__tar.gz → 2.11.0.dev0__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.
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/PKG-INFO +8 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/pyproject.toml +55 -63
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/README.md +2 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/__init__.py +35 -8
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/__main__.py +1 -1
- tidy3d-2.11.0.dev0/tidy3d/compat.py +31 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/README.md +4 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/apodization.py +23 -22
- tidy3d-2.11.0.dev0/tidy3d/components/autograd/__init__.py +42 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/autograd/boxes.py +10 -8
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/autograd/derivative_utils.py +138 -76
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/autograd/field_map.py +13 -12
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/autograd/functions.py +7 -5
- tidy3d-2.11.0.dev0/tidy3d/components/autograd/types.py +132 -0
- tidy3d-2.11.0.dev0/tidy3d/components/autograd/utils.py +84 -0
- tidy3d-2.11.0.dev0/tidy3d/components/base.py +1956 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/base_sim/data/monitor_data.py +2 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/base_sim/data/sim_data.py +36 -31
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/base_sim/monitor.py +14 -11
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/base_sim/simulation.py +121 -62
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/base_sim/source.py +10 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/bc_placement.py +23 -18
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/beam.py +70 -62
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/boundary.py +251 -163
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/data_array.py +141 -93
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/dataset.py +61 -60
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/index.py +5 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/monitor_data.py +486 -264
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/sim_data.py +39 -38
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/unstructured/base.py +188 -122
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/unstructured/tetrahedral.py +53 -29
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/unstructured/triangular.py +38 -27
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/utils.py +12 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/validators.py +22 -15
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/zbf.py +20 -20
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/dispersion_fitter.py +85 -52
- tidy3d-2.11.0.dev0/tidy3d/components/docstrings.py +301 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/data/dataset.py +160 -56
- tidy3d-2.11.0.dev0/tidy3d/components/eme/data/monitor_data.py +162 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/data/sim_data.py +127 -21
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/grid.py +100 -73
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/monitor.py +158 -31
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/simulation.py +280 -142
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/sweep.py +103 -20
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/field_projection.py +53 -49
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/file_util.py +5 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/frequencies.py +17 -16
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/frequency_extrapolation.py +18 -15
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/base.py +691 -218
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/bound_ops.py +4 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/mesh.py +27 -21
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/polyslab.py +94 -97
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/primitives.py +333 -54
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/triangulation.py +9 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/utils.py +72 -33
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/utils_2d.py +80 -9
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/grid/corner_finder.py +17 -13
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/grid/grid.py +123 -41
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/grid/grid_spec.py +317 -227
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/grid/mesher.py +42 -38
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/index.py +22 -20
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/lumped_element.py +121 -127
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/multi_physics.py +9 -9
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/tcad/charge.py +74 -42
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/tcad/heat.py +39 -32
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/medium.py +988 -845
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/base.py +6 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/data/dataset.py +5 -8
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/data/monitor_data.py +38 -28
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/formulas/circuit_parameters.py +5 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/impedance_calculator.py +26 -20
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/mode_spec.py +55 -19
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/monitor.py +4 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/factory.py +21 -19
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/integrals/auto.py +7 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/integrals/base.py +7 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/integrals/current.py +21 -14
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/integrals/voltage.py +10 -8
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/mode_plane_analyzer.py +10 -6
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/specs/base.py +30 -19
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/specs/current.py +24 -15
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/specs/impedance.py +12 -11
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/specs/voltage.py +10 -6
- tidy3d-2.11.0.dev0/tidy3d/components/microwave/time.py +350 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/data/sim_data.py +13 -9
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/derivatives.py +66 -14
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/mode_solver.py +209 -166
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/simulation.py +101 -60
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/solver.py +121 -87
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/transforms.py +21 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode_spec.py +280 -129
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/monitor.py +413 -209
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/nonlinear.py +40 -32
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/parameter_perturbation.py +209 -201
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/run_time_spec.py +3 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/scene.py +160 -112
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/simulation.py +645 -474
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/source/base.py +17 -13
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/source/current.py +43 -14
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/source/field.py +73 -74
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/source/frame.py +2 -2
- tidy3d-2.11.0.dev0/tidy3d/components/source/freq_range.py +230 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/source/time.py +108 -50
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/analysis/ac.py +6 -6
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/analysis/dc.py +10 -10
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/sources/ac.py +12 -11
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/sources/dc.py +20 -17
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/structure.py +109 -68
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/subpixel_spec.py +30 -28
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/analysis/heat_simulation_type.py +7 -7
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/bandgap.py +8 -11
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/bandgap_energy.py +9 -12
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/boundary/charge.py +5 -7
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/boundary/heat.py +24 -19
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/boundary/specification.py +3 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/monitor_data/abstract.py +12 -16
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/monitor_data/charge.py +58 -76
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/monitor_data/heat.py +13 -14
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/monitor_data/mesh.py +5 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/sim_data.py +95 -46
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/doping.py +63 -22
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/effective_DOS.py +17 -17
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/generation_recombination.py +70 -55
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/grid.py +85 -76
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/mesher.py +9 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/mobility.py +17 -22
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/monitors/abstract.py +20 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/monitors/charge.py +22 -7
- tidy3d-2.11.0.dev0/tidy3d/components/tcad/monitors/heat.py +38 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/monitors/mesh.py +9 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/simulation/heat.py +12 -7
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/simulation/heat_charge.py +280 -246
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/source/abstract.py +9 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/source/heat.py +8 -7
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/time.py +18 -10
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/time_modulation.py +40 -41
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/transformation.py +19 -13
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/types/__init__.py +0 -12
- tidy3d-2.11.0.dev0/tidy3d/components/types/base.py +321 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/types/monitor.py +4 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/types/monitor_data.py +2 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/types/third_party.py +6 -2
- tidy3d-2.11.0.dev0/tidy3d/components/types/time.py +29 -0
- tidy3d-2.11.0.dev0/tidy3d/components/types/utils.py +33 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/validators.py +183 -138
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/__init__.py +14 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/axes_utils.py +31 -10
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/descartes.py +14 -10
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/plot_params.py +26 -20
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/plot_sim_3d.py +13 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/styles.py +13 -5
- tidy3d-2.11.0.dev0/tidy3d/components/viz/visualization_spec.py +87 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/README.md +18 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/__init__.py +20 -3
- tidy3d-2.11.0.dev0/tidy3d/config/deprecations.py +97 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/legacy.py +8 -3
- tidy3d-2.11.0.dev0/tidy3d/config/loader.py +992 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/manager.py +32 -66
- tidy3d-2.11.0.dev0/tidy3d/config/migrations.py +272 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/profiles.py +7 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/registry.py +4 -1
- tidy3d-2.11.0.dev0/tidy3d/config/schema_utils.py +30 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/sections.py +39 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/config/serializer.py +6 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/constants.py +1 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/exceptions.py +4 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/log.py +63 -18
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/material_library/material_library.py +26 -32
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/material_library/material_reference.py +8 -6
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/material_library/parametric_materials.py +27 -28
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/material_library/util.py +4 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/packaging.py +28 -22
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/differential_operators.py +6 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/functions.py +27 -8
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/invdes/filters.py +34 -23
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/invdes/misc.py +5 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/invdes/parametrizations.py +37 -18
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/invdes/penalties.py +40 -23
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/invdes/projections.py +6 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/invdes/symmetries.py +4 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/primitives/interpolate.py +18 -7
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/primitives/misc.py +27 -12
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/utilities.py +68 -55
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/design/README.md +2 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/design/design.py +43 -33
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/design/method.py +161 -111
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/design/parameter.py +40 -31
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/design/result.py +42 -39
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/dispersion/fit.py +57 -46
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/dispersion/fit_fast.py +8 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/dispersion/web.py +31 -29
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/__init__.py +23 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/base.py +11 -13
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/functions.py +11 -8
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/metrics.py +15 -12
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/operators.py +15 -13
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/types.py +14 -18
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/variables.py +3 -4
- tidy3d-2.11.0.dev0/tidy3d/plugins/invdes/__init__.py +50 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/base.py +3 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/design.py +56 -46
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/initialization.py +39 -33
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/optimizer.py +28 -30
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/penalty.py +12 -12
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/region.py +37 -35
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/result.py +21 -20
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/transformation.py +16 -12
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/utils.py +1 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/validators.py +18 -15
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/drc/drc.py +33 -22
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/drc/results.py +14 -11
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/util.py +4 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/array_factor.py +86 -56
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/lobe_measurer.py +27 -22
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/polyslab/polyslab.py +5 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/pytorch/wrapper.py +12 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/resonance/resonance.py +28 -14
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/__init__.py +3 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/analysis/antenna.py +8 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/analysis/modal.py +16 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/analysis/terminal.py +24 -16
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/component_modelers/base.py +50 -40
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/component_modelers/modal.py +82 -80
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/component_modelers/terminal.py +90 -46
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/data/base.py +15 -13
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/data/modal.py +7 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/data/terminal.py +68 -27
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/base.py +5 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/base_lumped.py +13 -10
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/base_terminal.py +12 -8
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/coaxial_lumped.py +41 -36
- tidy3d-2.11.0.dev0/tidy3d/plugins/smatrix/ports/modal.py +272 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/rectangular_lumped.py +44 -29
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/wave.py +56 -45
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/run.py +44 -6
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/types.py +9 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/utils.py +37 -30
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/waveguide/rectangular_dielectric.py +121 -116
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/rf.py +12 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/updater.py +49 -40
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/version.py +1 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/__init__.py +1 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/asynchronous.py +11 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/autograd.py +406 -62
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/backward.py +200 -64
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/engine.py +1 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/forward.py +5 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/io_utils.py +23 -17
- tidy3d-2.11.0.dev0/tidy3d/web/api/autograd/types.py +47 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/utils.py +7 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/connect_util.py +4 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/container.py +260 -135
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/material_fitter.py +16 -5
- tidy3d-2.11.0.dev0/tidy3d/web/api/material_library.py +64 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/mode.py +24 -18
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/run.py +19 -16
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/tidy3d_stub.py +7 -5
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/webapi.py +107 -45
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cache.py +88 -26
- tidy3d-2.11.0.dev0/tidy3d/web/cli/app.py +45 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/cache.py +7 -2
- tidy3d-2.11.0.dev0/tidy3d/web/cli/config.py +516 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/develop/documentation.py +6 -3
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/develop/install.py +10 -10
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/account.py +2 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/core_config.py +4 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/exceptions.py +4 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/file_util.py +1 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/http_util.py +7 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/s3utils.py +8 -4
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/stub.py +4 -1
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/task_core.py +60 -48
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/task_info.py +66 -70
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/types.py +2 -2
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/tests/conftest.py +4 -1
- tidy3d-2.10.2/tidy3d/compat.py +0 -26
- tidy3d-2.10.2/tidy3d/components/autograd/__init__.py +0 -31
- tidy3d-2.10.2/tidy3d/components/autograd/types.py +0 -55
- tidy3d-2.10.2/tidy3d/components/autograd/utils.py +0 -55
- tidy3d-2.10.2/tidy3d/components/base.py +0 -1529
- tidy3d-2.10.2/tidy3d/components/eme/data/monitor_data.py +0 -60
- tidy3d-2.10.2/tidy3d/components/tcad/monitors/heat.py +0 -21
- tidy3d-2.10.2/tidy3d/components/types/base.py +0 -264
- tidy3d-2.10.2/tidy3d/components/types/utils.py +0 -14
- tidy3d-2.10.2/tidy3d/components/viz/visualization_spec.py +0 -62
- tidy3d-2.10.2/tidy3d/config/loader.py +0 -438
- tidy3d-2.10.2/tidy3d/plugins/invdes/__init__.py +0 -29
- tidy3d-2.10.2/tidy3d/plugins/smatrix/ports/modal.py +0 -58
- tidy3d-2.10.2/tidy3d/web/api/material_libray.py +0 -44
- tidy3d-2.10.2/tidy3d/web/cli/app.py +0 -409
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/LICENSE +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/_runtime.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/base_sim/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/base_sim/data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/data/unstructured/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/eme/data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/geometry/float_utils.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/grid/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/solver_types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/tcad/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/material/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/data/data_array.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/formulas/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/integrals/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/specs/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/microwave/path_integrals/viz.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/LICENSE +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/mode/data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/source/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/source/utils.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/analysis/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/sources/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/sources/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/spice/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/analysis/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/boundary/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/boundary/abstract.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/monitor_data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/data/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/monitors/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/simulation/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/source/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/source/coupled.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/tcad/viz.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/types/mode_spec.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/types/simulation.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/types/workflow.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/flex_color_palettes.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/components/viz/flex_style.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/material_library/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/constants.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/invdes/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/primitives/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/autograd/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/design/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/dispersion/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/dispersion/fit_web.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/expressions/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/invdes/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/drc/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/drc/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/klayout/drc/defaults.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/auto_path_integrals.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/custom_path_integrals.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/impedance_calculator.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/models/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/models/coupled_microstrip.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/models/microstrip.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/path_integrals.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/rf_material_library.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/rf_material_reference.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/microwave/viz.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/mode/LICENSE +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/mode/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/mode/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/mode/mode_solver.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/mode/web.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/polyslab/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/pytorch/README.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/pytorch/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/resonance/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/analysis/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/component_modelers/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/component_modelers/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/data/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/data/data_array.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/data/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/smatrix/ports/types.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/plugins/waveguide/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/style.mplstyle +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/autograd/constants.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/cacert.pem +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/api/states.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/constants.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/develop/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/develop/index.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/develop/packaging.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/develop/tests.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/develop/utils.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/cli/readme.md +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/common.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/__init__.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/cache.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/constants.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/core/environment.py +0 -0
- {tidy3d-2.10.2 → tidy3d-2.11.0.dev0}/tidy3d/web/environment.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tidy3d
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.11.0.dev0
|
|
4
4
|
Summary: A fast FDTD solver
|
|
5
5
|
License: LGPLv2+
|
|
6
6
|
License-File: LICENSE
|
|
@@ -37,6 +37,7 @@ Requires-Dist: coverage (>=7.13.1,<8.0.0) ; extra == "dev"
|
|
|
37
37
|
Requires-Dist: dask (>=2025.12.0,<2026.0.0)
|
|
38
38
|
Requires-Dist: diff-cover (>=10.1.0,<11.0.0) ; extra == "dev"
|
|
39
39
|
Requires-Dist: dill (>=0.4.0,<0.5.0) ; extra == "dev"
|
|
40
|
+
Requires-Dist: filelock (>=3.20.1,<4.0.0)
|
|
40
41
|
Requires-Dist: gdstk (>=0.9.49,<0.10.0) ; extra == "dev" or extra == "docs" or extra == "gdstk"
|
|
41
42
|
Requires-Dist: grcwa (>=0.1.2,<0.2.0) ; extra == "dev" or extra == "docs"
|
|
42
43
|
Requires-Dist: h5netcdf (==1.0.2)
|
|
@@ -46,6 +47,7 @@ Requires-Dist: ipython (>=8.38.0,<9.0.0) ; extra == "dev" or extra == "dev" or e
|
|
|
46
47
|
Requires-Dist: jinja2 (>=3.1.2,<4.0.0) ; extra == "dev" or extra == "docs"
|
|
47
48
|
Requires-Dist: joblib (>=1.5.3,<2.0.0)
|
|
48
49
|
Requires-Dist: jupyter (>=1.1.1,<2.0.0) ; extra == "dev" or extra == "docs"
|
|
50
|
+
Requires-Dist: libcst (>=1.5.0,<2.0.0) ; extra == "dev"
|
|
49
51
|
Requires-Dist: matplotlib (>=3.10.0,<4.0.0)
|
|
50
52
|
Requires-Dist: memory_profiler (>=0.61.0,<0.62.0) ; extra == "dev"
|
|
51
53
|
Requires-Dist: mypy (==1.13.0) ; extra == "dev"
|
|
@@ -60,7 +62,8 @@ Requires-Dist: optax (>=0.2.2,<0.3.0) ; extra == "dev" or extra == "docs"
|
|
|
60
62
|
Requires-Dist: pandas (>=2.2,<3.0)
|
|
61
63
|
Requires-Dist: pre-commit (>=4,<5) ; extra == "dev" or extra == "tests"
|
|
62
64
|
Requires-Dist: psutil (>=7.2.1,<8.0.0) ; extra == "dev" or extra == "tests"
|
|
63
|
-
Requires-Dist: pydantic (>=2.
|
|
65
|
+
Requires-Dist: pydantic (>=2.9,<3)
|
|
66
|
+
Requires-Dist: pydantic-settings (>=2.10.0,<3.0.0)
|
|
64
67
|
Requires-Dist: pydata-sphinx-theme (>=0.13.3,<0.16.0) ; extra == "dev" or extra == "docs"
|
|
65
68
|
Requires-Dist: pygad (==3.3.1) ; extra == "dev" or extra == "design"
|
|
66
69
|
Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
|
|
@@ -70,6 +73,7 @@ Requires-Dist: pyswarms (>=1.3.0,<2.0.0) ; extra == "dev" or extra == "design"
|
|
|
70
73
|
Requires-Dist: pytest (>=8.1,<10.0.0) ; extra == "dev" or extra == "tests"
|
|
71
74
|
Requires-Dist: pytest-cov (>=6.0.0,<7.0.0) ; extra == "dev" or extra == "tests"
|
|
72
75
|
Requires-Dist: pytest-env (>=1.1.5,<2.0.0) ; extra == "dev" or extra == "tests"
|
|
76
|
+
Requires-Dist: pytest-testmon (>=2.1.3,<3.0.0) ; extra == "dev" or extra == "tests"
|
|
73
77
|
Requires-Dist: pytest-timeout (>=2.4.0,<3.0.0) ; extra == "dev" or extra == "tests"
|
|
74
78
|
Requires-Dist: pytest-xdist (>=3.6.1,<4.0.0) ; extra == "dev" or extra == "tests"
|
|
75
79
|
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
@@ -91,12 +95,13 @@ Requires-Dist: sphinx-notfound-page (>=1.1.0,<2.0.0) ; extra == "dev" or extra =
|
|
|
91
95
|
Requires-Dist: sphinx-sitemap (>=2.5.1,<3.0.0) ; extra == "dev" or extra == "docs"
|
|
92
96
|
Requires-Dist: sphinx-tabs (>=3.4.7,<4.0.0) ; extra == "dev" or extra == "docs"
|
|
93
97
|
Requires-Dist: sphinxemoji (>=0.3.2,<0.4.0) ; extra == "dev" or extra == "docs"
|
|
94
|
-
Requires-Dist: tidy3d-extras (==2.
|
|
98
|
+
Requires-Dist: tidy3d-extras (==2.11.0.dev0) ; extra == "extras"
|
|
95
99
|
Requires-Dist: tmm (>=0.2.0,<0.3.0) ; extra == "dev" or extra == "docs"
|
|
96
100
|
Requires-Dist: toml (>=0.10.2,<0.11.0)
|
|
97
101
|
Requires-Dist: tomlkit (>=0.13.2,<0.14.0)
|
|
98
102
|
Requires-Dist: torch (>=2.2.0,<3.0.0) ; (sys_platform != "darwin") and (extra == "dev" or extra == "pytorch")
|
|
99
103
|
Requires-Dist: torch (>=2.2.0,<3.0.0) ; (sys_platform == "darwin") and (extra == "dev" or extra == "pytorch")
|
|
104
|
+
Requires-Dist: towncrier (>=25.8.0,<26.0.0) ; extra == "dev"
|
|
100
105
|
Requires-Dist: tox (>=4.33.0,<5.0.0) ; extra == "dev"
|
|
101
106
|
Requires-Dist: trimesh (>=4.6,<5.0.0) ; extra == "dev" or extra == "tests" or extra == "trimesh" or extra == "heatcharge"
|
|
102
107
|
Requires-Dist: typing-extensions (>=4.15.0,<5.0.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "tidy3d"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.11.0.dev0"
|
|
4
4
|
description = "A fast FDTD solver"
|
|
5
5
|
authors = ["Tyler Hughes <tyler@flexcompute.com>"]
|
|
6
6
|
license = "LGPLv2+"
|
|
@@ -33,7 +33,8 @@ numpy = ">=2.2.6,<2.5.0"
|
|
|
33
33
|
matplotlib = "^3.10.0"
|
|
34
34
|
shapely = "^2.0"
|
|
35
35
|
pandas = "^2.2"
|
|
36
|
-
pydantic = "
|
|
36
|
+
pydantic = ">=2.9,<3"
|
|
37
|
+
pydantic-settings = "^2.10.0"
|
|
37
38
|
PyYAML = "^6.0.3"
|
|
38
39
|
dask = "^2025.12.0"
|
|
39
40
|
toml = "^0.10.2"
|
|
@@ -48,6 +49,7 @@ click = "^8.1.0"
|
|
|
48
49
|
responses = "^0.25.8"
|
|
49
50
|
joblib = "^1.5.3"
|
|
50
51
|
typing-extensions = "^4.15.0"
|
|
52
|
+
filelock = "^3.20.1"
|
|
51
53
|
### END NOT CORE
|
|
52
54
|
|
|
53
55
|
### Optional dependencies ###
|
|
@@ -65,10 +67,13 @@ pytest-timeout = { version = "^2.4.0", optional = true }
|
|
|
65
67
|
pytest-xdist = "^3.6.1"
|
|
66
68
|
pytest-cov = "^6.0.0"
|
|
67
69
|
pytest-env = "^1.1.5"
|
|
70
|
+
pytest-testmon = { version = "^2.1.3", optional = true }
|
|
68
71
|
tox = { version = "^4.33.0", optional = true }
|
|
72
|
+
towncrier = { version = "^25.8.0", optional = true }
|
|
69
73
|
diff-cover = { version = "^10.1.0", optional = true }
|
|
70
74
|
zizmor = { version = "^1.20.0", optional = true }
|
|
71
75
|
mypy = { version = "1.13.0", optional = true }
|
|
76
|
+
libcst = { version = "^1.5.0", optional = true }
|
|
72
77
|
|
|
73
78
|
# gdstk
|
|
74
79
|
gdstk = { version = ">=0.9.49,<0.10.0", optional = true }
|
|
@@ -119,7 +124,7 @@ vtk = { version = ">=9.2.6,<10.0.0", optional = true }
|
|
|
119
124
|
sphinxemoji = { version = "^0.3.2", optional = true }
|
|
120
125
|
cma = { version = "^4.4.1", optional = true }
|
|
121
126
|
openpyxl = { version = "^3.1.5", optional = true }
|
|
122
|
-
tidy3d-extras = { version = "2.
|
|
127
|
+
tidy3d-extras = { version = "2.11.0.dev0", optional = true }
|
|
123
128
|
|
|
124
129
|
[tool.poetry.extras]
|
|
125
130
|
dev = [
|
|
@@ -153,6 +158,7 @@ dev = [
|
|
|
153
158
|
'pytest-xdist',
|
|
154
159
|
'pytest-env',
|
|
155
160
|
'pytest-cov',
|
|
161
|
+
'pytest-testmon',
|
|
156
162
|
'rtree',
|
|
157
163
|
'ruff',
|
|
158
164
|
'sax',
|
|
@@ -168,6 +174,7 @@ dev = [
|
|
|
168
174
|
'sphinxemoji',
|
|
169
175
|
'tmm',
|
|
170
176
|
'tox',
|
|
177
|
+
'towncrier',
|
|
171
178
|
'trimesh',
|
|
172
179
|
'scikit-rf',
|
|
173
180
|
'vtk',
|
|
@@ -175,6 +182,7 @@ dev = [
|
|
|
175
182
|
'diff-cover',
|
|
176
183
|
'openpyxl',
|
|
177
184
|
'zizmor',
|
|
185
|
+
'libcst',
|
|
178
186
|
]
|
|
179
187
|
tests = [
|
|
180
188
|
'psutil',
|
|
@@ -185,6 +193,7 @@ tests = [
|
|
|
185
193
|
'pytest-xdist',
|
|
186
194
|
'pytest-env',
|
|
187
195
|
'pytest-cov',
|
|
196
|
+
'pytest-testmon',
|
|
188
197
|
'trimesh'
|
|
189
198
|
]
|
|
190
199
|
docs = [
|
|
@@ -246,6 +255,43 @@ name = "codeartifact"
|
|
|
246
255
|
url = "https://flexcompute-625554095313.d.codeartifact.us-east-1.amazonaws.com/pypi/pypi-releases/simple/"
|
|
247
256
|
priority = "supplemental"
|
|
248
257
|
|
|
258
|
+
[tool.towncrier]
|
|
259
|
+
directory = "changelog.d"
|
|
260
|
+
filename = "CHANGELOG.md"
|
|
261
|
+
start_string = "<!-- towncrier release notes start -->\n"
|
|
262
|
+
template = "changelog.d/template.md"
|
|
263
|
+
title_format = "## [{version}] - {project_date}"
|
|
264
|
+
|
|
265
|
+
[[tool.towncrier.type]]
|
|
266
|
+
directory = "added"
|
|
267
|
+
name = "Added"
|
|
268
|
+
showcontent = true
|
|
269
|
+
|
|
270
|
+
[[tool.towncrier.type]]
|
|
271
|
+
directory = "changed"
|
|
272
|
+
name = "Changed"
|
|
273
|
+
showcontent = true
|
|
274
|
+
|
|
275
|
+
[[tool.towncrier.type]]
|
|
276
|
+
directory = "fixed"
|
|
277
|
+
name = "Fixed"
|
|
278
|
+
showcontent = true
|
|
279
|
+
|
|
280
|
+
[[tool.towncrier.type]]
|
|
281
|
+
directory = "removed"
|
|
282
|
+
name = "Removed"
|
|
283
|
+
showcontent = true
|
|
284
|
+
|
|
285
|
+
[[tool.towncrier.type]]
|
|
286
|
+
directory = "breaking"
|
|
287
|
+
name = "Breaking Changes"
|
|
288
|
+
showcontent = true
|
|
289
|
+
|
|
290
|
+
[[tool.towncrier.type]]
|
|
291
|
+
directory = "planned_deprecation"
|
|
292
|
+
name = "Planned Deprecation"
|
|
293
|
+
showcontent = true
|
|
294
|
+
|
|
249
295
|
[build-system]
|
|
250
296
|
requires = ["poetry-core>=1.0.0"]
|
|
251
297
|
build-backend = "poetry.core.masonry.api"
|
|
@@ -309,9 +355,13 @@ banned-module-level-imports = ["scipy", "matplotlib"]
|
|
|
309
355
|
|
|
310
356
|
[tool.pytest.ini_options]
|
|
311
357
|
# TODO: remove --assert=plain when https://github.com/scipy/scipy/issues/22236 is resolved
|
|
312
|
-
addopts = "
|
|
358
|
+
addopts = """
|
|
359
|
+
--cov=tidy3d --doctest-modules -n auto --dist worksteal --assert=plain -m 'not numerical and not perf and not generate_profile and not performance_profile'
|
|
360
|
+
"""
|
|
313
361
|
markers = [
|
|
314
362
|
"numerical: marks numerical tests for adjoint gradients that require running simulations (deselect with '-m \"not numerical\"')",
|
|
363
|
+
"generate_profile: regenerate fixture data required by the performance tests (select with '-m \"generate_profile\"')",
|
|
364
|
+
"performance_profile: enable CPU and memory profiling based on data generated with generate_profile (select with '-m \"performance_profile\"')",
|
|
315
365
|
"perf: marks tests which test the runtime of operations (deselect with '-m \"not perf\"')",
|
|
316
366
|
"slow: marks tests as slow (deselect with -m 'not slow')",
|
|
317
367
|
]
|
|
@@ -334,82 +384,24 @@ python_files = "*.py"
|
|
|
334
384
|
[tool.mypy]
|
|
335
385
|
python_version = "3.10"
|
|
336
386
|
files = [
|
|
337
|
-
"tidy3d
|
|
338
|
-
"tidy3d/config",
|
|
339
|
-
"tidy3d/material_library",
|
|
340
|
-
"tidy3d/components/geometry"
|
|
387
|
+
"tidy3d",
|
|
341
388
|
]
|
|
342
389
|
ignore_missing_imports = true
|
|
343
390
|
follow_imports = "skip"
|
|
344
391
|
disallow_untyped_defs = true
|
|
345
392
|
disable_error_code = [
|
|
346
|
-
"abstract",
|
|
347
|
-
"annotation-unchecked",
|
|
348
393
|
"arg-type",
|
|
349
|
-
"assert-type",
|
|
350
394
|
"assignment",
|
|
351
395
|
"attr-defined",
|
|
352
|
-
"await-not-async",
|
|
353
396
|
"call-arg",
|
|
354
397
|
"call-overload",
|
|
355
|
-
"comparison-overlap",
|
|
356
|
-
"dict-item",
|
|
357
|
-
"empty-body",
|
|
358
|
-
"exit-return",
|
|
359
|
-
"explicit-override",
|
|
360
|
-
"func-returns-value",
|
|
361
|
-
"has-type",
|
|
362
|
-
"ignore-without-code",
|
|
363
|
-
"import",
|
|
364
|
-
"import-not-found",
|
|
365
398
|
"import-untyped",
|
|
366
399
|
"index",
|
|
367
|
-
"list-item",
|
|
368
|
-
"literal-required",
|
|
369
|
-
"method-assign",
|
|
370
400
|
"misc",
|
|
371
|
-
"mutable-override",
|
|
372
|
-
"name-defined",
|
|
373
|
-
"name-match",
|
|
374
|
-
"narrowed-type-not-subtype",
|
|
375
|
-
"no-any-return",
|
|
376
|
-
"no-any-unimported",
|
|
377
|
-
"no-overload-impl",
|
|
378
|
-
"no-redef",
|
|
379
|
-
"no-untyped-call",
|
|
380
401
|
"operator",
|
|
381
|
-
"overload-cannot-match",
|
|
382
|
-
"overload-overlap",
|
|
383
402
|
"override",
|
|
384
|
-
"possibly-undefined",
|
|
385
|
-
"prop-decorator",
|
|
386
|
-
"redundant-cast",
|
|
387
|
-
"redundant-expr",
|
|
388
|
-
"redundant-self",
|
|
389
|
-
"return",
|
|
390
403
|
"return-value",
|
|
391
|
-
"safe-super",
|
|
392
|
-
"str-bytes-safe",
|
|
393
|
-
"str-format",
|
|
394
|
-
"syntax",
|
|
395
|
-
"top-level-await",
|
|
396
|
-
"truthy-bool",
|
|
397
|
-
"truthy-function",
|
|
398
|
-
"truthy-iterable",
|
|
399
|
-
"type-abstract",
|
|
400
|
-
"type-arg",
|
|
401
|
-
"type-var",
|
|
402
|
-
"typeddict-item",
|
|
403
|
-
"typeddict-readonly-mutated",
|
|
404
|
-
"typeddict-unknown-key",
|
|
405
|
-
"unimported-reveal",
|
|
406
404
|
"union-attr",
|
|
407
|
-
"unreachable",
|
|
408
|
-
"unused-awaitable",
|
|
409
|
-
"unused-coroutine",
|
|
410
|
-
"unused-ignore",
|
|
411
|
-
"used-before-def",
|
|
412
|
-
"valid-newtype",
|
|
413
405
|
"valid-type",
|
|
414
406
|
"var-annotated",
|
|
415
407
|
]
|
|
@@ -26,11 +26,11 @@ This makes things easy to reason about and keeps the client code simple.
|
|
|
26
26
|
|
|
27
27
|
#### Pydantic
|
|
28
28
|
|
|
29
|
-
We leverage the [`pydantic`](https://
|
|
29
|
+
We leverage the [`pydantic`](https://docs.pydantic.dev/latest/) package to define these components, which has the following benefits:
|
|
30
30
|
- Less boilerplate code, including pre-processing, writing `__init__` and other methods, the code is easier to read and edit.
|
|
31
31
|
- `pydantic` provides methods for checking types validating arguments so we can catch incorrect .json files before trying to run them.
|
|
32
32
|
- It is very simple to export json files and schema definitions, which makes life easy when we change anything in the code.
|
|
33
|
-
- Many more advantages as described [here](https://
|
|
33
|
+
- Many more advantages as described [here](https://docs.pydantic.dev/latest/why/).
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
### Plugins
|
|
@@ -196,6 +196,8 @@ from .components.data.data_array import (
|
|
|
196
196
|
FieldProjectionKSpaceDataArray,
|
|
197
197
|
FluxDataArray,
|
|
198
198
|
FluxTimeDataArray,
|
|
199
|
+
FreqDataArray,
|
|
200
|
+
FreqModeDataArray,
|
|
199
201
|
GroupIndexDataArray,
|
|
200
202
|
HeatDataArray,
|
|
201
203
|
IndexedDataArray,
|
|
@@ -226,6 +228,7 @@ from .components.data.monitor_data import (
|
|
|
226
228
|
DiffractionData,
|
|
227
229
|
DirectivityData,
|
|
228
230
|
FieldData,
|
|
231
|
+
FieldOverlapData,
|
|
229
232
|
FieldProjectionAngleData,
|
|
230
233
|
FieldProjectionCartesianData,
|
|
231
234
|
FieldProjectionKSpaceData,
|
|
@@ -277,7 +280,14 @@ from .components.field_projection import FieldProjector
|
|
|
277
280
|
from .components.frequencies import FreqRange, FrequencyUtils, frequencies, wavelengths
|
|
278
281
|
|
|
279
282
|
# geometry
|
|
280
|
-
from .components.geometry.base import
|
|
283
|
+
from .components.geometry.base import (
|
|
284
|
+
Box,
|
|
285
|
+
ClipOperation,
|
|
286
|
+
Geometry,
|
|
287
|
+
GeometryArray,
|
|
288
|
+
GeometryGroup,
|
|
289
|
+
Transformed,
|
|
290
|
+
)
|
|
281
291
|
from .components.geometry.mesh import TriangleMesh
|
|
282
292
|
from .components.geometry.polyslab import PolySlab
|
|
283
293
|
from .components.geometry.primitives import Cylinder, Sphere
|
|
@@ -338,6 +348,14 @@ from .components.medium import (
|
|
|
338
348
|
SurfaceImpedanceFitterParam,
|
|
339
349
|
medium_from_nk,
|
|
340
350
|
)
|
|
351
|
+
|
|
352
|
+
# sources
|
|
353
|
+
from .components.microwave.time import (
|
|
354
|
+
BasebandCustomSourceTime,
|
|
355
|
+
BasebandGaussianPulse,
|
|
356
|
+
BasebandRectangularPulse,
|
|
357
|
+
BasebandStep,
|
|
358
|
+
)
|
|
341
359
|
from .components.mode.data.sim_data import ModeSimulationData
|
|
342
360
|
|
|
343
361
|
# Mode
|
|
@@ -355,6 +373,7 @@ from .components.mode_spec import (
|
|
|
355
373
|
|
|
356
374
|
# monitors
|
|
357
375
|
from .components.monitor import (
|
|
376
|
+
AstigmaticGaussianOverlapMonitor,
|
|
358
377
|
AuxFieldTimeMonitor,
|
|
359
378
|
DiffractionMonitor,
|
|
360
379
|
DirectivityMonitor,
|
|
@@ -366,6 +385,7 @@ from .components.monitor import (
|
|
|
366
385
|
FieldTimeMonitor,
|
|
367
386
|
FluxMonitor,
|
|
368
387
|
FluxTimeMonitor,
|
|
388
|
+
GaussianOverlapMonitor,
|
|
369
389
|
MediumMonitor,
|
|
370
390
|
ModeMonitor,
|
|
371
391
|
ModeSolverMonitor,
|
|
@@ -395,7 +415,6 @@ from .components.parameter_perturbation import (
|
|
|
395
415
|
# run time spec
|
|
396
416
|
from .components.run_time_spec import RunTimeSpec
|
|
397
417
|
|
|
398
|
-
# scene
|
|
399
418
|
# scene
|
|
400
419
|
from .components.scene import Scene
|
|
401
420
|
|
|
@@ -420,8 +439,6 @@ from .components.source.field import (
|
|
|
420
439
|
from .components.source.frame import (
|
|
421
440
|
PECFrame,
|
|
422
441
|
)
|
|
423
|
-
|
|
424
|
-
# sources
|
|
425
442
|
from .components.source.time import (
|
|
426
443
|
BroadbandPulse,
|
|
427
444
|
ContinuousWave,
|
|
@@ -484,9 +501,10 @@ def set_logging_level(level: str) -> None:
|
|
|
484
501
|
|
|
485
502
|
log.info(f"Using client version: {__version__}")
|
|
486
503
|
|
|
487
|
-
Transformed.
|
|
488
|
-
ClipOperation.
|
|
489
|
-
GeometryGroup.
|
|
504
|
+
Transformed.model_rebuild()
|
|
505
|
+
ClipOperation.model_rebuild()
|
|
506
|
+
GeometryGroup.model_rebuild()
|
|
507
|
+
GeometryArray.model_rebuild()
|
|
490
508
|
|
|
491
509
|
# Backwards compatibility: Remove 2.11 renamed integral classes
|
|
492
510
|
VoltageIntegralAxisAligned = AxisAlignedVoltageIntegral
|
|
@@ -518,6 +536,7 @@ __all__ = [
|
|
|
518
536
|
"ApodizationSpec",
|
|
519
537
|
"AstigmaticGaussianBeam",
|
|
520
538
|
"AstigmaticGaussianBeamProfile",
|
|
539
|
+
"AstigmaticGaussianOverlapMonitor",
|
|
521
540
|
"AugerRecombination",
|
|
522
541
|
"AutoGrid",
|
|
523
542
|
"AutoImpedanceSpec",
|
|
@@ -527,6 +546,10 @@ __all__ = [
|
|
|
527
546
|
"AxisAlignedCurrentIntegralSpec",
|
|
528
547
|
"AxisAlignedVoltageIntegral",
|
|
529
548
|
"AxisAlignedVoltageIntegralSpec",
|
|
549
|
+
"BasebandCustomSourceTime",
|
|
550
|
+
"BasebandGaussianPulse",
|
|
551
|
+
"BasebandRectangularPulse",
|
|
552
|
+
"BasebandStep",
|
|
530
553
|
"BlochBoundary",
|
|
531
554
|
"Boundary",
|
|
532
555
|
"BoundaryEdge",
|
|
@@ -630,12 +653,12 @@ __all__ = [
|
|
|
630
653
|
"EMEScalarModeFieldDataArray",
|
|
631
654
|
"EMESimulation",
|
|
632
655
|
"EMESimulationData",
|
|
633
|
-
"EMESweepSpec",
|
|
634
656
|
"EMEUniformGrid",
|
|
635
657
|
"FieldData",
|
|
636
658
|
"FieldDataset",
|
|
637
659
|
"FieldGrid",
|
|
638
660
|
"FieldMonitor",
|
|
661
|
+
"FieldOverlapData",
|
|
639
662
|
"FieldProjectionAngleData",
|
|
640
663
|
"FieldProjectionAngleDataArray",
|
|
641
664
|
"FieldProjectionAngleMonitor",
|
|
@@ -661,14 +684,18 @@ __all__ = [
|
|
|
661
684
|
"FluxTimeDataArray",
|
|
662
685
|
"FluxTimeMonitor",
|
|
663
686
|
"FossumCarrierLifetime",
|
|
687
|
+
"FreqDataArray",
|
|
688
|
+
"FreqModeDataArray",
|
|
664
689
|
"FreqRange",
|
|
665
690
|
"FrequencyUtils",
|
|
666
691
|
"FullyAnisotropicMedium",
|
|
667
692
|
"GaussianBeam",
|
|
668
693
|
"GaussianBeamProfile",
|
|
669
694
|
"GaussianDoping",
|
|
695
|
+
"GaussianOverlapMonitor",
|
|
670
696
|
"GaussianPulse",
|
|
671
697
|
"Geometry",
|
|
698
|
+
"GeometryArray",
|
|
672
699
|
"GeometryGroup",
|
|
673
700
|
"Graphene",
|
|
674
701
|
"Grid",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""Compatibility layer for handling differences between package versions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import importlib
|
|
6
|
+
from functools import cache
|
|
7
|
+
|
|
8
|
+
from packaging.version import parse
|
|
9
|
+
|
|
10
|
+
try:
|
|
11
|
+
from xarray.structure import alignment
|
|
12
|
+
except ImportError:
|
|
13
|
+
from xarray.core import alignment
|
|
14
|
+
|
|
15
|
+
try:
|
|
16
|
+
from numpy import trapezoid as np_trapezoid
|
|
17
|
+
except ImportError: # NumPy < 2.0
|
|
18
|
+
from numpy import trapz as np_trapezoid
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
from typing import Self, TypeAlias # Python >= 3.11
|
|
22
|
+
except ImportError: # Python <3.11
|
|
23
|
+
from typing_extensions import Self, TypeAlias
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@cache
|
|
27
|
+
def _package_is_older_than(package: str, version: str) -> bool:
|
|
28
|
+
return parse(importlib.metadata.version(package)) < parse(version)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
__all__ = ["Self", "TypeAlias", "_package_is_older_than", "alignment", "np_trapezoid"]
|
|
@@ -7,7 +7,7 @@ This file explains the various `tidy3d` components that make up the core of the
|
|
|
7
7
|
### Base
|
|
8
8
|
|
|
9
9
|
All `tidy3d` components are subclasses of the `Tidy3dBaseModel` defined in `base.py`.
|
|
10
|
-
This `Tidy3dBaseModel` itself is a subclass of [`pydantic.BaseModel`](https://
|
|
10
|
+
This `Tidy3dBaseModel` itself is a subclass of [`pydantic.BaseModel`](https://docs.pydantic.dev/latest/concepts/models/) which makes them `pydantic` models.
|
|
11
11
|
In `Tidy3dBaseModel`, we also specify some configuration options, such as whether we validate fields that change after initialization, among others.
|
|
12
12
|
|
|
13
13
|
### Types
|
|
@@ -21,7 +21,7 @@ Coordinate = Tuple[float, float, float]
|
|
|
21
21
|
```
|
|
22
22
|
defines a coordinate in 3D and
|
|
23
23
|
```python
|
|
24
|
-
Indices = Tuple[pydantic.
|
|
24
|
+
Indices = Tuple[pydantic.NonNegativeInt, ...]
|
|
25
25
|
```
|
|
26
26
|
defines a tuple of non-negative integers, for example, a tuple of indices.
|
|
27
27
|
|
|
@@ -134,8 +134,8 @@ Other checks may be added in future development.
|
|
|
134
134
|
|
|
135
135
|
#### JSON Operations
|
|
136
136
|
|
|
137
|
-
The `Simulation` can be exported as .json-like dictionary with `Simulation.
|
|
138
|
-
The schema corresponding to `Simulation` can be generated with `Simulation.
|
|
137
|
+
The `Simulation` can be exported as .json-like dictionary with `Simulation.model_dump_json()`
|
|
138
|
+
The schema corresponding to `Simulation` can be generated with `Simulation.model_json_schema()`
|
|
139
139
|
|
|
140
140
|
## Medium
|
|
141
141
|
|
|
@@ -2,16 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import TYPE_CHECKING, Optional
|
|
6
|
+
|
|
5
7
|
import numpy as np
|
|
6
|
-
|
|
8
|
+
from pydantic import Field, NonNegativeFloat, PositiveFloat, model_validator
|
|
7
9
|
|
|
8
10
|
from tidy3d.constants import SECOND
|
|
9
11
|
from tidy3d.exceptions import SetupError
|
|
10
12
|
|
|
11
|
-
from .base import Tidy3dBaseModel
|
|
12
|
-
from .types import ArrayFloat1D, Ax
|
|
13
|
+
from .base import Tidy3dBaseModel
|
|
13
14
|
from .viz import add_ax_if_none
|
|
14
15
|
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from tidy3d.compat import Self
|
|
18
|
+
|
|
19
|
+
from .types import ArrayFloat1D, Ax
|
|
20
|
+
|
|
15
21
|
|
|
16
22
|
class ApodizationSpec(Tidy3dBaseModel):
|
|
17
23
|
"""Stores specifications for the apodizaton of frequency-domain monitors.
|
|
@@ -27,45 +33,40 @@ class ApodizationSpec(Tidy3dBaseModel):
|
|
|
27
33
|
|
|
28
34
|
"""
|
|
29
35
|
|
|
30
|
-
start:
|
|
36
|
+
start: Optional[NonNegativeFloat] = Field(
|
|
31
37
|
None,
|
|
32
38
|
title="Start Interval",
|
|
33
39
|
description="Defines the time at which the start apodization ends.",
|
|
34
|
-
units
|
|
40
|
+
json_schema_extra={"units": SECOND},
|
|
35
41
|
)
|
|
36
42
|
|
|
37
|
-
end:
|
|
43
|
+
end: Optional[NonNegativeFloat] = Field(
|
|
38
44
|
None,
|
|
39
45
|
title="End Interval",
|
|
40
46
|
description="Defines the time at which the end apodization begins.",
|
|
41
|
-
units
|
|
47
|
+
json_schema_extra={"units": SECOND},
|
|
42
48
|
)
|
|
43
49
|
|
|
44
|
-
width:
|
|
50
|
+
width: Optional[PositiveFloat] = Field(
|
|
45
51
|
None,
|
|
46
52
|
title="Apodization Width",
|
|
47
53
|
description="Characteristic decay length of the apodization function, i.e., the width of the ramping up of the scaling function from 0 to 1.",
|
|
48
|
-
units
|
|
54
|
+
json_schema_extra={"units": SECOND},
|
|
49
55
|
)
|
|
50
56
|
|
|
51
|
-
@
|
|
52
|
-
|
|
53
|
-
def end_greater_than_start(cls, val, values):
|
|
57
|
+
@model_validator(mode="after")
|
|
58
|
+
def end_greater_than_start(self) -> Self:
|
|
54
59
|
"""Ensure end is greater than or equal to start."""
|
|
55
|
-
start
|
|
56
|
-
if val is not None and start is not None and val < start:
|
|
60
|
+
if self.end is not None and self.start is not None and self.end < self.start:
|
|
57
61
|
raise SetupError("End apodization begins before start apodization ends.")
|
|
58
|
-
return
|
|
62
|
+
return self
|
|
59
63
|
|
|
60
|
-
@
|
|
61
|
-
|
|
62
|
-
def width_provided(cls, val, values):
|
|
64
|
+
@model_validator(mode="after")
|
|
65
|
+
def width_provided(self) -> Self:
|
|
63
66
|
"""Check that width is provided if either start or end apodization is requested."""
|
|
64
|
-
start
|
|
65
|
-
end = values.get("end")
|
|
66
|
-
if (start is not None or end is not None) and val is None:
|
|
67
|
+
if (self.start is not None or self.end is not None) and self.width is None:
|
|
67
68
|
raise SetupError("Apodization width must be set.")
|
|
68
|
-
return
|
|
69
|
+
return self
|
|
69
70
|
|
|
70
71
|
@add_ax_if_none
|
|
71
72
|
def plot(self, times: ArrayFloat1D, ax: Ax = None) -> Ax:
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from .boxes import TidyArrayBox
|
|
4
|
+
from .functions import interpn
|
|
5
|
+
from .types import (
|
|
6
|
+
AutogradFieldMap,
|
|
7
|
+
InterpolationType,
|
|
8
|
+
PathType,
|
|
9
|
+
TracedArrayFloat2D,
|
|
10
|
+
TracedArrayLike,
|
|
11
|
+
TracedComplex,
|
|
12
|
+
TracedCoordinate,
|
|
13
|
+
TracedFloat,
|
|
14
|
+
TracedPoleAndResidue,
|
|
15
|
+
TracedPolesAndResidues,
|
|
16
|
+
TracedPositiveFloat,
|
|
17
|
+
TracedSize,
|
|
18
|
+
TracedSize1D,
|
|
19
|
+
)
|
|
20
|
+
from .utils import get_static, hasbox, is_tidy_box, split_list
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
"AutogradFieldMap",
|
|
24
|
+
"InterpolationType",
|
|
25
|
+
"PathType",
|
|
26
|
+
"TidyArrayBox",
|
|
27
|
+
"TracedArrayFloat2D",
|
|
28
|
+
"TracedArrayLike",
|
|
29
|
+
"TracedComplex",
|
|
30
|
+
"TracedCoordinate",
|
|
31
|
+
"TracedFloat",
|
|
32
|
+
"TracedPoleAndResidue",
|
|
33
|
+
"TracedPolesAndResidues",
|
|
34
|
+
"TracedPositiveFloat",
|
|
35
|
+
"TracedSize",
|
|
36
|
+
"TracedSize1D",
|
|
37
|
+
"get_static",
|
|
38
|
+
"hasbox",
|
|
39
|
+
"interpn",
|
|
40
|
+
"is_tidy_box",
|
|
41
|
+
"split_list",
|
|
42
|
+
]
|