tidy3d 2.10.2__tar.gz → 2.11.0.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/PKG-INFO +16 -5
  2. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/pyproject.toml +70 -64
  3. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/README.md +2 -2
  4. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/__init__.py +59 -9
  5. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/__main__.py +1 -1
  6. tidy3d-2.11.0.dev1/tidy3d/compat.py +31 -0
  7. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/README.md +4 -4
  8. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/apodization.py +23 -22
  9. tidy3d-2.11.0.dev1/tidy3d/components/autograd/__init__.py +42 -0
  10. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/autograd/boxes.py +10 -8
  11. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/autograd/derivative_utils.py +434 -112
  12. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/autograd/field_map.py +13 -12
  13. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/autograd/functions.py +7 -5
  14. tidy3d-2.11.0.dev1/tidy3d/components/autograd/source_factory.py +122 -0
  15. tidy3d-2.11.0.dev1/tidy3d/components/autograd/types.py +132 -0
  16. tidy3d-2.11.0.dev1/tidy3d/components/autograd/utils.py +98 -0
  17. tidy3d-2.11.0.dev1/tidy3d/components/base.py +1971 -0
  18. tidy3d-2.11.0.dev1/tidy3d/components/base_sim/data/monitor_data.py +125 -0
  19. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/base_sim/data/sim_data.py +36 -31
  20. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/base_sim/monitor.py +14 -11
  21. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/base_sim/simulation.py +121 -62
  22. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/base_sim/source.py +10 -3
  23. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/bc_placement.py +23 -18
  24. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/beam.py +86 -65
  25. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/boundary.py +251 -163
  26. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/data_array.py +293 -96
  27. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/dataset.py +156 -60
  28. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/index.py +5 -3
  29. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/monitor_data.py +735 -361
  30. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/sim_data.py +87 -67
  31. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/unstructured/base.py +594 -277
  32. tidy3d-2.11.0.dev1/tidy3d/components/data/unstructured/surface.py +491 -0
  33. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/unstructured/tetrahedral.py +113 -31
  34. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/unstructured/triangular.py +62 -40
  35. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/utils.py +12 -4
  36. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/validators.py +22 -15
  37. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/zbf.py +20 -20
  38. tidy3d-2.11.0.dev1/tidy3d/components/diffraction.py +189 -0
  39. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/dispersion_fitter.py +85 -52
  40. tidy3d-2.11.0.dev1/tidy3d/components/docstrings.py +301 -0
  41. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/data/dataset.py +160 -56
  42. tidy3d-2.11.0.dev1/tidy3d/components/eme/data/monitor_data.py +162 -0
  43. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/data/sim_data.py +127 -21
  44. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/grid.py +100 -73
  45. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/monitor.py +158 -31
  46. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/simulation.py +280 -142
  47. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/sweep.py +103 -20
  48. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/field_projection.py +53 -49
  49. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/file_util.py +5 -3
  50. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/frequencies.py +17 -16
  51. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/frequency_extrapolation.py +18 -15
  52. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/base.py +692 -225
  53. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/bound_ops.py +4 -1
  54. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/mesh.py +27 -21
  55. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/polyslab.py +94 -97
  56. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/primitives.py +333 -54
  57. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/triangulation.py +9 -5
  58. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/utils.py +72 -33
  59. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/utils_2d.py +80 -17
  60. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/grid/corner_finder.py +17 -13
  61. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/grid/grid.py +138 -50
  62. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/grid/grid_spec.py +317 -227
  63. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/grid/mesher.py +42 -38
  64. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/index.py +22 -20
  65. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/lumped_element.py +121 -127
  66. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/multi_physics.py +10 -9
  67. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/tcad/charge.py +80 -47
  68. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/tcad/heat.py +39 -32
  69. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/medium.py +1040 -987
  70. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/base.py +6 -1
  71. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/data/dataset.py +5 -8
  72. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/data/monitor_data.py +38 -28
  73. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/formulas/circuit_parameters.py +5 -1
  74. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/impedance_calculator.py +26 -20
  75. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/mode_spec.py +55 -19
  76. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/monitor.py +4 -4
  77. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/factory.py +21 -19
  78. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/integrals/auto.py +7 -3
  79. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/integrals/base.py +7 -5
  80. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/integrals/current.py +21 -14
  81. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/integrals/voltage.py +10 -8
  82. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/mode_plane_analyzer.py +10 -6
  83. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/specs/base.py +30 -19
  84. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/specs/current.py +24 -15
  85. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/specs/impedance.py +12 -11
  86. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/specs/voltage.py +10 -6
  87. tidy3d-2.11.0.dev1/tidy3d/components/microwave/time.py +350 -0
  88. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/data/sim_data.py +13 -9
  89. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/derivatives.py +66 -14
  90. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/mode_solver.py +222 -167
  91. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/simulation.py +101 -60
  92. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/solver.py +121 -87
  93. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/transforms.py +21 -3
  94. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode_spec.py +306 -129
  95. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/monitor.py +588 -209
  96. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/nonlinear.py +40 -32
  97. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/parameter_perturbation.py +209 -201
  98. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/run_time_spec.py +3 -4
  99. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/scene.py +163 -119
  100. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/simulation.py +792 -566
  101. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/source/base.py +44 -16
  102. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/source/current.py +131 -14
  103. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/source/field.py +167 -74
  104. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/source/frame.py +2 -2
  105. tidy3d-2.11.0.dev1/tidy3d/components/source/freq_range.py +230 -0
  106. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/source/time.py +106 -54
  107. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/analysis/ac.py +6 -6
  108. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/analysis/dc.py +10 -10
  109. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/sources/ac.py +12 -11
  110. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/sources/dc.py +20 -17
  111. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/structure.py +109 -68
  112. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/subpixel_spec.py +30 -28
  113. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/analysis/heat_simulation_type.py +7 -7
  114. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/bandgap.py +20 -22
  115. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/bandgap_energy.py +11 -14
  116. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/boundary/charge.py +6 -8
  117. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/boundary/heat.py +24 -19
  118. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/boundary/specification.py +3 -3
  119. tidy3d-2.11.0.dev1/tidy3d/components/tcad/data/monitor_data/abstract.py +75 -0
  120. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/data/monitor_data/charge.py +74 -80
  121. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/data/monitor_data/heat.py +13 -14
  122. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/data/monitor_data/mesh.py +5 -5
  123. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/data/sim_data.py +149 -51
  124. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/doping.py +63 -22
  125. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/effective_DOS.py +18 -18
  126. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/generation_recombination.py +71 -56
  127. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/grid.py +85 -76
  128. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/mesher.py +9 -5
  129. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/mobility.py +21 -23
  130. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/monitors/abstract.py +20 -5
  131. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/monitors/charge.py +24 -9
  132. tidy3d-2.11.0.dev1/tidy3d/components/tcad/monitors/heat.py +42 -0
  133. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/monitors/mesh.py +9 -5
  134. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/simulation/heat.py +12 -7
  135. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/simulation/heat_charge.py +285 -257
  136. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/source/abstract.py +9 -5
  137. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/source/heat.py +8 -7
  138. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/time.py +18 -10
  139. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/time_modulation.py +40 -41
  140. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/transformation.py +19 -13
  141. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/types/__init__.py +2 -12
  142. tidy3d-2.11.0.dev1/tidy3d/components/types/base.py +339 -0
  143. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/types/monitor.py +14 -0
  144. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/types/monitor_data.py +6 -0
  145. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/types/third_party.py +6 -2
  146. tidy3d-2.11.0.dev1/tidy3d/components/types/time.py +29 -0
  147. tidy3d-2.11.0.dev1/tidy3d/components/types/utils.py +33 -0
  148. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/validators.py +183 -138
  149. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/__init__.py +22 -2
  150. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/axes_utils.py +167 -10
  151. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/descartes.py +14 -10
  152. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/plot_params.py +26 -20
  153. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/plot_sim_3d.py +13 -3
  154. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/styles.py +13 -5
  155. tidy3d-2.11.0.dev1/tidy3d/components/viz/visualization_spec.py +87 -0
  156. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/README.md +18 -3
  157. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/__init__.py +20 -3
  158. tidy3d-2.11.0.dev1/tidy3d/config/deprecations.py +97 -0
  159. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/legacy.py +8 -3
  160. tidy3d-2.11.0.dev1/tidy3d/config/loader.py +992 -0
  161. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/manager.py +32 -66
  162. tidy3d-2.11.0.dev1/tidy3d/config/migrations.py +272 -0
  163. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/profiles.py +7 -0
  164. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/registry.py +4 -1
  165. tidy3d-2.11.0.dev1/tidy3d/config/schema_utils.py +30 -0
  166. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/sections.py +39 -4
  167. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/config/serializer.py +6 -6
  168. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/constants.py +7 -1
  169. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/exceptions.py +4 -1
  170. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/log.py +63 -18
  171. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/material_library/material_library.py +26 -32
  172. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/material_library/material_reference.py +8 -6
  173. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/material_library/parametric_materials.py +27 -28
  174. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/material_library/util.py +4 -2
  175. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/packaging.py +54 -22
  176. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/README.md +1 -6
  177. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/differential_operators.py +6 -2
  178. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/functions.py +27 -8
  179. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/invdes/filters.py +34 -23
  180. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/invdes/misc.py +5 -1
  181. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/invdes/parametrizations.py +37 -18
  182. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/invdes/penalties.py +40 -23
  183. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/invdes/projections.py +6 -2
  184. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/invdes/symmetries.py +4 -2
  185. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/primitives/interpolate.py +18 -7
  186. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/primitives/misc.py +27 -12
  187. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/utilities.py +68 -55
  188. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/design/README.md +2 -0
  189. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/design/design.py +43 -33
  190. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/design/method.py +161 -111
  191. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/design/parameter.py +40 -31
  192. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/design/result.py +42 -39
  193. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/dispersion/fit.py +57 -46
  194. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/dispersion/fit_fast.py +8 -4
  195. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/dispersion/web.py +31 -29
  196. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/__init__.py +23 -1
  197. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/base.py +11 -13
  198. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/functions.py +11 -8
  199. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/metrics.py +15 -12
  200. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/operators.py +15 -13
  201. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/types.py +14 -18
  202. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/variables.py +3 -4
  203. tidy3d-2.11.0.dev1/tidy3d/plugins/invdes/__init__.py +50 -0
  204. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/base.py +3 -3
  205. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/design.py +56 -46
  206. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/initialization.py +39 -33
  207. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/optimizer.py +28 -30
  208. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/penalty.py +12 -12
  209. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/region.py +45 -35
  210. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/result.py +21 -20
  211. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/transformation.py +16 -12
  212. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/utils.py +1 -3
  213. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/validators.py +18 -15
  214. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/drc/README.md +3 -0
  215. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/drc/drc.py +33 -22
  216. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/drc/results.py +14 -11
  217. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/util.py +35 -2
  218. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/array_factor.py +86 -56
  219. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/lobe_measurer.py +27 -22
  220. tidy3d-2.11.0.dev1/tidy3d/plugins/microwave/rf_material_library.py +1376 -0
  221. tidy3d-2.11.0.dev1/tidy3d/plugins/microwave/rf_material_reference.py +146 -0
  222. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/polyslab/polyslab.py +5 -1
  223. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/pytorch/wrapper.py +12 -5
  224. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/resonance/resonance.py +28 -14
  225. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/__init__.py +3 -1
  226. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/analysis/antenna.py +8 -4
  227. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/analysis/modal.py +16 -5
  228. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/analysis/terminal.py +24 -16
  229. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/component_modelers/base.py +50 -40
  230. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/component_modelers/modal.py +82 -80
  231. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/component_modelers/terminal.py +90 -46
  232. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/data/base.py +15 -13
  233. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/data/modal.py +7 -4
  234. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/data/terminal.py +68 -27
  235. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/base.py +5 -5
  236. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/base_lumped.py +13 -10
  237. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/base_terminal.py +12 -8
  238. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/coaxial_lumped.py +41 -36
  239. tidy3d-2.11.0.dev1/tidy3d/plugins/smatrix/ports/modal.py +272 -0
  240. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/rectangular_lumped.py +44 -29
  241. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/wave.py +56 -45
  242. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/run.py +81 -11
  243. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/types.py +9 -5
  244. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/utils.py +37 -30
  245. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/waveguide/rectangular_dielectric.py +121 -116
  246. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/rf.py +12 -0
  247. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/updater.py +83 -40
  248. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/version.py +1 -1
  249. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/__init__.py +1 -1
  250. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/asynchronous.py +17 -6
  251. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/autograd/autograd.py +690 -79
  252. tidy3d-2.11.0.dev1/tidy3d/web/api/autograd/backward.py +731 -0
  253. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/autograd/engine.py +8 -5
  254. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/autograd/forward.py +6 -3
  255. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/autograd/io_utils.py +23 -17
  256. tidy3d-2.11.0.dev1/tidy3d/web/api/autograd/types.py +193 -0
  257. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/autograd/utils.py +41 -4
  258. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/connect_util.py +4 -1
  259. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/container.py +292 -148
  260. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/material_fitter.py +16 -5
  261. tidy3d-2.11.0.dev1/tidy3d/web/api/material_library.py +64 -0
  262. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/mode.py +24 -18
  263. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/run.py +26 -16
  264. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/tidy3d_stub.py +7 -5
  265. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/webapi.py +126 -45
  266. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cache.py +89 -32
  267. tidy3d-2.11.0.dev1/tidy3d/web/cli/app.py +45 -0
  268. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/cache.py +7 -2
  269. tidy3d-2.11.0.dev1/tidy3d/web/cli/config.py +516 -0
  270. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/develop/documentation.py +6 -3
  271. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/develop/install.py +10 -10
  272. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/account.py +2 -2
  273. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/core_config.py +4 -2
  274. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/exceptions.py +4 -1
  275. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/file_util.py +1 -1
  276. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/http_util.py +7 -4
  277. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/s3utils.py +8 -4
  278. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/stub.py +4 -1
  279. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/task_core.py +74 -49
  280. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/task_info.py +66 -70
  281. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/types.py +2 -2
  282. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/tests/conftest.py +4 -1
  283. tidy3d-2.10.2/tidy3d/compat.py +0 -26
  284. tidy3d-2.10.2/tidy3d/components/autograd/__init__.py +0 -31
  285. tidy3d-2.10.2/tidy3d/components/autograd/types.py +0 -55
  286. tidy3d-2.10.2/tidy3d/components/autograd/utils.py +0 -55
  287. tidy3d-2.10.2/tidy3d/components/base.py +0 -1529
  288. tidy3d-2.10.2/tidy3d/components/base_sim/data/monitor_data.py +0 -27
  289. tidy3d-2.10.2/tidy3d/components/eme/data/monitor_data.py +0 -60
  290. tidy3d-2.10.2/tidy3d/components/tcad/data/monitor_data/abstract.py +0 -149
  291. tidy3d-2.10.2/tidy3d/components/tcad/monitors/heat.py +0 -21
  292. tidy3d-2.10.2/tidy3d/components/types/base.py +0 -264
  293. tidy3d-2.10.2/tidy3d/components/types/utils.py +0 -14
  294. tidy3d-2.10.2/tidy3d/components/viz/visualization_spec.py +0 -62
  295. tidy3d-2.10.2/tidy3d/config/loader.py +0 -438
  296. tidy3d-2.10.2/tidy3d/plugins/invdes/__init__.py +0 -29
  297. tidy3d-2.10.2/tidy3d/plugins/microwave/rf_material_library.py +0 -255
  298. tidy3d-2.10.2/tidy3d/plugins/microwave/rf_material_reference.py +0 -43
  299. tidy3d-2.10.2/tidy3d/plugins/smatrix/ports/modal.py +0 -58
  300. tidy3d-2.10.2/tidy3d/web/api/autograd/backward.py +0 -351
  301. tidy3d-2.10.2/tidy3d/web/api/material_libray.py +0 -44
  302. tidy3d-2.10.2/tidy3d/web/cli/app.py +0 -409
  303. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/LICENSE +0 -0
  304. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/README.md +0 -0
  305. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/_runtime.py +0 -0
  306. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/__init__.py +0 -0
  307. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/base_sim/__init__.py +0 -0
  308. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/base_sim/data/__init__.py +0 -0
  309. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/README.md +0 -0
  310. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/__init__.py +0 -0
  311. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/data/unstructured/__init__.py +0 -0
  312. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/__init__.py +0 -0
  313. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/eme/data/__init__.py +0 -0
  314. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/__init__.py +0 -0
  315. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/geometry/float_utils.py +0 -0
  316. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/grid/__init__.py +0 -0
  317. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/README.md +0 -0
  318. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/__init__.py +0 -0
  319. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/solver_types.py +0 -0
  320. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/tcad/__init__.py +0 -0
  321. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/material/types.py +0 -0
  322. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/__init__.py +0 -0
  323. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/data/__init__.py +0 -0
  324. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/data/data_array.py +0 -0
  325. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/formulas/__init__.py +0 -0
  326. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/__init__.py +0 -0
  327. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/integrals/__init__.py +0 -0
  328. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/specs/__init__.py +0 -0
  329. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/types.py +0 -0
  330. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/microwave/path_integrals/viz.py +0 -0
  331. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/LICENSE +0 -0
  332. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/__init__.py +0 -0
  333. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/mode/data/__init__.py +0 -0
  334. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/source/__init__.py +0 -0
  335. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/source/utils.py +0 -0
  336. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/__init__.py +0 -0
  337. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/analysis/__init__.py +0 -0
  338. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/sources/__init__.py +0 -0
  339. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/sources/types.py +0 -0
  340. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/spice/types.py +0 -0
  341. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/__init__.py +0 -0
  342. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/analysis/__init__.py +0 -0
  343. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/boundary/__init__.py +0 -0
  344. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/boundary/abstract.py +0 -0
  345. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/data/__init__.py +0 -0
  346. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/data/monitor_data/__init__.py +0 -0
  347. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/data/types.py +0 -0
  348. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/monitors/__init__.py +0 -0
  349. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/simulation/__init__.py +0 -0
  350. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/source/__init__.py +0 -0
  351. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/source/coupled.py +0 -0
  352. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/types.py +0 -0
  353. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/tcad/viz.py +0 -0
  354. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/types/mode_spec.py +0 -0
  355. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/types/simulation.py +0 -0
  356. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/types/workflow.py +0 -0
  357. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/flex_color_palettes.py +0 -0
  358. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/components/viz/flex_style.py +0 -0
  359. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/material_library/__init__.py +0 -0
  360. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/__init__.py +0 -0
  361. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/__init__.py +0 -0
  362. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/constants.py +0 -0
  363. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/invdes/__init__.py +0 -0
  364. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/primitives/__init__.py +0 -0
  365. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/autograd/types.py +0 -0
  366. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/design/__init__.py +0 -0
  367. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/dispersion/__init__.py +0 -0
  368. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/dispersion/fit_web.py +0 -0
  369. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/expressions/README.md +0 -0
  370. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/invdes/README.md +0 -0
  371. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/README.md +0 -0
  372. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/__init__.py +0 -0
  373. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/drc/__init__.py +0 -0
  374. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/klayout/drc/defaults.py +0 -0
  375. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/__init__.py +0 -0
  376. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/auto_path_integrals.py +0 -0
  377. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/custom_path_integrals.py +0 -0
  378. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/impedance_calculator.py +0 -0
  379. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/models/__init__.py +0 -0
  380. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/models/coupled_microstrip.py +0 -0
  381. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/models/microstrip.py +0 -0
  382. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/path_integrals.py +0 -0
  383. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/microwave/viz.py +0 -0
  384. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/mode/LICENSE +0 -0
  385. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/mode/README.md +0 -0
  386. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/mode/__init__.py +0 -0
  387. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/mode/mode_solver.py +0 -0
  388. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/mode/web.py +0 -0
  389. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/polyslab/__init__.py +0 -0
  390. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/pytorch/README.md +0 -0
  391. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/pytorch/__init__.py +0 -0
  392. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/resonance/__init__.py +0 -0
  393. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/analysis/__init__.py +0 -0
  394. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/component_modelers/__init__.py +0 -0
  395. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/component_modelers/types.py +0 -0
  396. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/data/__init__.py +0 -0
  397. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/data/data_array.py +0 -0
  398. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/data/types.py +0 -0
  399. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/__init__.py +0 -0
  400. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/smatrix/ports/types.py +0 -0
  401. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/plugins/waveguide/__init__.py +0 -0
  402. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/style.mplstyle +0 -0
  403. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/__init__.py +0 -0
  404. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/autograd/__init__.py +0 -0
  405. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/autograd/constants.py +0 -0
  406. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/cacert.pem +0 -0
  407. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/api/states.py +0 -0
  408. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/__init__.py +0 -0
  409. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/constants.py +0 -0
  410. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/develop/__init__.py +0 -0
  411. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/develop/index.py +0 -0
  412. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/develop/packaging.py +0 -0
  413. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/develop/tests.py +0 -0
  414. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/develop/utils.py +0 -0
  415. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/cli/readme.md +0 -0
  416. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/common.py +0 -0
  417. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/__init__.py +0 -0
  418. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/cache.py +0 -0
  419. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/constants.py +0 -0
  420. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/core/environment.py +0 -0
  421. {tidy3d-2.10.2 → tidy3d-2.11.0.dev1}/tidy3d/web/environment.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tidy3d
3
- Version: 2.10.2
3
+ Version: 2.11.0.dev1
4
4
  Summary: A fast FDTD solver
5
5
  License: LGPLv2+
6
6
  License-File: LICENSE
@@ -22,6 +22,7 @@ Provides-Extra: extras
22
22
  Provides-Extra: gdstk
23
23
  Provides-Extra: heatcharge
24
24
  Provides-Extra: pytorch
25
+ Provides-Extra: pyvista
25
26
  Provides-Extra: ruff
26
27
  Provides-Extra: scikit-rf
27
28
  Provides-Extra: tests
@@ -37,6 +38,7 @@ Requires-Dist: coverage (>=7.13.1,<8.0.0) ; extra == "dev"
37
38
  Requires-Dist: dask (>=2025.12.0,<2026.0.0)
38
39
  Requires-Dist: diff-cover (>=10.1.0,<11.0.0) ; extra == "dev"
39
40
  Requires-Dist: dill (>=0.4.0,<0.5.0) ; extra == "dev"
41
+ Requires-Dist: filelock (>=3.20.1,<4.0.0)
40
42
  Requires-Dist: gdstk (>=0.9.49,<0.10.0) ; extra == "dev" or extra == "docs" or extra == "gdstk"
41
43
  Requires-Dist: grcwa (>=0.1.2,<0.2.0) ; extra == "dev" or extra == "docs"
42
44
  Requires-Dist: h5netcdf (==1.0.2)
@@ -46,21 +48,24 @@ Requires-Dist: ipython (>=8.38.0,<9.0.0) ; extra == "dev" or extra == "dev" or e
46
48
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0) ; extra == "dev" or extra == "docs"
47
49
  Requires-Dist: joblib (>=1.5.3,<2.0.0)
48
50
  Requires-Dist: jupyter (>=1.1.1,<2.0.0) ; extra == "dev" or extra == "docs"
51
+ Requires-Dist: libcst (>=1.5.0,<2.0.0) ; extra == "dev"
49
52
  Requires-Dist: matplotlib (>=3.10.0,<4.0.0)
50
53
  Requires-Dist: memory_profiler (>=0.61.0,<0.62.0) ; extra == "dev"
51
54
  Requires-Dist: mypy (==1.13.0) ; extra == "dev"
52
55
  Requires-Dist: myst-parser (>=4.0.1,<5.0.0) ; extra == "dev" or extra == "docs"
53
- Requires-Dist: nbconvert (>=7.11.0,<8.0.0) ; extra == "dev" or extra == "docs"
56
+ Requires-Dist: nbconvert (>=7.17.0,<8.0.0) ; extra == "dev" or extra == "docs"
54
57
  Requires-Dist: nbdime (>=4.0.2,<5.0.0) ; extra == "dev" or extra == "docs"
55
58
  Requires-Dist: nbsphinx (>=0.8.7,<0.10.0) ; extra == "dev" or extra == "docs"
56
59
  Requires-Dist: networkx (>=2.6.3,<3.0.0) ; extra == "dev" or extra == "trimesh"
57
60
  Requires-Dist: numpy (>=2.2.6,<2.5.0)
58
61
  Requires-Dist: openpyxl (>=3.1.5,<4.0.0) ; extra == "dev" or extra == "docs"
59
62
  Requires-Dist: optax (>=0.2.2,<0.3.0) ; extra == "dev" or extra == "docs"
63
+ Requires-Dist: orbax-checkpoint (<0.11.33) ; extra == "dev" or extra == "tests" or extra == "docs"
60
64
  Requires-Dist: pandas (>=2.2,<3.0)
61
65
  Requires-Dist: pre-commit (>=4,<5) ; extra == "dev" or extra == "tests"
62
66
  Requires-Dist: psutil (>=7.2.1,<8.0.0) ; extra == "dev" or extra == "tests"
63
- Requires-Dist: pydantic (>=2.0,<3.0)
67
+ Requires-Dist: pydantic (>=2.9,<3)
68
+ Requires-Dist: pydantic-settings (>=2.10.0,<3.0.0)
64
69
  Requires-Dist: pydata-sphinx-theme (>=0.13.3,<0.16.0) ; extra == "dev" or extra == "docs"
65
70
  Requires-Dist: pygad (==3.3.1) ; extra == "dev" or extra == "design"
66
71
  Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
@@ -70,8 +75,10 @@ Requires-Dist: pyswarms (>=1.3.0,<2.0.0) ; extra == "dev" or extra == "design"
70
75
  Requires-Dist: pytest (>=8.1,<10.0.0) ; extra == "dev" or extra == "tests"
71
76
  Requires-Dist: pytest-cov (>=6.0.0,<7.0.0) ; extra == "dev" or extra == "tests"
72
77
  Requires-Dist: pytest-env (>=1.1.5,<2.0.0) ; extra == "dev" or extra == "tests"
78
+ Requires-Dist: pytest-testmon (>=2.1.3,<3.0.0) ; extra == "dev" or extra == "tests"
73
79
  Requires-Dist: pytest-timeout (>=2.4.0,<3.0.0) ; extra == "dev" or extra == "tests"
74
80
  Requires-Dist: pytest-xdist (>=3.6.1,<4.0.0) ; extra == "dev" or extra == "tests"
81
+ Requires-Dist: pyvista (>=0.45,<0.47.0) ; extra == "dev" or extra == "pyvista"
75
82
  Requires-Dist: requests (>=2.31.0,<3.0.0)
76
83
  Requires-Dist: responses (>=0.25.8,<0.26.0)
77
84
  Requires-Dist: rich (>=13.0,<14.0)
@@ -91,16 +98,20 @@ Requires-Dist: sphinx-notfound-page (>=1.1.0,<2.0.0) ; extra == "dev" or extra =
91
98
  Requires-Dist: sphinx-sitemap (>=2.5.1,<3.0.0) ; extra == "dev" or extra == "docs"
92
99
  Requires-Dist: sphinx-tabs (>=3.4.7,<4.0.0) ; extra == "dev" or extra == "docs"
93
100
  Requires-Dist: sphinxemoji (>=0.3.2,<0.4.0) ; extra == "dev" or extra == "docs"
94
- Requires-Dist: tidy3d-extras (==2.10.2) ; extra == "extras"
101
+ Requires-Dist: tidy3d-extras (==2.11.0.dev1) ; extra == "extras"
95
102
  Requires-Dist: tmm (>=0.2.0,<0.3.0) ; extra == "dev" or extra == "docs"
96
103
  Requires-Dist: toml (>=0.10.2,<0.11.0)
97
104
  Requires-Dist: tomlkit (>=0.13.2,<0.14.0)
98
105
  Requires-Dist: torch (>=2.2.0,<3.0.0) ; (sys_platform != "darwin") and (extra == "dev" or extra == "pytorch")
99
106
  Requires-Dist: torch (>=2.2.0,<3.0.0) ; (sys_platform == "darwin") and (extra == "dev" or extra == "pytorch")
107
+ Requires-Dist: towncrier (>=25.8.0,<26.0.0) ; extra == "dev"
100
108
  Requires-Dist: tox (>=4.33.0,<5.0.0) ; extra == "dev"
109
+ Requires-Dist: trame (>=3.0.0,<4.0.0) ; extra == "dev" or extra == "pyvista"
110
+ Requires-Dist: trame-vtk (>=2.0.0,<3.0.0) ; extra == "dev" or extra == "pyvista"
111
+ Requires-Dist: trame-vuetify (>=2.0.0,<3.0.0) ; extra == "dev" or extra == "pyvista"
101
112
  Requires-Dist: trimesh (>=4.6,<5.0.0) ; extra == "dev" or extra == "tests" or extra == "trimesh" or extra == "heatcharge"
102
113
  Requires-Dist: typing-extensions (>=4.15.0,<5.0.0)
103
- Requires-Dist: vtk (>=9.2.6,<10.0.0) ; extra == "dev" or extra == "vtk" or extra == "heatcharge"
114
+ Requires-Dist: vtk (>=9.2.6,<10.0.0) ; extra == "dev" or extra == "vtk" or extra == "pyvista" or extra == "heatcharge"
104
115
  Requires-Dist: xarray (>=2023.8,<2026.0.0)
105
116
  Requires-Dist: zizmor (>=1.20.0,<2.0.0) ; extra == "dev"
106
117
  Project-URL: Bug Tracker, https://github.com/flexcompute/tidy3d/issues
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "tidy3d"
3
- version = "2.10.2"
3
+ version = "2.11.0.dev1"
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 = "^2.0"
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 }
@@ -95,7 +100,7 @@ trimesh = { version = ">=4.6,<5.0.0", optional = true }
95
100
  # docs
96
101
  jupyter = { version = "^1.1.1", optional = true }
97
102
  jinja2 = { version = ">=3.1.2,<4.0.0", optional = true }
98
- nbconvert = { version = ">=7.11.0,<8.0.0", optional = true }
103
+ nbconvert = { version = ">=7.17.0,<8.0.0", optional = true }
99
104
  sphinx = { version = ">=6,<9.0.0", optional = true }
100
105
  nbsphinx = { version = ">=0.8.7,<0.10.0", optional = true }
101
106
  sphinx-copybutton = { version = ">=0.5.2,<0.6.0", optional = true }
@@ -114,12 +119,17 @@ myst-parser = { version = "^4.0.1", optional = true }
114
119
  optax = { version = ">=0.2.2,<0.3.0", optional = true }
115
120
  signac = { version = "^2.3.0", optional = true }
116
121
  flax = { version = ">=0.8.2,<0.13", optional = true }
122
+ orbax-checkpoint = { version = "<0.11.33", optional = true }
117
123
  sax = { version = "^0.11", optional = true }
118
124
  vtk = { version = ">=9.2.6,<10.0.0", optional = true }
125
+ pyvista = { version = ">=0.45,<0.47.0", optional = true }
126
+ trame = { version = ">=3.0.0,<4.0.0", optional = true }
127
+ trame-vtk = { version = ">=2.0.0,<3.0.0", optional = true }
128
+ trame-vuetify = { version = ">=2.0.0,<3.0.0", optional = true }
119
129
  sphinxemoji = { version = "^0.3.2", optional = true }
120
130
  cma = { version = "^4.4.1", optional = true }
121
131
  openpyxl = { version = "^3.1.5", optional = true }
122
- tidy3d-extras = { version = "2.10.2", optional = true }
132
+ tidy3d-extras = { version = "2.11.0.dev1", optional = true }
123
133
 
124
134
  [tool.poetry.extras]
125
135
  dev = [
@@ -142,6 +152,7 @@ dev = [
142
152
  'nbsphinx',
143
153
  'networkx',
144
154
  'optax',
155
+ 'orbax-checkpoint',
145
156
  'psutil',
146
157
  'pre-commit',
147
158
  'pydata-sphinx-theme',
@@ -153,6 +164,7 @@ dev = [
153
164
  'pytest-xdist',
154
165
  'pytest-env',
155
166
  'pytest-cov',
167
+ 'pytest-testmon',
156
168
  'rtree',
157
169
  'ruff',
158
170
  'sax',
@@ -168,15 +180,22 @@ dev = [
168
180
  'sphinxemoji',
169
181
  'tmm',
170
182
  'tox',
183
+ 'towncrier',
171
184
  'trimesh',
172
185
  'scikit-rf',
173
186
  'vtk',
187
+ 'pyvista',
188
+ 'trame',
189
+ 'trame-vtk',
190
+ 'trame-vuetify',
174
191
  'cma',
175
192
  'diff-cover',
176
193
  'openpyxl',
177
194
  'zizmor',
195
+ 'libcst',
178
196
  ]
179
197
  tests = [
198
+ 'orbax-checkpoint',
180
199
  'psutil',
181
200
  'pre-commit',
182
201
  'pylint',
@@ -185,9 +204,11 @@ tests = [
185
204
  'pytest-xdist',
186
205
  'pytest-env',
187
206
  'pytest-cov',
207
+ 'pytest-testmon',
188
208
  'trimesh'
189
209
  ]
190
210
  docs = [
211
+ 'orbax-checkpoint',
191
212
  "jupyter",
192
213
  "jinja2",
193
214
  "nbconvert",
@@ -220,6 +241,7 @@ gdstk = ["gdstk"]
220
241
  scikit-rf = ["scikit-rf"]
221
242
  trimesh = ["trimesh", "networkx", "rtree"]
222
243
  vtk = ["vtk"]
244
+ pyvista = ["pyvista", "vtk", "trame", "trame-vtk", "trame-vuetify"]
223
245
  ruff = ["ruff"]
224
246
  heatcharge = ["trimesh", "vtk"]
225
247
  # plugins with extra deps
@@ -246,6 +268,43 @@ name = "codeartifact"
246
268
  url = "https://flexcompute-625554095313.d.codeartifact.us-east-1.amazonaws.com/pypi/pypi-releases/simple/"
247
269
  priority = "supplemental"
248
270
 
271
+ [tool.towncrier]
272
+ directory = "changelog.d"
273
+ filename = "CHANGELOG.md"
274
+ start_string = "<!-- towncrier release notes start -->\n"
275
+ template = "changelog.d/template.md"
276
+ title_format = "## [{version}] - {project_date}"
277
+
278
+ [[tool.towncrier.type]]
279
+ directory = "added"
280
+ name = "Added"
281
+ showcontent = true
282
+
283
+ [[tool.towncrier.type]]
284
+ directory = "changed"
285
+ name = "Changed"
286
+ showcontent = true
287
+
288
+ [[tool.towncrier.type]]
289
+ directory = "fixed"
290
+ name = "Fixed"
291
+ showcontent = true
292
+
293
+ [[tool.towncrier.type]]
294
+ directory = "removed"
295
+ name = "Removed"
296
+ showcontent = true
297
+
298
+ [[tool.towncrier.type]]
299
+ directory = "breaking"
300
+ name = "Breaking Changes"
301
+ showcontent = true
302
+
303
+ [[tool.towncrier.type]]
304
+ directory = "planned_deprecation"
305
+ name = "Planned Deprecation"
306
+ showcontent = true
307
+
249
308
  [build-system]
250
309
  requires = ["poetry-core>=1.0.0"]
251
310
  build-backend = "poetry.core.masonry.api"
@@ -309,9 +368,13 @@ banned-module-level-imports = ["scipy", "matplotlib"]
309
368
 
310
369
  [tool.pytest.ini_options]
311
370
  # TODO: remove --assert=plain when https://github.com/scipy/scipy/issues/22236 is resolved
312
- addopts = "--cov=tidy3d --doctest-modules -n auto --dist worksteal --assert=plain -m 'not numerical and not perf'"
371
+ addopts = """
372
+ --cov=tidy3d --doctest-modules -n auto --dist worksteal --assert=plain -m 'not numerical and not perf and not generate_profile and not performance_profile'
373
+ """
313
374
  markers = [
314
375
  "numerical: marks numerical tests for adjoint gradients that require running simulations (deselect with '-m \"not numerical\"')",
376
+ "generate_profile: regenerate fixture data required by the performance tests (select with '-m \"generate_profile\"')",
377
+ "performance_profile: enable CPU and memory profiling based on data generated with generate_profile (select with '-m \"performance_profile\"')",
315
378
  "perf: marks tests which test the runtime of operations (deselect with '-m \"not perf\"')",
316
379
  "slow: marks tests as slow (deselect with -m 'not slow')",
317
380
  ]
@@ -319,6 +382,7 @@ env = ["MPLBACKEND=Agg", "OMP_NUM_THREADS=1", "TIDY3D_MICROWAVE__SUPPRESS_RF_LIC
319
382
  doctest_optionflags = "NORMALIZE_WHITESPACE ELLIPSIS"
320
383
  norecursedirs = [
321
384
  "tests/_test_local",
385
+ "tests/_integration",
322
386
  "tests/test_cli",
323
387
  "tests/_test_data",
324
388
  "tests/_test_notebooks",
@@ -334,82 +398,24 @@ python_files = "*.py"
334
398
  [tool.mypy]
335
399
  python_version = "3.10"
336
400
  files = [
337
- "tidy3d/web",
338
- "tidy3d/config",
339
- "tidy3d/material_library",
340
- "tidy3d/components/geometry"
401
+ "tidy3d",
341
402
  ]
342
403
  ignore_missing_imports = true
343
404
  follow_imports = "skip"
344
405
  disallow_untyped_defs = true
345
406
  disable_error_code = [
346
- "abstract",
347
- "annotation-unchecked",
348
407
  "arg-type",
349
- "assert-type",
350
408
  "assignment",
351
409
  "attr-defined",
352
- "await-not-async",
353
410
  "call-arg",
354
411
  "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
412
  "import-untyped",
366
413
  "index",
367
- "list-item",
368
- "literal-required",
369
- "method-assign",
370
414
  "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
415
  "operator",
381
- "overload-cannot-match",
382
- "overload-overlap",
383
416
  "override",
384
- "possibly-undefined",
385
- "prop-decorator",
386
- "redundant-cast",
387
- "redundant-expr",
388
- "redundant-self",
389
- "return",
390
417
  "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
418
  "union-attr",
407
- "unreachable",
408
- "unused-awaitable",
409
- "unused-coroutine",
410
- "unused-ignore",
411
- "used-before-def",
412
- "valid-newtype",
413
419
  "valid-type",
414
420
  "var-annotated",
415
421
  ]
@@ -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://pydantic-docs.helpmanual.io) package to define these components, which has the following benefits:
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://pydantic-docs.helpmanual.io/#rationale).
33
+ - Many more advantages as described [here](https://docs.pydantic.dev/latest/why/).
34
34
 
35
35
 
36
36
  ### Plugins
@@ -138,7 +138,6 @@ from tidy3d.components.tcad.types import (
138
138
 
139
139
  from .components.apodization import ApodizationSpec
140
140
 
141
- # boundary placement for other solvers
142
141
  # boundary placement for other solvers
143
142
  from .components.bc_placement import (
144
143
  MediumMediumInterface,
@@ -196,10 +195,19 @@ from .components.data.data_array import (
196
195
  FieldProjectionKSpaceDataArray,
197
196
  FluxDataArray,
198
197
  FluxTimeDataArray,
198
+ FreqDataArray,
199
+ FreqModeDataArray,
199
200
  GroupIndexDataArray,
200
201
  HeatDataArray,
201
202
  IndexedDataArray,
203
+ IndexedFieldDataArray,
204
+ IndexedFieldTimeDataArray,
202
205
  IndexedFieldVoltageDataArray,
206
+ IndexedFreqDataArray,
207
+ IndexedSurfaceFieldDataArray,
208
+ IndexedSurfaceFieldTimeDataArray,
209
+ IndexedSurfaceFreqDataArray,
210
+ IndexedSurfaceTimeDataArray,
203
211
  IndexedTimeDataArray,
204
212
  IndexedVoltageDataArray,
205
213
  ModeAmpsDataArray,
@@ -226,6 +234,7 @@ from .components.data.monitor_data import (
226
234
  DiffractionData,
227
235
  DirectivityData,
228
236
  FieldData,
237
+ FieldOverlapData,
229
238
  FieldProjectionAngleData,
230
239
  FieldProjectionCartesianData,
231
240
  FieldProjectionKSpaceData,
@@ -236,8 +245,11 @@ from .components.data.monitor_data import (
236
245
  ModeData,
237
246
  ModeSolverData,
238
247
  PermittivityData,
248
+ SurfaceFieldData,
249
+ SurfaceFieldTimeData,
239
250
  )
240
251
  from .components.data.sim_data import DATA_TYPE_MAP, SimulationData
252
+ from .components.data.unstructured.surface import TriangularSurfaceDataset
241
253
  from .components.data.utils import (
242
254
  TetrahedralGridDataset,
243
255
  TriangularGridDataset,
@@ -277,7 +289,14 @@ from .components.field_projection import FieldProjector
277
289
  from .components.frequencies import FreqRange, FrequencyUtils, frequencies, wavelengths
278
290
 
279
291
  # geometry
280
- from .components.geometry.base import Box, ClipOperation, Geometry, GeometryGroup, Transformed
292
+ from .components.geometry.base import (
293
+ Box,
294
+ ClipOperation,
295
+ Geometry,
296
+ GeometryArray,
297
+ GeometryGroup,
298
+ Transformed,
299
+ )
281
300
  from .components.geometry.mesh import TriangleMesh
282
301
  from .components.geometry.polyslab import PolySlab
283
302
  from .components.geometry.primitives import Cylinder, Sphere
@@ -338,6 +357,14 @@ from .components.medium import (
338
357
  SurfaceImpedanceFitterParam,
339
358
  medium_from_nk,
340
359
  )
360
+
361
+ # sources
362
+ from .components.microwave.time import (
363
+ BasebandCustomSourceTime,
364
+ BasebandGaussianPulse,
365
+ BasebandRectangularPulse,
366
+ BasebandStep,
367
+ )
341
368
  from .components.mode.data.sim_data import ModeSimulationData
342
369
 
343
370
  # Mode
@@ -355,6 +382,7 @@ from .components.mode_spec import (
355
382
 
356
383
  # monitors
357
384
  from .components.monitor import (
385
+ AstigmaticGaussianOverlapMonitor,
358
386
  AuxFieldTimeMonitor,
359
387
  DiffractionMonitor,
360
388
  DirectivityMonitor,
@@ -366,11 +394,14 @@ from .components.monitor import (
366
394
  FieldTimeMonitor,
367
395
  FluxMonitor,
368
396
  FluxTimeMonitor,
397
+ GaussianOverlapMonitor,
369
398
  MediumMonitor,
370
399
  ModeMonitor,
371
400
  ModeSolverMonitor,
372
401
  Monitor,
373
402
  PermittivityMonitor,
403
+ SurfaceFieldMonitor,
404
+ SurfaceFieldTimeMonitor,
374
405
  )
375
406
 
376
407
  # nonlinear
@@ -395,7 +426,6 @@ from .components.parameter_perturbation import (
395
426
  # run time spec
396
427
  from .components.run_time_spec import RunTimeSpec
397
428
 
398
- # scene
399
429
  # scene
400
430
  from .components.scene import Scene
401
431
 
@@ -420,8 +450,6 @@ from .components.source.field import (
420
450
  from .components.source.frame import (
421
451
  PECFrame,
422
452
  )
423
-
424
- # sources
425
453
  from .components.source.time import (
426
454
  BroadbandPulse,
427
455
  ContinuousWave,
@@ -484,9 +512,10 @@ def set_logging_level(level: str) -> None:
484
512
 
485
513
  log.info(f"Using client version: {__version__}")
486
514
 
487
- Transformed.update_forward_refs()
488
- ClipOperation.update_forward_refs()
489
- GeometryGroup.update_forward_refs()
515
+ Transformed.model_rebuild()
516
+ ClipOperation.model_rebuild()
517
+ GeometryGroup.model_rebuild()
518
+ GeometryArray.model_rebuild()
490
519
 
491
520
  # Backwards compatibility: Remove 2.11 renamed integral classes
492
521
  VoltageIntegralAxisAligned = AxisAlignedVoltageIntegral
@@ -518,6 +547,7 @@ __all__ = [
518
547
  "ApodizationSpec",
519
548
  "AstigmaticGaussianBeam",
520
549
  "AstigmaticGaussianBeamProfile",
550
+ "AstigmaticGaussianOverlapMonitor",
521
551
  "AugerRecombination",
522
552
  "AutoGrid",
523
553
  "AutoImpedanceSpec",
@@ -527,6 +557,10 @@ __all__ = [
527
557
  "AxisAlignedCurrentIntegralSpec",
528
558
  "AxisAlignedVoltageIntegral",
529
559
  "AxisAlignedVoltageIntegralSpec",
560
+ "BasebandCustomSourceTime",
561
+ "BasebandGaussianPulse",
562
+ "BasebandRectangularPulse",
563
+ "BasebandStep",
530
564
  "BlochBoundary",
531
565
  "Boundary",
532
566
  "BoundaryEdge",
@@ -630,12 +664,12 @@ __all__ = [
630
664
  "EMEScalarModeFieldDataArray",
631
665
  "EMESimulation",
632
666
  "EMESimulationData",
633
- "EMESweepSpec",
634
667
  "EMEUniformGrid",
635
668
  "FieldData",
636
669
  "FieldDataset",
637
670
  "FieldGrid",
638
671
  "FieldMonitor",
672
+ "FieldOverlapData",
639
673
  "FieldProjectionAngleData",
640
674
  "FieldProjectionAngleDataArray",
641
675
  "FieldProjectionAngleMonitor",
@@ -661,14 +695,18 @@ __all__ = [
661
695
  "FluxTimeDataArray",
662
696
  "FluxTimeMonitor",
663
697
  "FossumCarrierLifetime",
698
+ "FreqDataArray",
699
+ "FreqModeDataArray",
664
700
  "FreqRange",
665
701
  "FrequencyUtils",
666
702
  "FullyAnisotropicMedium",
667
703
  "GaussianBeam",
668
704
  "GaussianBeamProfile",
669
705
  "GaussianDoping",
706
+ "GaussianOverlapMonitor",
670
707
  "GaussianPulse",
671
708
  "Geometry",
709
+ "GeometryArray",
672
710
  "GeometryGroup",
673
711
  "Graphene",
674
712
  "Grid",
@@ -695,7 +733,14 @@ __all__ = [
695
733
  "ImpedanceCalculator",
696
734
  "IndexPerturbation",
697
735
  "IndexedDataArray",
736
+ "IndexedFieldDataArray",
737
+ "IndexedFieldTimeDataArray",
698
738
  "IndexedFieldVoltageDataArray",
739
+ "IndexedFreqDataArray",
740
+ "IndexedSurfaceFieldDataArray",
741
+ "IndexedSurfaceFieldTimeDataArray",
742
+ "IndexedSurfaceFreqDataArray",
743
+ "IndexedSurfaceTimeDataArray",
699
744
  "IndexedTimeDataArray",
700
745
  "IndexedVoltageDataArray",
701
746
  "InsulatingBC",
@@ -824,6 +869,10 @@ __all__ = [
824
869
  "StructureSimulationBoundary",
825
870
  "StructureStructureInterface",
826
871
  "SubpixelSpec",
872
+ "SurfaceFieldData",
873
+ "SurfaceFieldMonitor",
874
+ "SurfaceFieldTimeData",
875
+ "SurfaceFieldTimeMonitor",
827
876
  "SurfaceImpedance",
828
877
  "SurfaceImpedanceFitterParam",
829
878
  "TemperatureBC",
@@ -834,6 +883,7 @@ __all__ = [
834
883
  "Transformed",
835
884
  "TriangleMesh",
836
885
  "TriangularGridDataset",
886
+ "TriangularSurfaceDataset",
837
887
  "TwoPhotonAbsorption",
838
888
  "UniformCurrentSource",
839
889
  "UniformGrid",
@@ -9,7 +9,7 @@ from tidy3d import Simulation
9
9
  from tidy3d.web import Job
10
10
 
11
11
 
12
- def main(args) -> None:
12
+ def main(args: list[str]) -> None:
13
13
  """Parse args and run the corresponding tidy3d simulaton."""
14
14
 
15
15
  parser = argparse.ArgumentParser(description="Tidy3D")
@@ -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://pydantic-docs.helpmanual.io/usage/models/) which makes them `pydantic` models.
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.nonNegativeInt, ...]
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.json()`
138
- The schema corresponding to `Simulation` can be generated with `Simulation.schema()`
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