pyRFtk 2.0.6__tar.gz → 2.0.8__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 (231) hide show
  1. {pyrftk-2.0.6 → pyrftk-2.0.8}/PKG-INFO +13 -1
  2. {pyrftk-2.0.6 → pyrftk-2.0.8}/README.md +12 -0
  3. {pyrftk-2.0.6 → pyrftk-2.0.8}/pyproject.toml +3 -1
  4. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/ReadTSF.py +10 -6
  5. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/WriteTSF.py +4 -3
  6. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/__init__.py +2 -2
  7. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/config.py +16 -1
  8. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/plotVSWs.py +1 -1
  9. pyrftk-2.0.6/docs/Makefile +0 -20
  10. pyrftk-2.0.6/docs/build/.buildinfo +0 -4
  11. pyrftk-2.0.6/docs/build/.doctrees/Arcs.doctree +0 -0
  12. pyrftk-2.0.6/docs/build/.doctrees/Deembedding.doctree +0 -0
  13. pyrftk-2.0.6/docs/build/.doctrees/Examples.doctree +0 -0
  14. pyrftk-2.0.6/docs/build/.doctrees/Installation.doctree +0 -0
  15. pyrftk-2.0.6/docs/build/.doctrees/Introduction.doctree +0 -0
  16. pyrftk-2.0.6/docs/build/.doctrees/Logging.doctree +0 -0
  17. pyrftk-2.0.6/docs/build/.doctrees/Touchstone.doctree +0 -0
  18. pyrftk-2.0.6/docs/build/.doctrees/Tutorials.doctree +0 -0
  19. pyrftk-2.0.6/docs/build/.doctrees/backup.doctree +0 -0
  20. pyrftk-2.0.6/docs/build/.doctrees/environment.pickle +0 -0
  21. pyrftk-2.0.6/docs/build/.doctrees/index.doctree +0 -0
  22. pyrftk-2.0.6/docs/build/.doctrees/modules.doctree +0 -0
  23. pyrftk-2.0.6/docs/build/.doctrees/pyRFtk.doctree +0 -0
  24. pyrftk-2.0.6/docs/build/.nojekyll +0 -0
  25. pyrftk-2.0.6/docs/build/Arcs.html +0 -103
  26. pyrftk-2.0.6/docs/build/Deembedding.html +0 -192
  27. pyrftk-2.0.6/docs/build/Examples.html +0 -105
  28. pyrftk-2.0.6/docs/build/Installation.html +0 -140
  29. pyrftk-2.0.6/docs/build/Introduction.html +0 -199
  30. pyrftk-2.0.6/docs/build/Logging.html +0 -103
  31. pyrftk-2.0.6/docs/build/Touchstone.html +0 -191
  32. pyrftk-2.0.6/docs/build/Tutorials.html +0 -127
  33. pyrftk-2.0.6/docs/build/_downloads/b90e652aafe314ced71820d596828aed/Tomas-Ref_geo-R=200-Diel_eps=0500.s2p +0 -1010
  34. pyrftk-2.0.6/docs/build/_downloads/bf8243189246eb0547daf197b1578bac/tomas_icrh_linear_2017-vacuum.s2p +0 -1014
  35. pyrftk-2.0.6/docs/build/_images/RLC.png +0 -0
  36. pyrftk-2.0.6/docs/build/_images/RLCSC.png +0 -0
  37. pyrftk-2.0.6/docs/build/_images/SC.png +0 -0
  38. pyrftk-2.0.6/docs/build/_images/SimpleCircuit.png +0 -0
  39. pyrftk-2.0.6/docs/build/_images/TomasCircuit.png +0 -0
  40. pyrftk-2.0.6/docs/build/_sources/Arcs.rst.txt +0 -2
  41. pyrftk-2.0.6/docs/build/_sources/Deembedding.rst.txt +0 -91
  42. pyrftk-2.0.6/docs/build/_sources/Examples.rst.txt +0 -5
  43. pyrftk-2.0.6/docs/build/_sources/Installation.rst.txt +0 -23
  44. pyrftk-2.0.6/docs/build/_sources/Introduction.rst.txt +0 -101
  45. pyrftk-2.0.6/docs/build/_sources/Logging.rst.txt +0 -5
  46. pyrftk-2.0.6/docs/build/_sources/Touchstone.rst.txt +0 -85
  47. pyrftk-2.0.6/docs/build/_sources/Tutorials.rst.txt +0 -7
  48. pyrftk-2.0.6/docs/build/_sources/backup.rst.txt +0 -84
  49. pyrftk-2.0.6/docs/build/_sources/index.rst.txt +0 -24
  50. pyrftk-2.0.6/docs/build/_sources/modules.rst.txt +0 -7
  51. pyrftk-2.0.6/docs/build/_sources/pyRFtk.rst.txt +0 -245
  52. pyrftk-2.0.6/docs/build/_static/_sphinx_javascript_frameworks_compat.js +0 -123
  53. pyrftk-2.0.6/docs/build/_static/alabaster.css +0 -703
  54. pyrftk-2.0.6/docs/build/_static/basic.css +0 -925
  55. pyrftk-2.0.6/docs/build/_static/classic.css +0 -269
  56. pyrftk-2.0.6/docs/build/_static/css/badge_only.css +0 -1
  57. pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  58. pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  59. pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  60. pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  61. pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.eot +0 -0
  62. pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.svg +0 -2671
  63. pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  64. pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.woff +0 -0
  65. pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  66. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold-italic.woff +0 -0
  67. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  68. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold.woff +0 -0
  69. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold.woff2 +0 -0
  70. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal-italic.woff +0 -0
  71. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  72. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal.woff +0 -0
  73. pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal.woff2 +0 -0
  74. pyrftk-2.0.6/docs/build/_static/css/theme.css +0 -4
  75. pyrftk-2.0.6/docs/build/_static/custom.css +0 -1
  76. pyrftk-2.0.6/docs/build/_static/doctools.js +0 -156
  77. pyrftk-2.0.6/docs/build/_static/documentation_options.js +0 -13
  78. pyrftk-2.0.6/docs/build/_static/file.png +0 -0
  79. pyrftk-2.0.6/docs/build/_static/groundwork.css +0 -720
  80. pyrftk-2.0.6/docs/build/_static/gw_logo.png +0 -0
  81. pyrftk-2.0.6/docs/build/_static/jquery.js +0 -2
  82. pyrftk-2.0.6/docs/build/_static/js/badge_only.js +0 -1
  83. pyrftk-2.0.6/docs/build/_static/js/html5shiv-printshiv.min.js +0 -4
  84. pyrftk-2.0.6/docs/build/_static/js/html5shiv.min.js +0 -4
  85. pyrftk-2.0.6/docs/build/_static/js/theme.js +0 -1
  86. pyrftk-2.0.6/docs/build/_static/language_data.js +0 -199
  87. pyrftk-2.0.6/docs/build/_static/minus.png +0 -0
  88. pyrftk-2.0.6/docs/build/_static/plus.png +0 -0
  89. pyrftk-2.0.6/docs/build/_static/pygments.css +0 -75
  90. pyrftk-2.0.6/docs/build/_static/searchtools.js +0 -574
  91. pyrftk-2.0.6/docs/build/_static/sidebar.js +0 -70
  92. pyrftk-2.0.6/docs/build/_static/small_groundwork.css +0 -102
  93. pyrftk-2.0.6/docs/build/_static/sphinx_highlight.js +0 -154
  94. pyrftk-2.0.6/docs/build/backup.html +0 -178
  95. pyrftk-2.0.6/docs/build/doctrees/Deembedding.doctree +0 -0
  96. pyrftk-2.0.6/docs/build/doctrees/Examples.doctree +0 -0
  97. pyrftk-2.0.6/docs/build/doctrees/Installation.doctree +0 -0
  98. pyrftk-2.0.6/docs/build/doctrees/Introduction.doctree +0 -0
  99. pyrftk-2.0.6/docs/build/doctrees/TOMAS.doctree +0 -0
  100. pyrftk-2.0.6/docs/build/doctrees/Touchstone.doctree +0 -0
  101. pyrftk-2.0.6/docs/build/doctrees/Tutorials.doctree +0 -0
  102. pyrftk-2.0.6/docs/build/doctrees/backup.doctree +0 -0
  103. pyrftk-2.0.6/docs/build/doctrees/environment.pickle +0 -0
  104. pyrftk-2.0.6/docs/build/doctrees/index.doctree +0 -0
  105. pyrftk-2.0.6/docs/build/doctrees/modules.doctree +0 -0
  106. pyrftk-2.0.6/docs/build/doctrees/pyRFtk.doctree +0 -0
  107. pyrftk-2.0.6/docs/build/doctrees/usage.doctree +0 -0
  108. pyrftk-2.0.6/docs/build/genindex.html +0 -759
  109. pyrftk-2.0.6/docs/build/html/.buildinfo +0 -4
  110. pyrftk-2.0.6/docs/build/html/.nojekyll +0 -0
  111. pyrftk-2.0.6/docs/build/html/Deembedding.html +0 -174
  112. pyrftk-2.0.6/docs/build/html/Examples.html +0 -90
  113. pyrftk-2.0.6/docs/build/html/Installation.html +0 -147
  114. pyrftk-2.0.6/docs/build/html/Introduction.html +0 -192
  115. pyrftk-2.0.6/docs/build/html/TOMAS.html +0 -102
  116. pyrftk-2.0.6/docs/build/html/Touchstone.html +0 -183
  117. pyrftk-2.0.6/docs/build/html/Tutorials.html +0 -119
  118. pyrftk-2.0.6/docs/build/html/_images/RLC.png +0 -0
  119. pyrftk-2.0.6/docs/build/html/_images/RLCSC.png +0 -0
  120. pyrftk-2.0.6/docs/build/html/_images/SC.png +0 -0
  121. pyrftk-2.0.6/docs/build/html/_images/SimpleCircuit.pdf +0 -0
  122. pyrftk-2.0.6/docs/build/html/_images/SimpleCircuit.png +0 -0
  123. pyrftk-2.0.6/docs/build/html/_images/TOMAS_ICRH_Antenna.png +0 -0
  124. pyrftk-2.0.6/docs/build/html/_images/TOMAS_ICRH_Circuit.png +0 -0
  125. pyrftk-2.0.6/docs/build/html/_images/TomasCircuit.png +0 -0
  126. pyrftk-2.0.6/docs/build/html/_sources/Deembedding.rst.txt +0 -90
  127. pyrftk-2.0.6/docs/build/html/_sources/Examples.rst.txt +0 -5
  128. pyrftk-2.0.6/docs/build/html/_sources/Installation.rst.txt +0 -33
  129. pyrftk-2.0.6/docs/build/html/_sources/Introduction.rst.txt +0 -101
  130. pyrftk-2.0.6/docs/build/html/_sources/TOMAS.rst.txt +0 -13
  131. pyrftk-2.0.6/docs/build/html/_sources/Touchstone.rst.txt +0 -84
  132. pyrftk-2.0.6/docs/build/html/_sources/Tutorials.rst.txt +0 -7
  133. pyrftk-2.0.6/docs/build/html/_sources/backup.rst.txt +0 -84
  134. pyrftk-2.0.6/docs/build/html/_sources/index.rst.txt +0 -24
  135. pyrftk-2.0.6/docs/build/html/_sources/modules.rst.txt +0 -7
  136. pyrftk-2.0.6/docs/build/html/_sources/pyRFtk.rst.txt +0 -245
  137. pyrftk-2.0.6/docs/build/html/_sources/usage.rst.txt +0 -176
  138. pyrftk-2.0.6/docs/build/html/_static/alabaster.css +0 -703
  139. pyrftk-2.0.6/docs/build/html/_static/basic.css +0 -925
  140. pyrftk-2.0.6/docs/build/html/_static/classic.css +0 -269
  141. pyrftk-2.0.6/docs/build/html/_static/custom.css +0 -1
  142. pyrftk-2.0.6/docs/build/html/_static/doctools.js +0 -156
  143. pyrftk-2.0.6/docs/build/html/_static/documentation_options.js +0 -13
  144. pyrftk-2.0.6/docs/build/html/_static/file.png +0 -0
  145. pyrftk-2.0.6/docs/build/html/_static/language_data.js +0 -199
  146. pyrftk-2.0.6/docs/build/html/_static/minus.png +0 -0
  147. pyrftk-2.0.6/docs/build/html/_static/plus.png +0 -0
  148. pyrftk-2.0.6/docs/build/html/_static/pygments.css +0 -75
  149. pyrftk-2.0.6/docs/build/html/_static/searchtools.js +0 -574
  150. pyrftk-2.0.6/docs/build/html/_static/sidebar.js +0 -70
  151. pyrftk-2.0.6/docs/build/html/_static/sphinx_highlight.js +0 -154
  152. pyrftk-2.0.6/docs/build/html/backup.html +0 -165
  153. pyrftk-2.0.6/docs/build/html/genindex.html +0 -738
  154. pyrftk-2.0.6/docs/build/html/index.html +0 -147
  155. pyrftk-2.0.6/docs/build/html/modules.html +0 -305
  156. pyrftk-2.0.6/docs/build/html/objects.inv +0 -0
  157. pyrftk-2.0.6/docs/build/html/py-modindex.html +0 -238
  158. pyrftk-2.0.6/docs/build/html/pyRFtk.html +0 -1581
  159. pyrftk-2.0.6/docs/build/html/search.html +0 -102
  160. pyrftk-2.0.6/docs/build/html/searchindex.js +0 -1
  161. pyrftk-2.0.6/docs/build/html/usage.html +0 -267
  162. pyrftk-2.0.6/docs/build/index.html +0 -142
  163. pyrftk-2.0.6/docs/build/modules.html +0 -320
  164. pyrftk-2.0.6/docs/build/objects.inv +0 -0
  165. pyrftk-2.0.6/docs/build/py-modindex.html +0 -259
  166. pyrftk-2.0.6/docs/build/pyRFtk.html +0 -1377
  167. pyrftk-2.0.6/docs/build/search.html +0 -119
  168. pyrftk-2.0.6/docs/build/searchindex.js +0 -1
  169. pyrftk-2.0.6/docs/make.bat +0 -35
  170. pyrftk-2.0.6/docs/source/Arcs.rst +0 -2
  171. pyrftk-2.0.6/docs/source/Deembedding.rst +0 -91
  172. pyrftk-2.0.6/docs/source/Drawings/SimpleCircuit.odg +0 -0
  173. pyrftk-2.0.6/docs/source/Examples.rst +0 -5
  174. pyrftk-2.0.6/docs/source/Files/Tomas-Ref_geo-R=200-Diel_eps=0500.s2p +0 -1010
  175. pyrftk-2.0.6/docs/source/Files/tomas_icrh_linear_2017-vacuum.s2p +0 -1014
  176. pyrftk-2.0.6/docs/source/Images/RLC.png +0 -0
  177. pyrftk-2.0.6/docs/source/Images/RLCSC.png +0 -0
  178. pyrftk-2.0.6/docs/source/Images/SC.png +0 -0
  179. pyrftk-2.0.6/docs/source/Images/SimpleCircuit.pdf +0 -0
  180. pyrftk-2.0.6/docs/source/Images/SimpleCircuit.png +0 -0
  181. pyrftk-2.0.6/docs/source/Images/TOMAS_ICRH_Antenna.png +0 -0
  182. pyrftk-2.0.6/docs/source/Images/TOMAS_ICRH_Circuit.png +0 -0
  183. pyrftk-2.0.6/docs/source/Images/TomasCircuit.png +0 -0
  184. pyrftk-2.0.6/docs/source/Installation.rst +0 -23
  185. pyrftk-2.0.6/docs/source/Introduction.rst +0 -101
  186. pyrftk-2.0.6/docs/source/Logging.rst +0 -5
  187. pyrftk-2.0.6/docs/source/Touchstone.rst +0 -85
  188. pyrftk-2.0.6/docs/source/Tutorials.rst +0 -7
  189. pyrftk-2.0.6/docs/source/backup.rst +0 -84
  190. pyrftk-2.0.6/docs/source/conf.py +0 -28
  191. pyrftk-2.0.6/docs/source/index.rst +0 -24
  192. pyrftk-2.0.6/docs/source/modules.rst +0 -7
  193. pyrftk-2.0.6/docs/source/pyRFtk.rst +0 -245
  194. pyrftk-2.0.6/tests/WEST_TWA_7s_4_No_FS_protruding.s7p +0 -3256
  195. pyrftk-2.0.6/tests/rfCommon.log +0 -100
  196. pyrftk-2.0.6/tests/routine.sh +0 -3
  197. pyrftk-2.0.6/tests/tests.py +0 -433
  198. {pyrftk-2.0.6 → pyrftk-2.0.8}/.gitignore +0 -0
  199. {pyrftk-2.0.6 → pyrftk-2.0.8}/LICENCE +0 -0
  200. {pyrftk-2.0.6 → pyrftk-2.0.8}/logo/logo.pdf +0 -0
  201. {pyrftk-2.0.6 → pyrftk-2.0.8}/logo/logo.png +0 -0
  202. {pyrftk-2.0.6 → pyrftk-2.0.8}/logo/logo.svg +0 -0
  203. {pyrftk-2.0.6 → pyrftk-2.0.8}/rfCommon.log +0 -0
  204. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/.gitignore +0 -0
  205. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/ConvertGeneral.py +0 -0
  206. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/ReadDictData.py +0 -0
  207. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/S_from_VI.py +0 -0
  208. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/S_from_Y.py +0 -0
  209. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/S_from_Z.py +0 -0
  210. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/Y_from_S.py +0 -0
  211. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/Z_from_S.py +0 -0
  212. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/_check_3D_shape_.py +0 -0
  213. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/circuit.py +0 -0
  214. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/codebase.py +0 -0
  215. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/compareSs.py +0 -0
  216. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/findpath.py +0 -0
  217. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/getlines.py +0 -0
  218. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/maxfun.py +0 -0
  219. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/printMatrices.py +0 -0
  220. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/resolveTLparams.py +0 -0
  221. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfArcObj.py +0 -0
  222. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfBase.py +0 -0
  223. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfCircuit.py +0 -0
  224. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfCoupler.py +0 -0
  225. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfGTL.py +0 -0
  226. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfObject.py +0 -0
  227. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfRLC.py +0 -0
  228. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfTRL.py +0 -0
  229. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/str_dict.py +0 -0
  230. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/tictoc.py +0 -0
  231. {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/whoami.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyRFtk
3
- Version: 2.0.6
3
+ Version: 2.0.8
4
4
  Summary: Design tool for RF antennae networks
5
5
  Project-URL: Homepage, https://lpp-erm-kms.github.io/pyrftk/
6
6
  Author-email: Frederic Durodie <frederic.durodie@rma.ac.be>, Arthur Adriaens <arthur.adriaens@mil.be>
@@ -23,7 +23,19 @@ you can:
23
23
  - Detect Arcs
24
24
  - Deembed systems
25
25
  - ...
26
+
27
+ ## Installation
28
+ pyRFtk is available as a pip package:
29
+
30
+ ```sh
31
+ pip install pyRFtk
32
+ ```
33
+
34
+ Or using your favorite distribution platform
26
35
 
27
36
  ## Authors
28
37
  The code was developed by RF-engineer Frederic Durodie and later
29
38
  on refactored, packaged and documented by Arthur Adriaens
39
+
40
+ ## Example usage
41
+ This code was extensively used for the paper [An automatic matching system for the ICRF antenna at TOMAS: Development and experimental proof](https://doi.org/10.1016/j.fusengdes.2025.114840), the code for which may be found in the examples folder.
@@ -11,7 +11,19 @@ you can:
11
11
  - Detect Arcs
12
12
  - Deembed systems
13
13
  - ...
14
+
15
+ ## Installation
16
+ pyRFtk is available as a pip package:
17
+
18
+ ```sh
19
+ pip install pyRFtk
20
+ ```
21
+
22
+ Or using your favorite distribution platform
14
23
 
15
24
  ## Authors
16
25
  The code was developed by RF-engineer Frederic Durodie and later
17
26
  on refactored, packaged and documented by Arthur Adriaens
27
+
28
+ ## Example usage
29
+ This code was extensively used for the paper [An automatic matching system for the ICRF antenna at TOMAS: Development and experimental proof](https://doi.org/10.1016/j.fusengdes.2025.114840), the code for which may be found in the examples folder.
@@ -3,7 +3,7 @@ requires = ["hatchling","numpy","matplotlib","logging"]
3
3
  build-backend = "hatchling.build"
4
4
  [project]
5
5
  name = "pyRFtk"
6
- version = "2.0.6"
6
+ version = "2.0.8"
7
7
  authors = [
8
8
  { name="Frederic Durodie", email="frederic.durodie@rma.ac.be" },
9
9
  { name="Arthur Adriaens", email="arthur.adriaens@mil.be" },
@@ -17,3 +17,5 @@ classifiers = [
17
17
  ]
18
18
  [project.urls]
19
19
  "Homepage" = "https://lpp-erm-kms.github.io/pyrftk/"
20
+ [tool.hatch.build]
21
+ exclude = ["docs", "tests", "examples"]
@@ -1,4 +1,4 @@
1
- __updated__ = "2024-12-20 14:21:08"
1
+ __updated__ = "2025-01-21 15:58:36"
2
2
 
3
3
  import numpy as np
4
4
  import re
@@ -94,6 +94,7 @@ def ReadTSF(src, **kwargs):
94
94
  )
95
95
 
96
96
  if not got_marker:
97
+ # we effectively started reading the numerical data
97
98
  comments.append('*** DATA MARKER ***')
98
99
  got_marker = len(comments)
99
100
 
@@ -107,7 +108,7 @@ def ReadTSF(src, **kwargs):
107
108
 
108
109
  # analyse the format string:
109
110
  # for unnormalized data (R missing) Zbase is set to None
110
- items = tformat[1:].upper().split()[::-1]
111
+ items = tformat[1:].upper().split()[::-1] # note we reverse the order here
111
112
  datatype, datafmt, funit, Zbase = 'S', 'MA', 'GHZ', None
112
113
  while len(items):
113
114
  kw = items.pop()
@@ -131,17 +132,19 @@ def ReadTSF(src, **kwargs):
131
132
  Zbase = Zlist[0]
132
133
 
133
134
  elif NZ > 1:
134
- debug and tLogger.debug(ident(f'Zbase [{len(Zlist)}] {", ".join([str(z) for z in Zlist])}'))
135
+ debug and tLogger.debug(
136
+ ident(f'Zbase [{len(Zlist)}] {", ".join([str(z) for z in Zlist])}'))
135
137
  Zbase = Zlist
136
138
 
137
139
  else:
138
140
  # this should be flagged as an error in the touchstone
139
141
  Zbase = 50. if TZbase is None else TZbase
140
- debug and tLogger.debug(ident(f'Zbase not specified in R [ERROR]: set to {Zbase}'))
142
+ debug and tLogger.debug(
143
+ ident(f'Zbase not specified in R [ERROR]: set to {Zbase}'))
141
144
  else:
142
145
  raise ValueError('Unrecognized format specification: %r' % kw)
143
146
 
144
- # detect special comments
147
+ # process special comments
145
148
  ports = None
146
149
  part = None
147
150
  numbering = None
@@ -345,7 +348,8 @@ def ReadTSF(src, **kwargs):
345
348
  pass
346
349
 
347
350
  ## do some checking
348
- if nZcs := Zcs.shape[1]:
351
+ nZcs, nZbase = 0, 0
352
+ if len(Zcs) and (nZcs := Zcs.shape[1]):
349
353
  # Zcs (and probably gammas) were present in the file
350
354
  if Zbase is not None:
351
355
  # there was also a R ... in the format
@@ -95,6 +95,7 @@ def WriteTSF(object, path2tsf=None,
95
95
  num_format = ('8.4f', '10.7f', '10.7f')
96
96
 
97
97
  tnumfmt = f'%{num_format[1]} %{num_format[2]} '
98
+ leadspaces = ' '*(1 + int(num_format[0].split('.')[0]))
98
99
 
99
100
  for k,fk in enumerate(fs):
100
101
  s += (f'%{num_format[0]}' % (fk / fscale)) + ' '
@@ -106,7 +107,7 @@ def WriteTSF(object, path2tsf=None,
106
107
  s += tnumfmt % (np.real(dij),np.imag(dij))
107
108
 
108
109
  elif fmt == 'DB':
109
- s += tnumfmt% (20.*np.log10(np.abs(dij)),
110
+ s += tnumfmt % (20.*np.log10(np.abs(dij)),
110
111
  np.angle(dij,1))
111
112
 
112
113
  else: # can only be MA
@@ -115,12 +116,12 @@ def WriteTSF(object, path2tsf=None,
115
116
  if (kc % 4 == 3) and (kc is not nports-1):
116
117
  if kc == 3:
117
118
  s += ' ! row %d' % (kr+1)
118
- s += '\n'+' '*10
119
+ s += '\n' + leadspaces
119
120
 
120
121
  if nports > 2:
121
122
  s += '\n'
122
123
  if kr != nports-1:
123
- s += ' '*9
124
+ s += leadspaces
124
125
 
125
126
  s += '\n'
126
127
 
@@ -1,6 +1,6 @@
1
- __updated__ = "2024-12-20 14:11:19"
1
+ __updated__ = "2025-01-24 07:58:36"
2
2
 
3
- print('\n*** using local copy of pyRFtk ***\n')
3
+ # print('\n*** using local copy of pyRFtk ***\n')
4
4
 
5
5
  from .config import tLogger, setLogLevel, logit, ident, _newID, logident
6
6
  from .rfBase import rfBase
@@ -1,4 +1,4 @@
1
- __updated__ = "2023-04-20 08:40:02"
1
+ __updated__ = "2025-01-16 08:40:30"
2
2
 
3
3
  import time
4
4
  import string
@@ -7,6 +7,8 @@ import logging
7
7
  import inspect
8
8
 
9
9
  import os
10
+ import sys
11
+ import traceback
10
12
  import atexit
11
13
 
12
14
  LOGFILE = 'rfCommon.log'
@@ -53,6 +55,8 @@ def setLogLevel(level):
53
55
  #=-----------------------------------------------------------------------------#
54
56
 
55
57
  setLogLevel(logging.CRITICAL)
58
+ sys_excepthook = sys.excepthook
59
+ # print(f'sys.excepthook = {sys_excepthook}')
56
60
 
57
61
  def CleanUpLogFile():
58
62
  try:
@@ -65,7 +69,18 @@ def CleanUpLogFile():
65
69
  except FileNotFoundError:
66
70
  pass
67
71
 
72
+ def CleanUpLogFile1(type, value, tb):
73
+ print('calling pyRFtk.CleanUpLogFile after program crash')
74
+ CleanUpLogFile()
75
+ traceback_details = "\n".join(traceback.extract_tb(tb).format())
76
+
77
+ msg = f"caller: {type}: {value}\n{traceback_details}"
78
+ print(msg)
79
+ sys.excepthook = sys_excepthook
80
+
81
+
68
82
  atexit.register(CleanUpLogFile)
83
+ sys.excepthook = CleanUpLogFile1
69
84
 
70
85
  #=-----------------------------------------------------------------------------#
71
86
 
@@ -101,7 +101,7 @@ def plotVSWs(VSWs, maxlev=4, Id = None, **kwargs):
101
101
 
102
102
  #= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
103
103
 
104
- def find(BLK, VSW, curdist2=np.Inf, curBLK='', curUp=yp, curX=xp):
104
+ def find(BLK, VSW, curdist2=np.inf, curBLK='', curUp=yp, curX=xp):
105
105
  _debug_ and tLogger.debug(ident(
106
106
  f'> [find] BLK= {BLK}, '
107
107
  f'VSW= {[_ for _ in VSW] if isinstance(VSW, dict) else type(VSW)}, '
@@ -1,20 +0,0 @@
1
- # Minimal makefile for Sphinx documentation
2
- #
3
-
4
- # You can set these variables from the command line, and also
5
- # from the environment for the first two.
6
- SPHINXOPTS ?=
7
- SPHINXBUILD ?= sphinx-build
8
- SOURCEDIR = source
9
- BUILDDIR = build
10
-
11
- # Put it first so that "make" without argument is like "make help".
12
- help:
13
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
-
15
- .PHONY: help Makefile
16
-
17
- # Catch-all target: route all unknown targets to Sphinx using the new
18
- # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
- %: Makefile
20
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -1,4 +0,0 @@
1
- # Sphinx build info version 1
2
- # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3
- config: cb251cce34174a1cdced4cac6de7a8a9
4
- tags: 645f666f9bcd5a90fca523b33c5a78b7
File without changes
@@ -1,103 +0,0 @@
1
- <!DOCTYPE html>
2
- <html class="writer-html5" lang="en" >
3
- <head>
4
- <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
5
-
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>Arc Detection &mdash; pyRFtk 2.0.0 documentation</title>
8
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
9
- <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
10
- <!--[if lt IE 9]>
11
- <script src="_static/js/html5shiv.min.js"></script>
12
- <![endif]-->
13
-
14
- <script src="_static/jquery.js?v=5d32c60e"></script>
15
- <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
16
- <script src="_static/documentation_options.js?v=51b770b3"></script>
17
- <script src="_static/doctools.js?v=888ff710"></script>
18
- <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
19
- <script src="_static/js/theme.js"></script>
20
- <link rel="index" title="Index" href="genindex.html" />
21
- <link rel="search" title="Search" href="search.html" />
22
- </head>
23
-
24
- <body class="wy-body-for-nav">
25
- <div class="wy-grid-for-nav">
26
- <nav data-toggle="wy-nav-shift" class="wy-nav-side">
27
- <div class="wy-side-scroll">
28
- <div class="wy-side-nav-search" >
29
-
30
-
31
-
32
- <a href="index.html" class="icon icon-home">
33
- pyRFtk
34
- </a>
35
- <div role="search">
36
- <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
37
- <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
38
- <input type="hidden" name="check_keywords" value="yes" />
39
- <input type="hidden" name="area" value="default" />
40
- </form>
41
- </div>
42
- </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
43
- <ul>
44
- <li class="toctree-l1"><a class="reference internal" href="Tutorials.html">Tutorials</a></li>
45
- </ul>
46
-
47
- </div>
48
- </div>
49
- </nav>
50
-
51
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
52
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
53
- <a href="index.html">pyRFtk</a>
54
- </nav>
55
-
56
- <div class="wy-nav-content">
57
- <div class="rst-content">
58
- <div role="navigation" aria-label="Page navigation">
59
- <ul class="wy-breadcrumbs">
60
- <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
61
- <li class="breadcrumb-item active">Arc Detection</li>
62
- <li class="wy-breadcrumbs-aside">
63
- <a href="_sources/Arcs.rst.txt" rel="nofollow"> View page source</a>
64
- </li>
65
- </ul>
66
- <hr/>
67
- </div>
68
- <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
69
- <div itemprop="articleBody">
70
-
71
- <section id="arc-detection">
72
- <h1>Arc Detection<a class="headerlink" href="#arc-detection" title="Link to this heading"></a></h1>
73
- </section>
74
-
75
-
76
- </div>
77
- </div>
78
- <footer>
79
-
80
- <hr/>
81
-
82
- <div role="contentinfo">
83
- <p>&#169; Copyright 2023, Frederic Durodie and Arthur Adriaens.</p>
84
- </div>
85
-
86
- Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
87
- <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
88
- provided by <a href="https://readthedocs.org">Read the Docs</a>.
89
-
90
-
91
- </footer>
92
- </div>
93
- </div>
94
- </section>
95
- </div>
96
- <script>
97
- jQuery(function () {
98
- SphinxRtdTheme.Navigation.enable(true);
99
- });
100
- </script>
101
-
102
- </body>
103
- </html>
@@ -1,192 +0,0 @@
1
- <!DOCTYPE html>
2
- <html class="writer-html5" lang="en" >
3
- <head>
4
- <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
5
-
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>Deembedding &mdash; pyRFtk 2.0.0 documentation</title>
8
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
9
- <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
10
- <!--[if lt IE 9]>
11
- <script src="_static/js/html5shiv.min.js"></script>
12
- <![endif]-->
13
-
14
- <script src="_static/jquery.js?v=5d32c60e"></script>
15
- <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
16
- <script src="_static/documentation_options.js?v=51b770b3"></script>
17
- <script src="_static/doctools.js?v=888ff710"></script>
18
- <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
19
- <script src="_static/js/theme.js"></script>
20
- <link rel="index" title="Index" href="genindex.html" />
21
- <link rel="search" title="Search" href="search.html" />
22
- <link rel="prev" title="Touchstone files" href="Touchstone.html" />
23
- </head>
24
-
25
- <body class="wy-body-for-nav">
26
- <div class="wy-grid-for-nav">
27
- <nav data-toggle="wy-nav-shift" class="wy-nav-side">
28
- <div class="wy-side-scroll">
29
- <div class="wy-side-nav-search" >
30
-
31
-
32
-
33
- <a href="index.html" class="icon icon-home">
34
- pyRFtk
35
- </a>
36
- <div role="search">
37
- <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
38
- <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
39
- <input type="hidden" name="check_keywords" value="yes" />
40
- <input type="hidden" name="area" value="default" />
41
- </form>
42
- </div>
43
- </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
44
- <ul class="current">
45
- <li class="toctree-l1 current"><a class="reference internal" href="Tutorials.html">Tutorials</a><ul class="current">
46
- <li class="toctree-l2"><a class="reference internal" href="Installation.html">Installation</a></li>
47
- <li class="toctree-l2"><a class="reference internal" href="Introduction.html">Introduction</a></li>
48
- <li class="toctree-l2"><a class="reference internal" href="Touchstone.html">Touchstone files</a></li>
49
- <li class="toctree-l2 current"><a class="current reference internal" href="#">Deembedding</a></li>
50
- </ul>
51
- </li>
52
- </ul>
53
-
54
- </div>
55
- </div>
56
- </nav>
57
-
58
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
59
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
60
- <a href="index.html">pyRFtk</a>
61
- </nav>
62
-
63
- <div class="wy-nav-content">
64
- <div class="rst-content">
65
- <div role="navigation" aria-label="Page navigation">
66
- <ul class="wy-breadcrumbs">
67
- <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
68
- <li class="breadcrumb-item"><a href="Tutorials.html">Tutorials</a></li>
69
- <li class="breadcrumb-item active">Deembedding</li>
70
- <li class="wy-breadcrumbs-aside">
71
- <a href="_sources/Deembedding.rst.txt" rel="nofollow"> View page source</a>
72
- </li>
73
- </ul>
74
- <hr/>
75
- </div>
76
- <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
77
- <div itemprop="articleBody">
78
-
79
- <section id="deembedding">
80
- <h1>Deembedding<a class="headerlink" href="#deembedding" title="Link to this heading"></a></h1>
81
- <dl>
82
- <dt><strong>De-embedding</strong></dt><dd><p>“De-embedding is a post-measurement process to minimize errors and reveal information about the device under test. When there is a composite measurement of a device under test or fixture combination, you can use de-embedding to isolate the performance of the fixture and extract (de-embed) the fixture from the measurements.”</p>
83
- <p>“De-embedding is mathematically removing the measurements affected by the fixture leaving only the behavior of the device under test. This is commonly used when there are non-coaxial connection from the VNA to the DUT, and it is used on circuit board traces, backplane channels, semiconductor packages, connectors or other discrete components.”</p>
84
- <p>-Andreas Henkel, Product Management for Network Analysis - Rohde &amp; Schwarz</p>
85
- </dd>
86
- </dl>
87
- <p>What this means in the context of our software is the following:</p>
88
- <p>Say we have a circuit structure as follows:</p>
89
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">+-------------------------------------------------+</span>
90
- <span class="o">|</span> <span class="n">Sexternal</span> <span class="o">|</span>
91
- <span class="o">|</span> <span class="o">|</span>
92
- <span class="o">|</span> <span class="o">+-------------+</span> <span class="o">|</span>
93
- <span class="o">|</span> <span class="o">|</span> <span class="n">Sinternal</span> <span class="o">|</span> <span class="o">|</span>
94
- <span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">----------------------------</span><span class="p">(</span> <span class="p">)</span>
95
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
96
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
97
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
98
- <span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">----------------------------</span><span class="p">(</span> <span class="p">)</span>
99
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
100
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">+---------+</span> <span class="o">|</span>
101
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="n">Deembed</span> <span class="o">|</span> <span class="o">|</span>
102
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
103
- <span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">-------</span><span class="p">(</span> <span class="p">)</span> <span class="p">(</span> <span class="p">)</span><span class="o">--------</span><span class="p">(</span> <span class="p">)</span>
104
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
105
- <span class="o">|</span> <span class="o">|</span> <span class="n">ip</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="n">dpi</span> <span class="n">dpe</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="n">ep</span>
106
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
107
- <span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">-------</span><span class="p">(</span> <span class="p">)</span> <span class="p">(</span> <span class="p">)</span><span class="o">--------</span><span class="p">(</span> <span class="p">)</span>
108
- <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
109
- <span class="o">|</span> <span class="o">+-------------+</span> <span class="o">+---------+</span> <span class="o">|</span>
110
- <span class="o">|</span> <span class="o">|</span>
111
- <span class="o">+-------------------------------------------------+</span>
112
- </pre></div>
113
- </div>
114
- <p>Here we know the scatter matrices Sexternal (SE) and Deembed (SD), and we want to find the scatter matrix of the internal
115
- component: Sinternal (SI).</p>
116
- <p>IntPorts = {dpi:ip, …}
117
- ExtPorts = {dpe:ep, …}</p>
118
- <p>We may use the ‘deembed’ function in the rfCircuit object to solve for</p>
119
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">+-------------+</span>
120
- <span class="o">|</span> <span class="n">Sinternal</span> <span class="o">|</span>
121
- <span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
122
- <span class="o">|</span> <span class="o">|</span>
123
- <span class="o">|</span> <span class="o">|</span>
124
- <span class="o">|</span> <span class="o">|</span>
125
- <span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
126
- <span class="o">|</span> <span class="o">|</span>
127
- <span class="o">|</span> <span class="o">|</span>
128
- <span class="o">|</span> <span class="o">|</span>
129
- <span class="o">|</span> <span class="o">|</span>
130
- <span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
131
- <span class="o">|</span> <span class="o">|</span>
132
- <span class="o">|</span> <span class="n">ip</span> <span class="o">|</span>
133
- <span class="o">|</span> <span class="o">|</span>
134
- <span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
135
- <span class="o">|</span> <span class="o">|</span>
136
- <span class="o">+-------------+</span>
137
- </pre></div>
138
- </div>
139
- <p>As an example we’ll use the TOMAS ICRH system again,
140
- the strap of the antenna has been
141
- <a class="reference download internal" download="" href="_downloads/b90e652aafe314ced71820d596828aed/Tomas-Ref_geo-R%3D200-Diel_eps%3D0500.s2p"><code class="xref download docutils literal notranslate"><span class="pre">measured</span></code></a>
142
- together with two pieces of TL, we can deembed it as follows:</p>
143
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">A2Ca1_L</span> <span class="o">=</span> <span class="mf">0.1715</span>
144
- <span class="n">A2Ca1_Z</span> <span class="o">=</span> <span class="mi">50</span>
145
- <span class="n">T2Cs1_L</span> <span class="o">=</span> <span class="mf">0.121</span>
146
- <span class="n">T2Cs1_Z</span> <span class="o">=</span> <span class="mi">50</span>
147
-
148
- <span class="n">tsStrap</span> <span class="o">=</span> <span class="s1">&#39;Tomas-Ref_geo-R=200-Diel_eps=0500.s2p&#39;</span>
149
-
150
-
151
- <span class="n">strap</span> <span class="o">=</span> <span class="n">rfObject</span><span class="p">(</span><span class="n">touchstone</span><span class="o">=</span><span class="n">tsStrap</span><span class="p">,</span> <span class="n">ports</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;cap&#39;</span><span class="p">,</span><span class="s1">&#39;t&#39;</span><span class="p">])</span>
152
-
153
- <span class="k">if</span> <span class="n">strap</span><span class="o">.</span><span class="n">fs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mf">0.</span><span class="p">:</span>
154
- <span class="n">strap</span><span class="o">.</span><span class="n">fs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1e-3</span> <span class="c1"># avoid divisions by 0 at 0 Hz in deembed</span>
155
-
156
- <span class="n">strap</span><span class="o">.</span><span class="n">deembed</span><span class="p">({</span><span class="s1">&#39;cap&#39;</span><span class="p">:(</span><span class="n">A2Ca1_L</span><span class="p">,</span> <span class="n">A2Ca1_Z</span><span class="p">),</span>
157
- <span class="s1">&#39;t&#39;</span> <span class="p">:(</span><span class="n">T2Cs1_L</span><span class="p">,</span> <span class="n">T2Cs1_Z</span><span class="p">)})</span>
158
- </pre></div>
159
- </div>
160
- </section>
161
-
162
-
163
- </div>
164
- </div>
165
- <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
166
- <a href="Touchstone.html" class="btn btn-neutral float-left" title="Touchstone files" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
167
- </div>
168
-
169
- <hr/>
170
-
171
- <div role="contentinfo">
172
- <p>&#169; Copyright 2023, Frederic Durodie and Arthur Adriaens.</p>
173
- </div>
174
-
175
- Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
176
- <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
177
- provided by <a href="https://readthedocs.org">Read the Docs</a>.
178
-
179
-
180
- </footer>
181
- </div>
182
- </div>
183
- </section>
184
- </div>
185
- <script>
186
- jQuery(function () {
187
- SphinxRtdTheme.Navigation.enable(true);
188
- });
189
- </script>
190
-
191
- </body>
192
- </html>