osiris-utils 1.1.4__py3-none-any.whl → 1.1.7__py3-none-any.whl

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 (1061) hide show
  1. docs/source/_static/custom.css +53 -0
  2. docs/source/_static/quick_start_ez.png +0 -0
  3. docs/source/api/postprocess.rst +609 -0
  4. docs/source/api/sim_diag.rst +257 -0
  5. docs/source/api/utilities.rst +254 -0
  6. docs/source/conf.py +188 -0
  7. docs/source/contrib.rst +1 -0
  8. docs/source/index.rst +35 -0
  9. examples/edited-deck.1d +107 -0
  10. examples/example_Derivatives.ipynb +167 -0
  11. examples/example_FFT.ipynb +235 -0
  12. examples/example_InputDeck.ipynb +520 -0
  13. examples/example_Simulation_Diagnostic.ipynb +379 -0
  14. examples/example_data/HIST/fld_ene +256 -0
  15. examples/example_data/HIST/par01_ene +256 -0
  16. examples/example_data/HIST/par01_temp +255 -0
  17. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000000.h5 +0 -0
  18. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000001.h5 +0 -0
  19. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000002.h5 +0 -0
  20. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000003.h5 +0 -0
  21. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000004.h5 +0 -0
  22. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000005.h5 +0 -0
  23. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000006.h5 +0 -0
  24. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000007.h5 +0 -0
  25. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000008.h5 +0 -0
  26. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000009.h5 +0 -0
  27. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000010.h5 +0 -0
  28. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000011.h5 +0 -0
  29. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000012.h5 +0 -0
  30. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000013.h5 +0 -0
  31. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000014.h5 +0 -0
  32. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000015.h5 +0 -0
  33. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000016.h5 +0 -0
  34. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000017.h5 +0 -0
  35. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000018.h5 +0 -0
  36. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000019.h5 +0 -0
  37. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000020.h5 +0 -0
  38. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000021.h5 +0 -0
  39. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000022.h5 +0 -0
  40. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000023.h5 +0 -0
  41. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000024.h5 +0 -0
  42. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000025.h5 +0 -0
  43. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000026.h5 +0 -0
  44. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000027.h5 +0 -0
  45. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000028.h5 +0 -0
  46. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000029.h5 +0 -0
  47. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000030.h5 +0 -0
  48. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000031.h5 +0 -0
  49. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000032.h5 +0 -0
  50. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000033.h5 +0 -0
  51. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000034.h5 +0 -0
  52. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000035.h5 +0 -0
  53. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000036.h5 +0 -0
  54. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000037.h5 +0 -0
  55. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000038.h5 +0 -0
  56. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000039.h5 +0 -0
  57. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000040.h5 +0 -0
  58. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000041.h5 +0 -0
  59. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000042.h5 +0 -0
  60. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000043.h5 +0 -0
  61. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000044.h5 +0 -0
  62. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000045.h5 +0 -0
  63. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000046.h5 +0 -0
  64. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000047.h5 +0 -0
  65. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000048.h5 +0 -0
  66. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000049.h5 +0 -0
  67. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000050.h5 +0 -0
  68. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000051.h5 +0 -0
  69. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000052.h5 +0 -0
  70. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000053.h5 +0 -0
  71. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000054.h5 +0 -0
  72. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000055.h5 +0 -0
  73. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000056.h5 +0 -0
  74. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000057.h5 +0 -0
  75. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000058.h5 +0 -0
  76. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000059.h5 +0 -0
  77. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000060.h5 +0 -0
  78. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000061.h5 +0 -0
  79. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000062.h5 +0 -0
  80. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000063.h5 +0 -0
  81. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000064.h5 +0 -0
  82. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000065.h5 +0 -0
  83. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000066.h5 +0 -0
  84. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000067.h5 +0 -0
  85. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000068.h5 +0 -0
  86. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000069.h5 +0 -0
  87. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000070.h5 +0 -0
  88. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000071.h5 +0 -0
  89. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000072.h5 +0 -0
  90. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000073.h5 +0 -0
  91. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000074.h5 +0 -0
  92. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000075.h5 +0 -0
  93. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000076.h5 +0 -0
  94. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000077.h5 +0 -0
  95. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000078.h5 +0 -0
  96. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000079.h5 +0 -0
  97. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000080.h5 +0 -0
  98. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000081.h5 +0 -0
  99. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000082.h5 +0 -0
  100. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000083.h5 +0 -0
  101. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000084.h5 +0 -0
  102. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000085.h5 +0 -0
  103. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000086.h5 +0 -0
  104. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000087.h5 +0 -0
  105. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000088.h5 +0 -0
  106. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000089.h5 +0 -0
  107. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000090.h5 +0 -0
  108. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000091.h5 +0 -0
  109. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000092.h5 +0 -0
  110. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000093.h5 +0 -0
  111. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000094.h5 +0 -0
  112. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000095.h5 +0 -0
  113. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000096.h5 +0 -0
  114. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000097.h5 +0 -0
  115. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000098.h5 +0 -0
  116. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000099.h5 +0 -0
  117. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000100.h5 +0 -0
  118. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000101.h5 +0 -0
  119. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000102.h5 +0 -0
  120. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000103.h5 +0 -0
  121. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000104.h5 +0 -0
  122. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000105.h5 +0 -0
  123. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000106.h5 +0 -0
  124. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000107.h5 +0 -0
  125. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000108.h5 +0 -0
  126. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000109.h5 +0 -0
  127. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000110.h5 +0 -0
  128. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000111.h5 +0 -0
  129. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000112.h5 +0 -0
  130. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000113.h5 +0 -0
  131. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000114.h5 +0 -0
  132. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000115.h5 +0 -0
  133. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000116.h5 +0 -0
  134. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000117.h5 +0 -0
  135. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000118.h5 +0 -0
  136. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000119.h5 +0 -0
  137. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000120.h5 +0 -0
  138. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000121.h5 +0 -0
  139. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000122.h5 +0 -0
  140. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000123.h5 +0 -0
  141. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000124.h5 +0 -0
  142. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000125.h5 +0 -0
  143. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000126.h5 +0 -0
  144. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000127.h5 +0 -0
  145. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000128.h5 +0 -0
  146. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000129.h5 +0 -0
  147. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000130.h5 +0 -0
  148. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000131.h5 +0 -0
  149. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000132.h5 +0 -0
  150. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000133.h5 +0 -0
  151. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000134.h5 +0 -0
  152. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000135.h5 +0 -0
  153. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000136.h5 +0 -0
  154. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000137.h5 +0 -0
  155. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000138.h5 +0 -0
  156. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000139.h5 +0 -0
  157. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000140.h5 +0 -0
  158. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000141.h5 +0 -0
  159. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000142.h5 +0 -0
  160. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000143.h5 +0 -0
  161. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000144.h5 +0 -0
  162. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000145.h5 +0 -0
  163. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000146.h5 +0 -0
  164. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000147.h5 +0 -0
  165. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000148.h5 +0 -0
  166. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000149.h5 +0 -0
  167. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000150.h5 +0 -0
  168. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000151.h5 +0 -0
  169. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000152.h5 +0 -0
  170. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000153.h5 +0 -0
  171. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000154.h5 +0 -0
  172. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000155.h5 +0 -0
  173. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000156.h5 +0 -0
  174. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000157.h5 +0 -0
  175. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000158.h5 +0 -0
  176. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000159.h5 +0 -0
  177. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000160.h5 +0 -0
  178. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000161.h5 +0 -0
  179. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000162.h5 +0 -0
  180. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000163.h5 +0 -0
  181. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000164.h5 +0 -0
  182. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000165.h5 +0 -0
  183. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000166.h5 +0 -0
  184. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000167.h5 +0 -0
  185. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000168.h5 +0 -0
  186. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000169.h5 +0 -0
  187. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000170.h5 +0 -0
  188. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000171.h5 +0 -0
  189. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000172.h5 +0 -0
  190. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000173.h5 +0 -0
  191. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000174.h5 +0 -0
  192. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000175.h5 +0 -0
  193. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000176.h5 +0 -0
  194. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000177.h5 +0 -0
  195. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000178.h5 +0 -0
  196. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000179.h5 +0 -0
  197. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000180.h5 +0 -0
  198. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000181.h5 +0 -0
  199. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000182.h5 +0 -0
  200. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000183.h5 +0 -0
  201. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000184.h5 +0 -0
  202. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000185.h5 +0 -0
  203. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000186.h5 +0 -0
  204. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000187.h5 +0 -0
  205. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000188.h5 +0 -0
  206. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000189.h5 +0 -0
  207. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000190.h5 +0 -0
  208. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000191.h5 +0 -0
  209. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000192.h5 +0 -0
  210. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000193.h5 +0 -0
  211. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000194.h5 +0 -0
  212. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000195.h5 +0 -0
  213. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000196.h5 +0 -0
  214. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000197.h5 +0 -0
  215. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000198.h5 +0 -0
  216. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000199.h5 +0 -0
  217. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000200.h5 +0 -0
  218. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000201.h5 +0 -0
  219. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000202.h5 +0 -0
  220. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000203.h5 +0 -0
  221. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000204.h5 +0 -0
  222. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000205.h5 +0 -0
  223. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000206.h5 +0 -0
  224. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000207.h5 +0 -0
  225. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000208.h5 +0 -0
  226. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000209.h5 +0 -0
  227. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000210.h5 +0 -0
  228. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000211.h5 +0 -0
  229. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000212.h5 +0 -0
  230. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000213.h5 +0 -0
  231. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000214.h5 +0 -0
  232. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000215.h5 +0 -0
  233. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000216.h5 +0 -0
  234. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000217.h5 +0 -0
  235. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000218.h5 +0 -0
  236. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000219.h5 +0 -0
  237. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000220.h5 +0 -0
  238. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000221.h5 +0 -0
  239. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000222.h5 +0 -0
  240. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000223.h5 +0 -0
  241. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000224.h5 +0 -0
  242. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000225.h5 +0 -0
  243. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000226.h5 +0 -0
  244. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000227.h5 +0 -0
  245. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000228.h5 +0 -0
  246. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000229.h5 +0 -0
  247. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000230.h5 +0 -0
  248. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000231.h5 +0 -0
  249. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000232.h5 +0 -0
  250. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000233.h5 +0 -0
  251. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000234.h5 +0 -0
  252. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000235.h5 +0 -0
  253. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000236.h5 +0 -0
  254. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000237.h5 +0 -0
  255. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000238.h5 +0 -0
  256. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000239.h5 +0 -0
  257. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000240.h5 +0 -0
  258. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000241.h5 +0 -0
  259. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000242.h5 +0 -0
  260. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000243.h5 +0 -0
  261. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000244.h5 +0 -0
  262. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000245.h5 +0 -0
  263. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000246.h5 +0 -0
  264. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000247.h5 +0 -0
  265. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000248.h5 +0 -0
  266. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000249.h5 +0 -0
  267. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000250.h5 +0 -0
  268. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000251.h5 +0 -0
  269. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000252.h5 +0 -0
  270. examples/example_data/MS/DENSITY/electrons/charge/charge-electrons-000253.h5 +0 -0
  271. examples/example_data/MS/FLD/e3/e3-000000.h5 +0 -0
  272. examples/example_data/MS/FLD/e3/e3-000001.h5 +0 -0
  273. examples/example_data/MS/FLD/e3/e3-000002.h5 +0 -0
  274. examples/example_data/MS/FLD/e3/e3-000003.h5 +0 -0
  275. examples/example_data/MS/FLD/e3/e3-000004.h5 +0 -0
  276. examples/example_data/MS/FLD/e3/e3-000005.h5 +0 -0
  277. examples/example_data/MS/FLD/e3/e3-000006.h5 +0 -0
  278. examples/example_data/MS/FLD/e3/e3-000007.h5 +0 -0
  279. examples/example_data/MS/FLD/e3/e3-000008.h5 +0 -0
  280. examples/example_data/MS/FLD/e3/e3-000009.h5 +0 -0
  281. examples/example_data/MS/FLD/e3/e3-000010.h5 +0 -0
  282. examples/example_data/MS/FLD/e3/e3-000011.h5 +0 -0
  283. examples/example_data/MS/FLD/e3/e3-000012.h5 +0 -0
  284. examples/example_data/MS/FLD/e3/e3-000013.h5 +0 -0
  285. examples/example_data/MS/FLD/e3/e3-000014.h5 +0 -0
  286. examples/example_data/MS/FLD/e3/e3-000015.h5 +0 -0
  287. examples/example_data/MS/FLD/e3/e3-000016.h5 +0 -0
  288. examples/example_data/MS/FLD/e3/e3-000017.h5 +0 -0
  289. examples/example_data/MS/FLD/e3/e3-000018.h5 +0 -0
  290. examples/example_data/MS/FLD/e3/e3-000019.h5 +0 -0
  291. examples/example_data/MS/FLD/e3/e3-000020.h5 +0 -0
  292. examples/example_data/MS/FLD/e3/e3-000021.h5 +0 -0
  293. examples/example_data/MS/FLD/e3/e3-000022.h5 +0 -0
  294. examples/example_data/MS/FLD/e3/e3-000023.h5 +0 -0
  295. examples/example_data/MS/FLD/e3/e3-000024.h5 +0 -0
  296. examples/example_data/MS/FLD/e3/e3-000025.h5 +0 -0
  297. examples/example_data/MS/FLD/e3/e3-000026.h5 +0 -0
  298. examples/example_data/MS/FLD/e3/e3-000027.h5 +0 -0
  299. examples/example_data/MS/FLD/e3/e3-000028.h5 +0 -0
  300. examples/example_data/MS/FLD/e3/e3-000029.h5 +0 -0
  301. examples/example_data/MS/FLD/e3/e3-000030.h5 +0 -0
  302. examples/example_data/MS/FLD/e3/e3-000031.h5 +0 -0
  303. examples/example_data/MS/FLD/e3/e3-000032.h5 +0 -0
  304. examples/example_data/MS/FLD/e3/e3-000033.h5 +0 -0
  305. examples/example_data/MS/FLD/e3/e3-000034.h5 +0 -0
  306. examples/example_data/MS/FLD/e3/e3-000035.h5 +0 -0
  307. examples/example_data/MS/FLD/e3/e3-000036.h5 +0 -0
  308. examples/example_data/MS/FLD/e3/e3-000037.h5 +0 -0
  309. examples/example_data/MS/FLD/e3/e3-000038.h5 +0 -0
  310. examples/example_data/MS/FLD/e3/e3-000039.h5 +0 -0
  311. examples/example_data/MS/FLD/e3/e3-000040.h5 +0 -0
  312. examples/example_data/MS/FLD/e3/e3-000041.h5 +0 -0
  313. examples/example_data/MS/FLD/e3/e3-000042.h5 +0 -0
  314. examples/example_data/MS/FLD/e3/e3-000043.h5 +0 -0
  315. examples/example_data/MS/FLD/e3/e3-000044.h5 +0 -0
  316. examples/example_data/MS/FLD/e3/e3-000045.h5 +0 -0
  317. examples/example_data/MS/FLD/e3/e3-000046.h5 +0 -0
  318. examples/example_data/MS/FLD/e3/e3-000047.h5 +0 -0
  319. examples/example_data/MS/FLD/e3/e3-000048.h5 +0 -0
  320. examples/example_data/MS/FLD/e3/e3-000049.h5 +0 -0
  321. examples/example_data/MS/FLD/e3/e3-000050.h5 +0 -0
  322. examples/example_data/MS/FLD/e3/e3-000051.h5 +0 -0
  323. examples/example_data/MS/FLD/e3/e3-000052.h5 +0 -0
  324. examples/example_data/MS/FLD/e3/e3-000053.h5 +0 -0
  325. examples/example_data/MS/FLD/e3/e3-000054.h5 +0 -0
  326. examples/example_data/MS/FLD/e3/e3-000055.h5 +0 -0
  327. examples/example_data/MS/FLD/e3/e3-000056.h5 +0 -0
  328. examples/example_data/MS/FLD/e3/e3-000057.h5 +0 -0
  329. examples/example_data/MS/FLD/e3/e3-000058.h5 +0 -0
  330. examples/example_data/MS/FLD/e3/e3-000059.h5 +0 -0
  331. examples/example_data/MS/FLD/e3/e3-000060.h5 +0 -0
  332. examples/example_data/MS/FLD/e3/e3-000061.h5 +0 -0
  333. examples/example_data/MS/FLD/e3/e3-000062.h5 +0 -0
  334. examples/example_data/MS/FLD/e3/e3-000063.h5 +0 -0
  335. examples/example_data/MS/FLD/e3/e3-000064.h5 +0 -0
  336. examples/example_data/MS/FLD/e3/e3-000065.h5 +0 -0
  337. examples/example_data/MS/FLD/e3/e3-000066.h5 +0 -0
  338. examples/example_data/MS/FLD/e3/e3-000067.h5 +0 -0
  339. examples/example_data/MS/FLD/e3/e3-000068.h5 +0 -0
  340. examples/example_data/MS/FLD/e3/e3-000069.h5 +0 -0
  341. examples/example_data/MS/FLD/e3/e3-000070.h5 +0 -0
  342. examples/example_data/MS/FLD/e3/e3-000071.h5 +0 -0
  343. examples/example_data/MS/FLD/e3/e3-000072.h5 +0 -0
  344. examples/example_data/MS/FLD/e3/e3-000073.h5 +0 -0
  345. examples/example_data/MS/FLD/e3/e3-000074.h5 +0 -0
  346. examples/example_data/MS/FLD/e3/e3-000075.h5 +0 -0
  347. examples/example_data/MS/FLD/e3/e3-000076.h5 +0 -0
  348. examples/example_data/MS/FLD/e3/e3-000077.h5 +0 -0
  349. examples/example_data/MS/FLD/e3/e3-000078.h5 +0 -0
  350. examples/example_data/MS/FLD/e3/e3-000079.h5 +0 -0
  351. examples/example_data/MS/FLD/e3/e3-000080.h5 +0 -0
  352. examples/example_data/MS/FLD/e3/e3-000081.h5 +0 -0
  353. examples/example_data/MS/FLD/e3/e3-000082.h5 +0 -0
  354. examples/example_data/MS/FLD/e3/e3-000083.h5 +0 -0
  355. examples/example_data/MS/FLD/e3/e3-000084.h5 +0 -0
  356. examples/example_data/MS/FLD/e3/e3-000085.h5 +0 -0
  357. examples/example_data/MS/FLD/e3/e3-000086.h5 +0 -0
  358. examples/example_data/MS/FLD/e3/e3-000087.h5 +0 -0
  359. examples/example_data/MS/FLD/e3/e3-000088.h5 +0 -0
  360. examples/example_data/MS/FLD/e3/e3-000089.h5 +0 -0
  361. examples/example_data/MS/FLD/e3/e3-000090.h5 +0 -0
  362. examples/example_data/MS/FLD/e3/e3-000091.h5 +0 -0
  363. examples/example_data/MS/FLD/e3/e3-000092.h5 +0 -0
  364. examples/example_data/MS/FLD/e3/e3-000093.h5 +0 -0
  365. examples/example_data/MS/FLD/e3/e3-000094.h5 +0 -0
  366. examples/example_data/MS/FLD/e3/e3-000095.h5 +0 -0
  367. examples/example_data/MS/FLD/e3/e3-000096.h5 +0 -0
  368. examples/example_data/MS/FLD/e3/e3-000097.h5 +0 -0
  369. examples/example_data/MS/FLD/e3/e3-000098.h5 +0 -0
  370. examples/example_data/MS/FLD/e3/e3-000099.h5 +0 -0
  371. examples/example_data/MS/FLD/e3/e3-000100.h5 +0 -0
  372. examples/example_data/MS/FLD/e3/e3-000101.h5 +0 -0
  373. examples/example_data/MS/FLD/e3/e3-000102.h5 +0 -0
  374. examples/example_data/MS/FLD/e3/e3-000103.h5 +0 -0
  375. examples/example_data/MS/FLD/e3/e3-000104.h5 +0 -0
  376. examples/example_data/MS/FLD/e3/e3-000105.h5 +0 -0
  377. examples/example_data/MS/FLD/e3/e3-000106.h5 +0 -0
  378. examples/example_data/MS/FLD/e3/e3-000107.h5 +0 -0
  379. examples/example_data/MS/FLD/e3/e3-000108.h5 +0 -0
  380. examples/example_data/MS/FLD/e3/e3-000109.h5 +0 -0
  381. examples/example_data/MS/FLD/e3/e3-000110.h5 +0 -0
  382. examples/example_data/MS/FLD/e3/e3-000111.h5 +0 -0
  383. examples/example_data/MS/FLD/e3/e3-000112.h5 +0 -0
  384. examples/example_data/MS/FLD/e3/e3-000113.h5 +0 -0
  385. examples/example_data/MS/FLD/e3/e3-000114.h5 +0 -0
  386. examples/example_data/MS/FLD/e3/e3-000115.h5 +0 -0
  387. examples/example_data/MS/FLD/e3/e3-000116.h5 +0 -0
  388. examples/example_data/MS/FLD/e3/e3-000117.h5 +0 -0
  389. examples/example_data/MS/FLD/e3/e3-000118.h5 +0 -0
  390. examples/example_data/MS/FLD/e3/e3-000119.h5 +0 -0
  391. examples/example_data/MS/FLD/e3/e3-000120.h5 +0 -0
  392. examples/example_data/MS/FLD/e3/e3-000121.h5 +0 -0
  393. examples/example_data/MS/FLD/e3/e3-000122.h5 +0 -0
  394. examples/example_data/MS/FLD/e3/e3-000123.h5 +0 -0
  395. examples/example_data/MS/FLD/e3/e3-000124.h5 +0 -0
  396. examples/example_data/MS/FLD/e3/e3-000125.h5 +0 -0
  397. examples/example_data/MS/FLD/e3/e3-000126.h5 +0 -0
  398. examples/example_data/MS/FLD/e3/e3-000127.h5 +0 -0
  399. examples/example_data/MS/FLD/e3/e3-000128.h5 +0 -0
  400. examples/example_data/MS/FLD/e3/e3-000129.h5 +0 -0
  401. examples/example_data/MS/FLD/e3/e3-000130.h5 +0 -0
  402. examples/example_data/MS/FLD/e3/e3-000131.h5 +0 -0
  403. examples/example_data/MS/FLD/e3/e3-000132.h5 +0 -0
  404. examples/example_data/MS/FLD/e3/e3-000133.h5 +0 -0
  405. examples/example_data/MS/FLD/e3/e3-000134.h5 +0 -0
  406. examples/example_data/MS/FLD/e3/e3-000135.h5 +0 -0
  407. examples/example_data/MS/FLD/e3/e3-000136.h5 +0 -0
  408. examples/example_data/MS/FLD/e3/e3-000137.h5 +0 -0
  409. examples/example_data/MS/FLD/e3/e3-000138.h5 +0 -0
  410. examples/example_data/MS/FLD/e3/e3-000139.h5 +0 -0
  411. examples/example_data/MS/FLD/e3/e3-000140.h5 +0 -0
  412. examples/example_data/MS/FLD/e3/e3-000141.h5 +0 -0
  413. examples/example_data/MS/FLD/e3/e3-000142.h5 +0 -0
  414. examples/example_data/MS/FLD/e3/e3-000143.h5 +0 -0
  415. examples/example_data/MS/FLD/e3/e3-000144.h5 +0 -0
  416. examples/example_data/MS/FLD/e3/e3-000145.h5 +0 -0
  417. examples/example_data/MS/FLD/e3/e3-000146.h5 +0 -0
  418. examples/example_data/MS/FLD/e3/e3-000147.h5 +0 -0
  419. examples/example_data/MS/FLD/e3/e3-000148.h5 +0 -0
  420. examples/example_data/MS/FLD/e3/e3-000149.h5 +0 -0
  421. examples/example_data/MS/FLD/e3/e3-000150.h5 +0 -0
  422. examples/example_data/MS/FLD/e3/e3-000151.h5 +0 -0
  423. examples/example_data/MS/FLD/e3/e3-000152.h5 +0 -0
  424. examples/example_data/MS/FLD/e3/e3-000153.h5 +0 -0
  425. examples/example_data/MS/FLD/e3/e3-000154.h5 +0 -0
  426. examples/example_data/MS/FLD/e3/e3-000155.h5 +0 -0
  427. examples/example_data/MS/FLD/e3/e3-000156.h5 +0 -0
  428. examples/example_data/MS/FLD/e3/e3-000157.h5 +0 -0
  429. examples/example_data/MS/FLD/e3/e3-000158.h5 +0 -0
  430. examples/example_data/MS/FLD/e3/e3-000159.h5 +0 -0
  431. examples/example_data/MS/FLD/e3/e3-000160.h5 +0 -0
  432. examples/example_data/MS/FLD/e3/e3-000161.h5 +0 -0
  433. examples/example_data/MS/FLD/e3/e3-000162.h5 +0 -0
  434. examples/example_data/MS/FLD/e3/e3-000163.h5 +0 -0
  435. examples/example_data/MS/FLD/e3/e3-000164.h5 +0 -0
  436. examples/example_data/MS/FLD/e3/e3-000165.h5 +0 -0
  437. examples/example_data/MS/FLD/e3/e3-000166.h5 +0 -0
  438. examples/example_data/MS/FLD/e3/e3-000167.h5 +0 -0
  439. examples/example_data/MS/FLD/e3/e3-000168.h5 +0 -0
  440. examples/example_data/MS/FLD/e3/e3-000169.h5 +0 -0
  441. examples/example_data/MS/FLD/e3/e3-000170.h5 +0 -0
  442. examples/example_data/MS/FLD/e3/e3-000171.h5 +0 -0
  443. examples/example_data/MS/FLD/e3/e3-000172.h5 +0 -0
  444. examples/example_data/MS/FLD/e3/e3-000173.h5 +0 -0
  445. examples/example_data/MS/FLD/e3/e3-000174.h5 +0 -0
  446. examples/example_data/MS/FLD/e3/e3-000175.h5 +0 -0
  447. examples/example_data/MS/FLD/e3/e3-000176.h5 +0 -0
  448. examples/example_data/MS/FLD/e3/e3-000177.h5 +0 -0
  449. examples/example_data/MS/FLD/e3/e3-000178.h5 +0 -0
  450. examples/example_data/MS/FLD/e3/e3-000179.h5 +0 -0
  451. examples/example_data/MS/FLD/e3/e3-000180.h5 +0 -0
  452. examples/example_data/MS/FLD/e3/e3-000181.h5 +0 -0
  453. examples/example_data/MS/FLD/e3/e3-000182.h5 +0 -0
  454. examples/example_data/MS/FLD/e3/e3-000183.h5 +0 -0
  455. examples/example_data/MS/FLD/e3/e3-000184.h5 +0 -0
  456. examples/example_data/MS/FLD/e3/e3-000185.h5 +0 -0
  457. examples/example_data/MS/FLD/e3/e3-000186.h5 +0 -0
  458. examples/example_data/MS/FLD/e3/e3-000187.h5 +0 -0
  459. examples/example_data/MS/FLD/e3/e3-000188.h5 +0 -0
  460. examples/example_data/MS/FLD/e3/e3-000189.h5 +0 -0
  461. examples/example_data/MS/FLD/e3/e3-000190.h5 +0 -0
  462. examples/example_data/MS/FLD/e3/e3-000191.h5 +0 -0
  463. examples/example_data/MS/FLD/e3/e3-000192.h5 +0 -0
  464. examples/example_data/MS/FLD/e3/e3-000193.h5 +0 -0
  465. examples/example_data/MS/FLD/e3/e3-000194.h5 +0 -0
  466. examples/example_data/MS/FLD/e3/e3-000195.h5 +0 -0
  467. examples/example_data/MS/FLD/e3/e3-000196.h5 +0 -0
  468. examples/example_data/MS/FLD/e3/e3-000197.h5 +0 -0
  469. examples/example_data/MS/FLD/e3/e3-000198.h5 +0 -0
  470. examples/example_data/MS/FLD/e3/e3-000199.h5 +0 -0
  471. examples/example_data/MS/FLD/e3/e3-000200.h5 +0 -0
  472. examples/example_data/MS/FLD/e3/e3-000201.h5 +0 -0
  473. examples/example_data/MS/FLD/e3/e3-000202.h5 +0 -0
  474. examples/example_data/MS/FLD/e3/e3-000203.h5 +0 -0
  475. examples/example_data/MS/FLD/e3/e3-000204.h5 +0 -0
  476. examples/example_data/MS/FLD/e3/e3-000205.h5 +0 -0
  477. examples/example_data/MS/FLD/e3/e3-000206.h5 +0 -0
  478. examples/example_data/MS/FLD/e3/e3-000207.h5 +0 -0
  479. examples/example_data/MS/FLD/e3/e3-000208.h5 +0 -0
  480. examples/example_data/MS/FLD/e3/e3-000209.h5 +0 -0
  481. examples/example_data/MS/FLD/e3/e3-000210.h5 +0 -0
  482. examples/example_data/MS/FLD/e3/e3-000211.h5 +0 -0
  483. examples/example_data/MS/FLD/e3/e3-000212.h5 +0 -0
  484. examples/example_data/MS/FLD/e3/e3-000213.h5 +0 -0
  485. examples/example_data/MS/FLD/e3/e3-000214.h5 +0 -0
  486. examples/example_data/MS/FLD/e3/e3-000215.h5 +0 -0
  487. examples/example_data/MS/FLD/e3/e3-000216.h5 +0 -0
  488. examples/example_data/MS/FLD/e3/e3-000217.h5 +0 -0
  489. examples/example_data/MS/FLD/e3/e3-000218.h5 +0 -0
  490. examples/example_data/MS/FLD/e3/e3-000219.h5 +0 -0
  491. examples/example_data/MS/FLD/e3/e3-000220.h5 +0 -0
  492. examples/example_data/MS/FLD/e3/e3-000221.h5 +0 -0
  493. examples/example_data/MS/FLD/e3/e3-000222.h5 +0 -0
  494. examples/example_data/MS/FLD/e3/e3-000223.h5 +0 -0
  495. examples/example_data/MS/FLD/e3/e3-000224.h5 +0 -0
  496. examples/example_data/MS/FLD/e3/e3-000225.h5 +0 -0
  497. examples/example_data/MS/FLD/e3/e3-000226.h5 +0 -0
  498. examples/example_data/MS/FLD/e3/e3-000227.h5 +0 -0
  499. examples/example_data/MS/FLD/e3/e3-000228.h5 +0 -0
  500. examples/example_data/MS/FLD/e3/e3-000229.h5 +0 -0
  501. examples/example_data/MS/FLD/e3/e3-000230.h5 +0 -0
  502. examples/example_data/MS/FLD/e3/e3-000231.h5 +0 -0
  503. examples/example_data/MS/FLD/e3/e3-000232.h5 +0 -0
  504. examples/example_data/MS/FLD/e3/e3-000233.h5 +0 -0
  505. examples/example_data/MS/FLD/e3/e3-000234.h5 +0 -0
  506. examples/example_data/MS/FLD/e3/e3-000235.h5 +0 -0
  507. examples/example_data/MS/FLD/e3/e3-000236.h5 +0 -0
  508. examples/example_data/MS/FLD/e3/e3-000237.h5 +0 -0
  509. examples/example_data/MS/FLD/e3/e3-000238.h5 +0 -0
  510. examples/example_data/MS/FLD/e3/e3-000239.h5 +0 -0
  511. examples/example_data/MS/FLD/e3/e3-000240.h5 +0 -0
  512. examples/example_data/MS/FLD/e3/e3-000241.h5 +0 -0
  513. examples/example_data/MS/FLD/e3/e3-000242.h5 +0 -0
  514. examples/example_data/MS/FLD/e3/e3-000243.h5 +0 -0
  515. examples/example_data/MS/FLD/e3/e3-000244.h5 +0 -0
  516. examples/example_data/MS/FLD/e3/e3-000245.h5 +0 -0
  517. examples/example_data/MS/FLD/e3/e3-000246.h5 +0 -0
  518. examples/example_data/MS/FLD/e3/e3-000247.h5 +0 -0
  519. examples/example_data/MS/FLD/e3/e3-000248.h5 +0 -0
  520. examples/example_data/MS/FLD/e3/e3-000249.h5 +0 -0
  521. examples/example_data/MS/FLD/e3/e3-000250.h5 +0 -0
  522. examples/example_data/MS/FLD/e3/e3-000251.h5 +0 -0
  523. examples/example_data/MS/FLD/e3/e3-000252.h5 +0 -0
  524. examples/example_data/MS/FLD/e3/e3-000253.h5 +0 -0
  525. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000000.h5 +0 -0
  526. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000001.h5 +0 -0
  527. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000002.h5 +0 -0
  528. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000003.h5 +0 -0
  529. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000004.h5 +0 -0
  530. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000005.h5 +0 -0
  531. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000006.h5 +0 -0
  532. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000007.h5 +0 -0
  533. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000008.h5 +0 -0
  534. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000009.h5 +0 -0
  535. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000010.h5 +0 -0
  536. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000011.h5 +0 -0
  537. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000012.h5 +0 -0
  538. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000013.h5 +0 -0
  539. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000014.h5 +0 -0
  540. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000015.h5 +0 -0
  541. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000016.h5 +0 -0
  542. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000017.h5 +0 -0
  543. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000018.h5 +0 -0
  544. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000019.h5 +0 -0
  545. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000020.h5 +0 -0
  546. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000021.h5 +0 -0
  547. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000022.h5 +0 -0
  548. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000023.h5 +0 -0
  549. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000024.h5 +0 -0
  550. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000025.h5 +0 -0
  551. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000026.h5 +0 -0
  552. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000027.h5 +0 -0
  553. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000028.h5 +0 -0
  554. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000029.h5 +0 -0
  555. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000030.h5 +0 -0
  556. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000031.h5 +0 -0
  557. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000032.h5 +0 -0
  558. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000033.h5 +0 -0
  559. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000034.h5 +0 -0
  560. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000035.h5 +0 -0
  561. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000036.h5 +0 -0
  562. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000037.h5 +0 -0
  563. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000038.h5 +0 -0
  564. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000039.h5 +0 -0
  565. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000040.h5 +0 -0
  566. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000041.h5 +0 -0
  567. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000042.h5 +0 -0
  568. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000043.h5 +0 -0
  569. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000044.h5 +0 -0
  570. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000045.h5 +0 -0
  571. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000046.h5 +0 -0
  572. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000047.h5 +0 -0
  573. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000048.h5 +0 -0
  574. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000049.h5 +0 -0
  575. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000050.h5 +0 -0
  576. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000051.h5 +0 -0
  577. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000052.h5 +0 -0
  578. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000053.h5 +0 -0
  579. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000054.h5 +0 -0
  580. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000055.h5 +0 -0
  581. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000056.h5 +0 -0
  582. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000057.h5 +0 -0
  583. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000058.h5 +0 -0
  584. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000059.h5 +0 -0
  585. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000060.h5 +0 -0
  586. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000061.h5 +0 -0
  587. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000062.h5 +0 -0
  588. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000063.h5 +0 -0
  589. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000064.h5 +0 -0
  590. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000065.h5 +0 -0
  591. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000066.h5 +0 -0
  592. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000067.h5 +0 -0
  593. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000068.h5 +0 -0
  594. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000069.h5 +0 -0
  595. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000070.h5 +0 -0
  596. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000071.h5 +0 -0
  597. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000072.h5 +0 -0
  598. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000073.h5 +0 -0
  599. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000074.h5 +0 -0
  600. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000075.h5 +0 -0
  601. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000076.h5 +0 -0
  602. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000077.h5 +0 -0
  603. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000078.h5 +0 -0
  604. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000079.h5 +0 -0
  605. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000080.h5 +0 -0
  606. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000081.h5 +0 -0
  607. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000082.h5 +0 -0
  608. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000083.h5 +0 -0
  609. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000084.h5 +0 -0
  610. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000085.h5 +0 -0
  611. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000086.h5 +0 -0
  612. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000087.h5 +0 -0
  613. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000088.h5 +0 -0
  614. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000089.h5 +0 -0
  615. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000090.h5 +0 -0
  616. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000091.h5 +0 -0
  617. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000092.h5 +0 -0
  618. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000093.h5 +0 -0
  619. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000094.h5 +0 -0
  620. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000095.h5 +0 -0
  621. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000096.h5 +0 -0
  622. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000097.h5 +0 -0
  623. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000098.h5 +0 -0
  624. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000099.h5 +0 -0
  625. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000100.h5 +0 -0
  626. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000101.h5 +0 -0
  627. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000102.h5 +0 -0
  628. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000103.h5 +0 -0
  629. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000104.h5 +0 -0
  630. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000105.h5 +0 -0
  631. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000106.h5 +0 -0
  632. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000107.h5 +0 -0
  633. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000108.h5 +0 -0
  634. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000109.h5 +0 -0
  635. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000110.h5 +0 -0
  636. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000111.h5 +0 -0
  637. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000112.h5 +0 -0
  638. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000113.h5 +0 -0
  639. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000114.h5 +0 -0
  640. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000115.h5 +0 -0
  641. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000116.h5 +0 -0
  642. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000117.h5 +0 -0
  643. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000118.h5 +0 -0
  644. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000119.h5 +0 -0
  645. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000120.h5 +0 -0
  646. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000121.h5 +0 -0
  647. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000122.h5 +0 -0
  648. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000123.h5 +0 -0
  649. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000124.h5 +0 -0
  650. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000125.h5 +0 -0
  651. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000126.h5 +0 -0
  652. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000127.h5 +0 -0
  653. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000128.h5 +0 -0
  654. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000129.h5 +0 -0
  655. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000130.h5 +0 -0
  656. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000131.h5 +0 -0
  657. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000132.h5 +0 -0
  658. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000133.h5 +0 -0
  659. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000134.h5 +0 -0
  660. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000135.h5 +0 -0
  661. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000136.h5 +0 -0
  662. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000137.h5 +0 -0
  663. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000138.h5 +0 -0
  664. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000139.h5 +0 -0
  665. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000140.h5 +0 -0
  666. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000141.h5 +0 -0
  667. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000142.h5 +0 -0
  668. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000143.h5 +0 -0
  669. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000144.h5 +0 -0
  670. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000145.h5 +0 -0
  671. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000146.h5 +0 -0
  672. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000147.h5 +0 -0
  673. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000148.h5 +0 -0
  674. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000149.h5 +0 -0
  675. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000150.h5 +0 -0
  676. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000151.h5 +0 -0
  677. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000152.h5 +0 -0
  678. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000153.h5 +0 -0
  679. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000154.h5 +0 -0
  680. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000155.h5 +0 -0
  681. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000156.h5 +0 -0
  682. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000157.h5 +0 -0
  683. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000158.h5 +0 -0
  684. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000159.h5 +0 -0
  685. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000160.h5 +0 -0
  686. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000161.h5 +0 -0
  687. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000162.h5 +0 -0
  688. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000163.h5 +0 -0
  689. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000164.h5 +0 -0
  690. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000165.h5 +0 -0
  691. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000166.h5 +0 -0
  692. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000167.h5 +0 -0
  693. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000168.h5 +0 -0
  694. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000169.h5 +0 -0
  695. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000170.h5 +0 -0
  696. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000171.h5 +0 -0
  697. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000172.h5 +0 -0
  698. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000173.h5 +0 -0
  699. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000174.h5 +0 -0
  700. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000175.h5 +0 -0
  701. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000176.h5 +0 -0
  702. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000177.h5 +0 -0
  703. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000178.h5 +0 -0
  704. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000179.h5 +0 -0
  705. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000180.h5 +0 -0
  706. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000181.h5 +0 -0
  707. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000182.h5 +0 -0
  708. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000183.h5 +0 -0
  709. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000184.h5 +0 -0
  710. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000185.h5 +0 -0
  711. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000186.h5 +0 -0
  712. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000187.h5 +0 -0
  713. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000188.h5 +0 -0
  714. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000189.h5 +0 -0
  715. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000190.h5 +0 -0
  716. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000191.h5 +0 -0
  717. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000192.h5 +0 -0
  718. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000193.h5 +0 -0
  719. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000194.h5 +0 -0
  720. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000195.h5 +0 -0
  721. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000196.h5 +0 -0
  722. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000197.h5 +0 -0
  723. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000198.h5 +0 -0
  724. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000199.h5 +0 -0
  725. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000200.h5 +0 -0
  726. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000201.h5 +0 -0
  727. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000202.h5 +0 -0
  728. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000203.h5 +0 -0
  729. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000204.h5 +0 -0
  730. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000205.h5 +0 -0
  731. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000206.h5 +0 -0
  732. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000207.h5 +0 -0
  733. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000208.h5 +0 -0
  734. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000209.h5 +0 -0
  735. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000210.h5 +0 -0
  736. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000211.h5 +0 -0
  737. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000212.h5 +0 -0
  738. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000213.h5 +0 -0
  739. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000214.h5 +0 -0
  740. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000215.h5 +0 -0
  741. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000216.h5 +0 -0
  742. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000217.h5 +0 -0
  743. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000218.h5 +0 -0
  744. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000219.h5 +0 -0
  745. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000220.h5 +0 -0
  746. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000221.h5 +0 -0
  747. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000222.h5 +0 -0
  748. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000223.h5 +0 -0
  749. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000224.h5 +0 -0
  750. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000225.h5 +0 -0
  751. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000226.h5 +0 -0
  752. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000227.h5 +0 -0
  753. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000228.h5 +0 -0
  754. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000229.h5 +0 -0
  755. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000230.h5 +0 -0
  756. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000231.h5 +0 -0
  757. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000232.h5 +0 -0
  758. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000233.h5 +0 -0
  759. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000234.h5 +0 -0
  760. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000235.h5 +0 -0
  761. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000236.h5 +0 -0
  762. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000237.h5 +0 -0
  763. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000238.h5 +0 -0
  764. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000239.h5 +0 -0
  765. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000240.h5 +0 -0
  766. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000241.h5 +0 -0
  767. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000242.h5 +0 -0
  768. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000243.h5 +0 -0
  769. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000244.h5 +0 -0
  770. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000245.h5 +0 -0
  771. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000246.h5 +0 -0
  772. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000247.h5 +0 -0
  773. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000248.h5 +0 -0
  774. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000249.h5 +0 -0
  775. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000250.h5 +0 -0
  776. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000251.h5 +0 -0
  777. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000252.h5 +0 -0
  778. examples/example_data/MS/UDIST/electrons/T11/T11-electrons-000253.h5 +0 -0
  779. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000000.h5 +0 -0
  780. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000001.h5 +0 -0
  781. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000002.h5 +0 -0
  782. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000003.h5 +0 -0
  783. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000004.h5 +0 -0
  784. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000005.h5 +0 -0
  785. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000006.h5 +0 -0
  786. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000007.h5 +0 -0
  787. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000008.h5 +0 -0
  788. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000009.h5 +0 -0
  789. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000010.h5 +0 -0
  790. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000011.h5 +0 -0
  791. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000012.h5 +0 -0
  792. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000013.h5 +0 -0
  793. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000014.h5 +0 -0
  794. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000015.h5 +0 -0
  795. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000016.h5 +0 -0
  796. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000017.h5 +0 -0
  797. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000018.h5 +0 -0
  798. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000019.h5 +0 -0
  799. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000020.h5 +0 -0
  800. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000021.h5 +0 -0
  801. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000022.h5 +0 -0
  802. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000023.h5 +0 -0
  803. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000024.h5 +0 -0
  804. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000025.h5 +0 -0
  805. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000026.h5 +0 -0
  806. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000027.h5 +0 -0
  807. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000028.h5 +0 -0
  808. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000029.h5 +0 -0
  809. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000030.h5 +0 -0
  810. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000031.h5 +0 -0
  811. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000032.h5 +0 -0
  812. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000033.h5 +0 -0
  813. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000034.h5 +0 -0
  814. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000035.h5 +0 -0
  815. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000036.h5 +0 -0
  816. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000037.h5 +0 -0
  817. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000038.h5 +0 -0
  818. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000039.h5 +0 -0
  819. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000040.h5 +0 -0
  820. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000041.h5 +0 -0
  821. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000042.h5 +0 -0
  822. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000043.h5 +0 -0
  823. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000044.h5 +0 -0
  824. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000045.h5 +0 -0
  825. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000046.h5 +0 -0
  826. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000047.h5 +0 -0
  827. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000048.h5 +0 -0
  828. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000049.h5 +0 -0
  829. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000050.h5 +0 -0
  830. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000051.h5 +0 -0
  831. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000052.h5 +0 -0
  832. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000053.h5 +0 -0
  833. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000054.h5 +0 -0
  834. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000055.h5 +0 -0
  835. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000056.h5 +0 -0
  836. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000057.h5 +0 -0
  837. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000058.h5 +0 -0
  838. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000059.h5 +0 -0
  839. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000060.h5 +0 -0
  840. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000061.h5 +0 -0
  841. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000062.h5 +0 -0
  842. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000063.h5 +0 -0
  843. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000064.h5 +0 -0
  844. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000065.h5 +0 -0
  845. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000066.h5 +0 -0
  846. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000067.h5 +0 -0
  847. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000068.h5 +0 -0
  848. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000069.h5 +0 -0
  849. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000070.h5 +0 -0
  850. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000071.h5 +0 -0
  851. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000072.h5 +0 -0
  852. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000073.h5 +0 -0
  853. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000074.h5 +0 -0
  854. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000075.h5 +0 -0
  855. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000076.h5 +0 -0
  856. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000077.h5 +0 -0
  857. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000078.h5 +0 -0
  858. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000079.h5 +0 -0
  859. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000080.h5 +0 -0
  860. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000081.h5 +0 -0
  861. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000082.h5 +0 -0
  862. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000083.h5 +0 -0
  863. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000084.h5 +0 -0
  864. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000085.h5 +0 -0
  865. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000086.h5 +0 -0
  866. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000087.h5 +0 -0
  867. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000088.h5 +0 -0
  868. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000089.h5 +0 -0
  869. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000090.h5 +0 -0
  870. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000091.h5 +0 -0
  871. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000092.h5 +0 -0
  872. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000093.h5 +0 -0
  873. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000094.h5 +0 -0
  874. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000095.h5 +0 -0
  875. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000096.h5 +0 -0
  876. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000097.h5 +0 -0
  877. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000098.h5 +0 -0
  878. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000099.h5 +0 -0
  879. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000100.h5 +0 -0
  880. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000101.h5 +0 -0
  881. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000102.h5 +0 -0
  882. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000103.h5 +0 -0
  883. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000104.h5 +0 -0
  884. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000105.h5 +0 -0
  885. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000106.h5 +0 -0
  886. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000107.h5 +0 -0
  887. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000108.h5 +0 -0
  888. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000109.h5 +0 -0
  889. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000110.h5 +0 -0
  890. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000111.h5 +0 -0
  891. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000112.h5 +0 -0
  892. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000113.h5 +0 -0
  893. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000114.h5 +0 -0
  894. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000115.h5 +0 -0
  895. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000116.h5 +0 -0
  896. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000117.h5 +0 -0
  897. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000118.h5 +0 -0
  898. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000119.h5 +0 -0
  899. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000120.h5 +0 -0
  900. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000121.h5 +0 -0
  901. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000122.h5 +0 -0
  902. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000123.h5 +0 -0
  903. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000124.h5 +0 -0
  904. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000125.h5 +0 -0
  905. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000126.h5 +0 -0
  906. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000127.h5 +0 -0
  907. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000128.h5 +0 -0
  908. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000129.h5 +0 -0
  909. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000130.h5 +0 -0
  910. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000131.h5 +0 -0
  911. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000132.h5 +0 -0
  912. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000133.h5 +0 -0
  913. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000134.h5 +0 -0
  914. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000135.h5 +0 -0
  915. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000136.h5 +0 -0
  916. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000137.h5 +0 -0
  917. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000138.h5 +0 -0
  918. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000139.h5 +0 -0
  919. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000140.h5 +0 -0
  920. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000141.h5 +0 -0
  921. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000142.h5 +0 -0
  922. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000143.h5 +0 -0
  923. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000144.h5 +0 -0
  924. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000145.h5 +0 -0
  925. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000146.h5 +0 -0
  926. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000147.h5 +0 -0
  927. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000148.h5 +0 -0
  928. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000149.h5 +0 -0
  929. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000150.h5 +0 -0
  930. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000151.h5 +0 -0
  931. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000152.h5 +0 -0
  932. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000153.h5 +0 -0
  933. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000154.h5 +0 -0
  934. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000155.h5 +0 -0
  935. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000156.h5 +0 -0
  936. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000157.h5 +0 -0
  937. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000158.h5 +0 -0
  938. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000159.h5 +0 -0
  939. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000160.h5 +0 -0
  940. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000161.h5 +0 -0
  941. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000162.h5 +0 -0
  942. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000163.h5 +0 -0
  943. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000164.h5 +0 -0
  944. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000165.h5 +0 -0
  945. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000166.h5 +0 -0
  946. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000167.h5 +0 -0
  947. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000168.h5 +0 -0
  948. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000169.h5 +0 -0
  949. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000170.h5 +0 -0
  950. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000171.h5 +0 -0
  951. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000172.h5 +0 -0
  952. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000173.h5 +0 -0
  953. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000174.h5 +0 -0
  954. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000175.h5 +0 -0
  955. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000176.h5 +0 -0
  956. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000177.h5 +0 -0
  957. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000178.h5 +0 -0
  958. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000179.h5 +0 -0
  959. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000180.h5 +0 -0
  960. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000181.h5 +0 -0
  961. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000182.h5 +0 -0
  962. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000183.h5 +0 -0
  963. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000184.h5 +0 -0
  964. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000185.h5 +0 -0
  965. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000186.h5 +0 -0
  966. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000187.h5 +0 -0
  967. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000188.h5 +0 -0
  968. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000189.h5 +0 -0
  969. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000190.h5 +0 -0
  970. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000191.h5 +0 -0
  971. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000192.h5 +0 -0
  972. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000193.h5 +0 -0
  973. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000194.h5 +0 -0
  974. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000195.h5 +0 -0
  975. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000196.h5 +0 -0
  976. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000197.h5 +0 -0
  977. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000198.h5 +0 -0
  978. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000199.h5 +0 -0
  979. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000200.h5 +0 -0
  980. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000201.h5 +0 -0
  981. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000202.h5 +0 -0
  982. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000203.h5 +0 -0
  983. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000204.h5 +0 -0
  984. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000205.h5 +0 -0
  985. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000206.h5 +0 -0
  986. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000207.h5 +0 -0
  987. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000208.h5 +0 -0
  988. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000209.h5 +0 -0
  989. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000210.h5 +0 -0
  990. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000211.h5 +0 -0
  991. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000212.h5 +0 -0
  992. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000213.h5 +0 -0
  993. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000214.h5 +0 -0
  994. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000215.h5 +0 -0
  995. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000216.h5 +0 -0
  996. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000217.h5 +0 -0
  997. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000218.h5 +0 -0
  998. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000219.h5 +0 -0
  999. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000220.h5 +0 -0
  1000. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000221.h5 +0 -0
  1001. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000222.h5 +0 -0
  1002. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000223.h5 +0 -0
  1003. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000224.h5 +0 -0
  1004. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000225.h5 +0 -0
  1005. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000226.h5 +0 -0
  1006. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000227.h5 +0 -0
  1007. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000228.h5 +0 -0
  1008. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000229.h5 +0 -0
  1009. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000230.h5 +0 -0
  1010. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000231.h5 +0 -0
  1011. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000232.h5 +0 -0
  1012. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000233.h5 +0 -0
  1013. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000234.h5 +0 -0
  1014. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000235.h5 +0 -0
  1015. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000236.h5 +0 -0
  1016. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000237.h5 +0 -0
  1017. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000238.h5 +0 -0
  1018. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000239.h5 +0 -0
  1019. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000240.h5 +0 -0
  1020. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000241.h5 +0 -0
  1021. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000242.h5 +0 -0
  1022. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000243.h5 +0 -0
  1023. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000244.h5 +0 -0
  1024. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000245.h5 +0 -0
  1025. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000246.h5 +0 -0
  1026. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000247.h5 +0 -0
  1027. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000248.h5 +0 -0
  1028. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000249.h5 +0 -0
  1029. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000250.h5 +0 -0
  1030. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000251.h5 +0 -0
  1031. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000252.h5 +0 -0
  1032. examples/example_data/MS/UDIST/electrons/vfl1/vfl1-electrons-000253.h5 +0 -0
  1033. examples/example_data/MS/run-info +132 -0
  1034. examples/example_data/TIMINGS/timings-final +31 -0
  1035. examples/example_data/run-info +132 -0
  1036. examples/example_data/thermal.1d +108 -0
  1037. examples/quick_start.ipynb +82 -0
  1038. examples/quick_start.py +41 -0
  1039. osiris_utils/__init__.py +85 -20
  1040. osiris_utils/data/data.py +591 -187
  1041. osiris_utils/data/diagnostic.py +644 -239
  1042. osiris_utils/data/simulation.py +77 -49
  1043. osiris_utils/decks/decks.py +11 -29
  1044. osiris_utils/postprocessing/derivative.py +111 -82
  1045. osiris_utils/postprocessing/fft.py +77 -67
  1046. osiris_utils/postprocessing/field_centering.py +336 -0
  1047. osiris_utils/postprocessing/heatflux_correction.py +200 -0
  1048. osiris_utils/postprocessing/mft.py +108 -70
  1049. osiris_utils/postprocessing/mft_for_gridfile.py +14 -11
  1050. osiris_utils/postprocessing/postprocess.py +8 -7
  1051. osiris_utils/postprocessing/pressure_correction.py +187 -0
  1052. osiris_utils/utils.py +174 -33
  1053. {osiris_utils-1.1.4.dist-info → osiris_utils-1.1.7.dist-info}/METADATA +58 -25
  1054. osiris_utils-1.1.7.dist-info/RECORD +1062 -0
  1055. {osiris_utils-1.1.4.dist-info → osiris_utils-1.1.7.dist-info}/WHEEL +1 -1
  1056. osiris_utils-1.1.7.dist-info/top_level.txt +3 -0
  1057. osiris_utils/gui/gui.py +0 -266
  1058. osiris_utils-1.1.4.dist-info/RECORD +0 -22
  1059. osiris_utils-1.1.4.dist-info/top_level.txt +0 -1
  1060. /osiris_utils/{gui/__init__.py → py.typed} +0 -0
  1061. {osiris_utils-1.1.4.dist-info → osiris_utils-1.1.7.dist-info}/licenses/LICENSE.txt +0 -0
@@ -4,27 +4,20 @@ of just a single file. This is what this file is for - deal with ''folders'' of
4
4
 
5
5
  Took some inspiration from Diogo and Madox's work.
6
6
 
7
- This would be awsome to compute time derivatives.
7
+ This would be awsome to compute time derivatives.
8
8
  """
9
- import numpy as np
10
- import os
11
9
 
12
- from .data import OsirisGridFile
13
- import tqdm
14
- import matplotlib.pyplot as plt
10
+ import glob
11
+ import os
15
12
  import warnings
16
13
  from typing import Literal
17
- from ..decks.decks import InputDeckIO, deval
18
14
 
19
- def get_dimension_from_deck(deck: InputDeckIO) -> int:
20
- for dim in range(1, 4):
21
- try:
22
- deck.get_param(section='grid', param=f'nx_p(1:{dim})')
23
- return dim
24
- except:
25
- continue
26
-
27
- raise Exception('Error parsing grid dimension')
15
+ import h5py
16
+ import matplotlib.pyplot as plt
17
+ import numpy as np
18
+ import tqdm
19
+
20
+ from .data import OsirisGridFile
28
21
 
29
22
  OSIRIS_DENSITY = ["n"]
30
23
  OSIRIS_SPECIE_REPORTS = ["charge", "q1", "q2", "q3", "j1", "j2", "j3"]
@@ -48,10 +41,43 @@ OSIRIS_SPECIE_REP_UDIST = [
48
41
  "T23",
49
42
  "T33",
50
43
  ]
51
- OSIRIS_FLD = ["e1", "e2", "e3", "b1", "b2", "b3", "part_e1", "part_e2", "epart_3", "part_b1", "part_b2", "part_b3", "ext_e1", "ext_e2", "ext_e3", "ext_b1", "ext_b2", "ext_b3"]
52
- OSIRIS_PHA = ["p1x1", "p1x2", "p1x3", "p2x1", "p2x2", "p2x3", "p3x1", "p3x2", "p3x3", "gammax1", "gammax2", "gammax3"] # there may be more that I don't know
44
+ OSIRIS_FLD = [
45
+ "e1",
46
+ "e2",
47
+ "e3",
48
+ "b1",
49
+ "b2",
50
+ "b3",
51
+ "part_e1",
52
+ "part_e2",
53
+ "part_e3",
54
+ "part_b1",
55
+ "part_b2",
56
+ "part_b3",
57
+ "ext_e1",
58
+ "ext_e2",
59
+ "ext_e3",
60
+ "ext_b1",
61
+ "ext_b2",
62
+ "ext_b3",
63
+ ]
64
+ OSIRIS_PHA = [
65
+ "p1x1",
66
+ "p1x2",
67
+ "p1x3",
68
+ "p2x1",
69
+ "p2x2",
70
+ "p2x3",
71
+ "p3x1",
72
+ "p3x2",
73
+ "p3x3",
74
+ "gammax1",
75
+ "gammax2",
76
+ "gammax3",
77
+ ] # there may be more that I don't know
53
78
  OSIRIS_ALL = OSIRIS_DENSITY + OSIRIS_SPECIE_REPORTS + OSIRIS_SPECIE_REP_UDIST + OSIRIS_FLD + OSIRIS_PHA
54
79
 
80
+
55
81
  def which_quantities():
56
82
  print("Available quantities:")
57
83
  print(OSIRIS_ALL)
@@ -135,19 +161,8 @@ class Diagnostic:
135
161
  time(index)
136
162
  Get the time for a given index.
137
163
 
138
- Examples
139
- --------
140
- >>> sim = Simulation("electrons", "path/to/simulation")
141
- >>> sim.get_quantity("charge")
142
- >>> sim.load_all()
143
- >>> print(sim.data.shape)
144
- (100, 100, 100)
145
-
146
- >>> sim = Simulation("electrons", "path/to/simulation")
147
- >>> sim.get_quantity("charge")
148
- >>> sim[0]
149
- array with the data for the first timestep
150
164
  """
165
+
151
166
  def __init__(self, simulation_folder=None, species=None, input_deck=None):
152
167
  self._species = species if species else None
153
168
 
@@ -164,7 +179,7 @@ class Diagnostic:
164
179
  self._ndump = None
165
180
  self._maxiter = None
166
181
  self._tunits = None
167
-
182
+
168
183
  if simulation_folder:
169
184
  self._simulation_folder = simulation_folder
170
185
  if not os.path.isdir(simulation_folder):
@@ -180,7 +195,7 @@ class Diagnostic:
180
195
 
181
196
  self._all_loaded = False
182
197
  self._quantity = None
183
-
198
+
184
199
  def get_quantity(self, quantity):
185
200
  """
186
201
  Get the data for a given quantity.
@@ -213,46 +228,46 @@ class Diagnostic:
213
228
  raise ValueError("Species not set.")
214
229
  self._get_density(self._species.name, "charge")
215
230
  else:
216
- raise ValueError(f"Invalid quantity {self._quantity}. Or it's not implemented yet (this may happen for phase space quantities).")
231
+ raise ValueError(
232
+ f"Invalid quantity {self._quantity}. Or it's not implemented yet (this may happen for phase space quantities)."
233
+ )
217
234
 
218
235
  def _get_moment(self, species, moment):
219
236
  if self._simulation_folder is None:
220
237
  raise ValueError("Simulation folder not set. If you're using CustomDiagnostic, this method is not available.")
221
238
  self._path = f"{self._simulation_folder}/MS/UDIST/{species}/{moment}/"
222
- self._file_template = os.listdir(self._path)[0][:-9]
223
- self._maxiter = len(os.listdir(self._path))
239
+ self._file_template = glob.glob(f"{self._path}/*.h5")[0][:-9]
240
+ self._maxiter = len(glob.glob(f"{self._path}/*.h5"))
224
241
  self._load_attributes(self._file_template, self._input_deck)
225
-
242
+
226
243
  def _get_field(self, field):
227
244
  if self._simulation_folder is None:
228
245
  raise ValueError("Simulation folder not set. If you're using CustomDiagnostic, this method is not available.")
229
246
  self._path = f"{self._simulation_folder}/MS/FLD/{field}/"
230
- self._file_template = os.listdir(self._path)[0][:-9]
231
- self._maxiter = len(os.listdir(self._path))
247
+ self._file_template = glob.glob(f"{self._path}/*.h5")[0][:-9]
248
+ self._maxiter = len(glob.glob(f"{self._path}/*.h5"))
232
249
  self._load_attributes(self._file_template, self._input_deck)
233
-
250
+
234
251
  def _get_density(self, species, quantity):
235
252
  if self._simulation_folder is None:
236
253
  raise ValueError("Simulation folder not set. If you're using CustomDiagnostic, this method is not available.")
237
254
  self._path = f"{self._simulation_folder}/MS/DENSITY/{species}/{quantity}/"
238
- self._file_template = os.listdir(self._path)[0][:-9]
239
- self._maxiter = len(os.listdir(self._path))
255
+ self._file_template = glob.glob(f"{self._path}/*.h5")[0][:-9]
256
+ self._maxiter = len(glob.glob(f"{self._path}/*.h5"))
240
257
  self._load_attributes(self._file_template, self._input_deck)
241
258
 
242
259
  def _get_phase_space(self, species, type):
243
260
  if self._simulation_folder is None:
244
261
  raise ValueError("Simulation folder not set. If you're using CustomDiagnostic, this method is not available.")
245
262
  self._path = f"{self._simulation_folder}/MS/PHA/{type}/{species}/"
246
- self._file_template = os.listdir(self._path)[0][:-9]
247
- self._maxiter = len(os.listdir(self._path))
263
+ self._file_template = glob.glob(f"{self._path}/*.h5")[0][:-9]
264
+ self._maxiter = len(glob.glob(f"{self._path}/*.h5"))
248
265
  self._load_attributes(self._file_template, self._input_deck)
249
266
 
250
- def _load_attributes(self, file_template, input_deck): # this will be replaced by reading the input deck
267
+ def _load_attributes(self, file_template, input_deck): # this will be replaced by reading the input deck
251
268
  # This can go wrong! NDUMP
252
269
  # if input_deck is not None:
253
270
  # self._dt = float(input_deck["time_step"][0]["dt"])
254
- # self._ndump = int(input_deck["time_step"][0]["ndump"])
255
- # self._dim = get_dimension_from_deck(input_deck)
256
271
  # self._nx = np.array(list(map(int, input_deck["grid"][0][f"nx_p(1:{self._dim})"].split(','))))
257
272
  # xmin = [deval(input_deck["space"][0][f"xmin(1:{self._dim})"].split(',')[i]) for i in range(self._dim)]
258
273
  # xmax = [deval(input_deck["space"][0][f"xmax(1:{self._dim})"].split(',')[i]) for i in range(self._dim)]
@@ -260,30 +275,42 @@ class Diagnostic:
260
275
  # self._dx = (self._grid[:,1] - self._grid[:,0])/self._nx
261
276
  # self._x = [np.arange(self._grid[i,0], self._grid[i,1], self._dx[i]) for i in range(self._dim)]
262
277
 
278
+ self._ndump = int(input_deck["time_step"][0]["ndump"])
279
+
263
280
  try:
264
- path_file1 = os.path.join(self._path, file_template + "000001.h5")
265
- dump1 = OsirisGridFile(path_file1)
266
- self._dx = dump1.dx
267
- self._nx = dump1.nx
268
- self._x = dump1.x
269
- self._dt = dump1.dt
270
- self._grid = dump1.grid
271
- self._axis = dump1.axis
272
- self._units = dump1.units
273
- self._name = dump1.name
274
- self._label = dump1.label
275
- self._dim = dump1.dim
276
- self._ndump = dump1.iter
277
- self._tunits = dump1.time[1]
278
- except:
279
- pass
280
-
281
+ # Try files 000001, 000002, etc. until one is found
282
+ found_file = False
283
+ for file_num in range(1, self._maxiter + 1):
284
+ path_file = os.path.join(file_template + f"{file_num:06d}.h5")
285
+ if os.path.exists(path_file):
286
+ dump = OsirisGridFile(path_file)
287
+ self._dx = dump.dx
288
+ self._nx = dump.nx
289
+ self._x = dump.x
290
+ self._dt = dump.dt
291
+ self._grid = dump.grid
292
+ self._axis = dump.axis
293
+ self._units = dump.units
294
+ self._name = dump.name
295
+ self._label = dump.label
296
+ self._dim = dump.dim
297
+ # self._iter = dump.iter
298
+ self._tunits = dump.time[1]
299
+ self._type = dump.type
300
+ found_file = True
301
+ break
302
+
303
+ if not found_file:
304
+ warnings.warn(f"No valid data files found in {self._path} to read metadata from.")
305
+ except Exception as e:
306
+ warnings.warn(f"Error loading diagnostic attributes: {str(e)}. Please verify it there's any file in the folder.")
307
+
281
308
  def _data_generator(self, index):
282
309
  if self._simulation_folder is None:
283
310
  raise ValueError("Simulation folder not set.")
284
- file = os.path.join(self._path, self._file_template + f"{index:06d}.h5")
311
+ file = os.path.join(self._file_template + f"{index:06d}.h5")
285
312
  data_object = OsirisGridFile(file)
286
- yield data_object.data if self._quantity not in OSIRIS_DENSITY else self._species.rqm * data_object.data
313
+ yield (data_object.data if self._quantity not in OSIRIS_DENSITY else self._species.rqm * data_object.data)
287
314
 
288
315
  def load_all(self):
289
316
  """
@@ -298,45 +325,45 @@ class Diagnostic:
298
325
  if self._all_loaded and self._data is not None:
299
326
  print("Data already loaded.")
300
327
  return self._data
301
-
328
+
302
329
  # If this is a derived diagnostic without files
303
- if self._simulation_folder is None:
330
+ if hasattr(self, "postprocess_name") or hasattr(self, "created_diagnostic_name"):
304
331
  # If it has a data generator but no direct files
305
332
  try:
306
333
  print("This appears to be a derived diagnostic. Loading data from generators...")
307
334
  # Get the maximum size from the diagnostic attributes
308
- if hasattr(self, '_maxiter') and self._maxiter is not None:
335
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
309
336
  size = self._maxiter
310
337
  else:
311
338
  # Try to infer from a related diagnostic
312
- if hasattr(self, '_diag') and hasattr(self._diag, '_maxiter'):
339
+ if hasattr(self, "_diag") and hasattr(self._diag, "_maxiter"):
313
340
  size = self._diag._maxiter
314
341
  else:
315
342
  # Default to a reasonable number if we can't determine
316
343
  size = 100
317
344
  print(f"Warning: Could not determine timestep count, using {size}.")
318
-
345
+
319
346
  # Load data for all timesteps using the generator - this may take a while
320
347
  self._data = np.stack([self[i] for i in tqdm.tqdm(range(size), desc="Loading data")])
321
348
  self._all_loaded = True
322
349
  return self._data
323
-
350
+
324
351
  except Exception as e:
325
352
  raise ValueError(f"Could not load derived diagnostic data: {str(e)}")
326
-
353
+
327
354
  # Original implementation for file-based diagnostics
328
355
  print("Loading all data from files. This may take a while.")
329
- size = len(sorted(os.listdir(self._path)))
356
+ size = len(sorted(glob.glob(f"{self._path}/*.h5")))
330
357
  self._data = np.stack([self[i] for i in tqdm.tqdm(range(size), desc="Loading data")])
331
358
  self._all_loaded = True
332
359
  return self._data
333
-
360
+
334
361
  def unload(self):
335
362
  """
336
363
  Unload data from memory. This is useful to free memory when the data is not needed anymore.
337
364
  """
338
365
  print("Unloading data from memory.")
339
- if self._all_loaded == False:
366
+ if self._all_loaded is False:
340
367
  print("Data is not loaded.")
341
368
  return
342
369
  self._data = None
@@ -348,69 +375,104 @@ class Diagnostic:
348
375
  """
349
376
  self._data = next(self._data_generator(index))
350
377
 
378
+ # def __getitem__(self, index):
379
+ # # For derived diagnostics with cached data
380
+ # if self._all_loaded and self._data is not None:
381
+ # return self._data[index]
382
+
383
+ # # For standard diagnostics with files
384
+ # if isinstance(index, int):
385
+ # if self._simulation_folder is not None and hasattr(self, "_data_generator"):
386
+ # return next(self._data_generator(index))
387
+
388
+ # # For derived diagnostics with custom generators
389
+ # if hasattr(self, "_data_generator") and callable(self._data_generator):
390
+ # return next(self._data_generator(index))
391
+
392
+ # elif isinstance(index, slice):
393
+ # start = 0 if index.start is None else index.start
394
+ # step = 1 if index.step is None else index.step
395
+
396
+ # if index.stop is None:
397
+ # if hasattr(self, "_maxiter") and self._maxiter is not None:
398
+ # stop = self._maxiter
399
+ # elif self._simulation_folder is not None and hasattr(self, "_path"):
400
+ # stop = len(sorted(glob.glob(f"{self._path}/*.h5")))
401
+ # else:
402
+ # stop = 100 # Default if we can't determine
403
+ # print(
404
+ # f"Warning: Could not determine iteration count for iteration, using {stop}."
405
+ # )
406
+ # else:
407
+ # stop = index.stop
408
+
409
+ # indices = range(start, stop, step)
410
+ # if self._simulation_folder is not None and hasattr(self, "_data_generator"):
411
+ # return np.stack([next(self._data_generator(i)) for i in indices])
412
+ # elif hasattr(self, "_data_generator") and callable(self._data_generator):
413
+ # return np.stack([next(self._data_generator(i)) for i in indices])
414
+
415
+ # # If we get here, we don't know how to get data for this index
416
+ # raise ValueError(
417
+ # f"Cannot retrieve data for this diagnostic at index {index}. No data loaded and no generator available."
418
+ # )
419
+
351
420
  def __getitem__(self, index):
352
- # For derived diagnostics with cached data
353
421
  if self._all_loaded and self._data is not None:
354
422
  return self._data[index]
355
-
356
- # For standard diagnostics with files
423
+
424
+ data_gen = getattr(self, "_data_generator", None)
425
+ has_gen = callable(data_gen)
426
+
357
427
  if isinstance(index, int):
358
- if self._simulation_folder is not None and hasattr(self, '_data_generator'):
359
- return next(self._data_generator(index))
360
-
361
- # For derived diagnostics with custom generators
362
- if hasattr(self, '_data_generator') and callable(self._data_generator):
363
- return next(self._data_generator(index))
364
-
365
- elif isinstance(index, slice):
366
- start = 0 if index.start is None else index.start
367
- step = 1 if index.step is None else index.step
368
-
369
- if index.stop is None:
370
- if hasattr(self, '_maxiter') and self._maxiter is not None:
371
- stop = self._maxiter
372
- elif self._simulation_folder is not None and hasattr(self, '_path'):
373
- stop = len(sorted(os.listdir(self._path)))
374
- else:
375
- stop = 100 # Default if we can't determine
376
- print(f"Warning: Could not determine iteration count for iteration, using {stop}.")
377
- else:
378
- stop = index.stop
428
+ if has_gen:
429
+ try:
430
+ return next(data_gen(index))
431
+ except Exception as e:
432
+ raise RuntimeError(f"Error loading data at index {index}: {e}")
379
433
 
434
+ elif isinstance(index, slice):
435
+ start = index.start or 0
436
+ step = index.step or 1
437
+ stop = index.stop if index.stop is not None else self._maxiter
380
438
  indices = range(start, stop, step)
381
- if self._simulation_folder is not None and hasattr(self, '_data_generator'):
382
- return np.stack([next(self._data_generator(i)) for i in indices])
383
- elif hasattr(self, '_data_generator') and callable(self._data_generator):
384
- return np.stack([next(self._data_generator(i)) for i in indices])
385
-
386
- # If we get here, we don't know how to get data for this index
387
- raise ValueError(f"Cannot retrieve data for this diagnostic at index {index}. No data loaded and no generator available.")
388
-
439
+
440
+ if has_gen:
441
+ data_list = []
442
+ for i in indices:
443
+ try:
444
+ data_list.append(next(data_gen(i)))
445
+ except Exception as e:
446
+ raise RuntimeError(f"Error loading slice at index {i}: {e}")
447
+ return np.stack(data_list)
448
+
449
+ raise ValueError(f"Cannot retrieve data for index {index}. No data loaded and no generator available.")
450
+
389
451
  def __iter__(self):
390
452
  # If this is a file-based diagnostic
391
453
  if self._simulation_folder is not None:
392
- for i in range(len(sorted(os.listdir(self._path)))):
454
+ for i in range(len(sorted(glob.glob(f"{self._path}/*.h5")))):
393
455
  yield next(self._data_generator(i))
394
-
456
+
395
457
  # If this is a derived diagnostic and data is already loaded
396
458
  elif self._all_loaded and self._data is not None:
397
459
  for i in range(self._data.shape[0]):
398
460
  yield self._data[i]
399
-
461
+
400
462
  # If this is a derived diagnostic with custom generator but no loaded data
401
- elif hasattr(self, '_data_generator') and callable(self._data_generator):
463
+ elif hasattr(self, "_data_generator") and callable(self._data_generator):
402
464
  # Determine how many iterations to go through
403
465
  max_iter = self._maxiter
404
466
  if max_iter is None:
405
- if hasattr(self, '_diag') and hasattr(self._diag, '_maxiter'):
467
+ if hasattr(self, "_diag") and hasattr(self._diag, "_maxiter"):
406
468
  max_iter = self._diag._maxiter
407
469
  else:
408
470
  max_iter = 100 # Default if we can't determine
409
471
  print(f"Warning: Could not determine iteration count for iteration, using {max_iter}.")
410
-
472
+
411
473
  for i in range(max_iter):
412
474
  yield next(self._data_generator(i))
413
-
475
+
414
476
  # If we don't know how to handle this
415
477
  else:
416
478
  raise ValueError("Cannot iterate over this diagnostic. No data loaded and no generator available.")
@@ -418,42 +480,71 @@ class Diagnostic:
418
480
  def __add__(self, other):
419
481
  if isinstance(other, (int, float, np.ndarray)):
420
482
  result = Diagnostic(species=self._species)
421
-
422
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
483
+
484
+ for attr in [
485
+ "_dx",
486
+ "_nx",
487
+ "_x",
488
+ "_dt",
489
+ "_grid",
490
+ "_axis",
491
+ "_dim",
492
+ "_ndump",
493
+ "_maxiter",
494
+ "_tunits",
495
+ "_type",
496
+ "_simulation_folder",
497
+ ]:
423
498
  if hasattr(self, attr):
424
499
  setattr(result, attr, getattr(self, attr))
425
-
500
+
426
501
  # Make sure _maxiter is set even for derived diagnostics
427
- if not hasattr(result, '_maxiter') or result._maxiter is None:
428
- if hasattr(self, '_maxiter') and self._maxiter is not None:
502
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
503
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
429
504
  result._maxiter = self._maxiter
430
505
 
431
506
  # result._name = self._name + " + " + str(other) if isinstance(other, (int, float)) else self._name + " + np.ndarray"
432
-
507
+
433
508
  if self._all_loaded:
434
509
  result._data = self._data + other
435
510
  result._all_loaded = True
436
511
  else:
512
+
437
513
  def gen_scalar_add(original_gen, scalar):
438
514
  for val in original_gen:
439
515
  yield val + scalar
440
-
516
+
441
517
  original_generator = self._data_generator
442
518
  result._data_generator = lambda index: gen_scalar_add(original_generator(index), other)
443
-
519
+
520
+ result.created_diagnostic_name = "MISC"
521
+
444
522
  return result
445
523
 
446
524
  elif isinstance(other, Diagnostic):
447
525
  result = Diagnostic(species=self._species)
448
526
 
449
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
527
+ for attr in [
528
+ "_dx",
529
+ "_nx",
530
+ "_x",
531
+ "_dt",
532
+ "_grid",
533
+ "_axis",
534
+ "_dim",
535
+ "_ndump",
536
+ "_maxiter",
537
+ "_tunits",
538
+ "_type",
539
+ "_simulation_folder",
540
+ ]:
450
541
  if hasattr(self, attr):
451
542
  setattr(result, attr, getattr(self, attr))
452
-
453
- if not hasattr(result, '_maxiter') or result._maxiter is None:
454
- if hasattr(self, '_maxiter') and self._maxiter is not None:
543
+
544
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
545
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
455
546
  result._maxiter = self._maxiter
456
-
547
+
457
548
  # result._name = self._name + " + " + str(other._name)
458
549
 
459
550
  if self._all_loaded:
@@ -461,26 +552,42 @@ class Diagnostic:
461
552
  result._data = self._data + other._data
462
553
  result._all_loaded = True
463
554
  else:
555
+
464
556
  def gen_diag_add(original_gen1, original_gen2):
465
557
  for val1, val2 in zip(original_gen1, original_gen2):
466
558
  yield val1 + val2
467
-
559
+
468
560
  original_generator = self._data_generator
469
561
  other_generator = other._data_generator
470
562
  result._data_generator = lambda index: gen_diag_add(original_generator(index), other_generator(index))
471
563
 
564
+ result.created_diagnostic_name = "MISC"
565
+
472
566
  return result
473
-
567
+
474
568
  def __sub__(self, other):
475
569
  if isinstance(other, (int, float, np.ndarray)):
476
570
  result = Diagnostic(species=self._species)
477
-
478
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
571
+
572
+ for attr in [
573
+ "_dx",
574
+ "_nx",
575
+ "_x",
576
+ "_dt",
577
+ "_grid",
578
+ "_axis",
579
+ "_dim",
580
+ "_ndump",
581
+ "_maxiter",
582
+ "_tunits",
583
+ "_type",
584
+ "_simulation_folder",
585
+ ]:
479
586
  if hasattr(self, attr):
480
587
  setattr(result, attr, getattr(self, attr))
481
-
482
- if not hasattr(result, '_maxiter') or result._maxiter is None:
483
- if hasattr(self, '_maxiter') and self._maxiter is not None:
588
+
589
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
590
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
484
591
  result._maxiter = self._maxiter
485
592
 
486
593
  # result._name = self._name + " - " + str(other) if isinstance(other, (int, float)) else self._name + " - np.ndarray"
@@ -489,28 +596,42 @@ class Diagnostic:
489
596
  result._data = self._data - other
490
597
  result._all_loaded = True
491
598
  else:
599
+
492
600
  def gen_scalar_sub(original_gen, scalar):
493
601
  for val in original_gen:
494
602
  yield val - scalar
495
-
603
+
496
604
  original_generator = self._data_generator
497
605
  result._data_generator = lambda index: gen_scalar_sub(original_generator(index), other)
498
-
606
+
607
+ result.created_diagnostic_name = "MISC"
608
+
499
609
  return result
500
610
 
501
611
  elif isinstance(other, Diagnostic):
502
-
503
-
504
612
  result = Diagnostic(species=self._species)
505
613
 
506
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
614
+ for attr in [
615
+ "_dx",
616
+ "_nx",
617
+ "_x",
618
+ "_dt",
619
+ "_grid",
620
+ "_axis",
621
+ "_dim",
622
+ "_ndump",
623
+ "_maxiter",
624
+ "_tunits",
625
+ "_type",
626
+ "_simulation_folder",
627
+ ]:
507
628
  if hasattr(self, attr):
508
629
  setattr(result, attr, getattr(self, attr))
509
-
510
- if not hasattr(result, '_maxiter') or result._maxiter is None:
511
- if hasattr(self, '_maxiter') and self._maxiter is not None:
630
+
631
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
632
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
512
633
  result._maxiter = self._maxiter
513
-
634
+
514
635
  # result._name = self._name + " - " + str(other._name)
515
636
 
516
637
  if self._all_loaded:
@@ -518,54 +639,86 @@ class Diagnostic:
518
639
  result._data = self._data - other._data
519
640
  result._all_loaded = True
520
641
  else:
642
+
521
643
  def gen_diag_sub(original_gen1, original_gen2):
522
644
  for val1, val2 in zip(original_gen1, original_gen2):
523
645
  yield val1 - val2
524
-
646
+
525
647
  original_generator = self._data_generator
526
648
  other_generator = other._data_generator
527
649
  result._data_generator = lambda index: gen_diag_sub(original_generator(index), other_generator(index))
528
650
 
651
+ result.created_diagnostic_name = "MISC"
652
+
529
653
  return result
530
-
654
+
531
655
  def __mul__(self, other):
532
656
  if isinstance(other, (int, float, np.ndarray)):
533
657
  result = Diagnostic(species=self._species)
534
-
535
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
658
+
659
+ for attr in [
660
+ "_dx",
661
+ "_nx",
662
+ "_x",
663
+ "_dt",
664
+ "_grid",
665
+ "_axis",
666
+ "_dim",
667
+ "_ndump",
668
+ "_maxiter",
669
+ "_tunits",
670
+ "_type",
671
+ "_simulation_folder",
672
+ ]:
536
673
  if hasattr(self, attr):
537
674
  setattr(result, attr, getattr(self, attr))
538
-
539
- if not hasattr(result, '_maxiter') or result._maxiter is None:
540
- if hasattr(self, '_maxiter') and self._maxiter is not None:
675
+
676
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
677
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
541
678
  result._maxiter = self._maxiter
542
679
 
543
680
  # result._name = self._name + " * " + str(other) if isinstance(other, (int, float)) else self._name + " * np.ndarray"
544
-
681
+
545
682
  if self._all_loaded:
546
683
  result._data = self._data * other
547
684
  result._all_loaded = True
548
685
  else:
686
+
549
687
  def gen_scalar_mul(original_gen, scalar):
550
688
  for val in original_gen:
551
689
  yield val * scalar
552
-
690
+
553
691
  original_generator = self._data_generator
554
692
  result._data_generator = lambda index: gen_scalar_mul(original_generator(index), other)
555
-
693
+
694
+ result.created_diagnostic_name = "MISC"
695
+
556
696
  return result
557
697
 
558
698
  elif isinstance(other, Diagnostic):
559
699
  result = Diagnostic(species=self._species)
560
700
 
561
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
701
+ for attr in [
702
+ "_dx",
703
+ "_nx",
704
+ "_x",
705
+ "_dt",
706
+ "_grid",
707
+ "_axis",
708
+ "_dim",
709
+ "_ndump",
710
+ "_maxiter",
711
+ "_tunits",
712
+ "_type",
713
+ "_simulation_folder",
714
+ ]:
562
715
  if hasattr(self, attr):
563
716
  setattr(result, attr, getattr(self, attr))
564
-
565
- if not hasattr(result, '_maxiter') or result._maxiter is None:
566
- if hasattr(self, '_maxiter') and self._maxiter is not None:
717
+
718
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
719
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
567
720
  result._maxiter = self._maxiter
568
-
721
+
569
722
  # result._name = self._name + " * " + str(other._name)
570
723
 
571
724
  if self._all_loaded:
@@ -573,55 +726,86 @@ class Diagnostic:
573
726
  result._data = self._data * other._data
574
727
  result._all_loaded = True
575
728
  else:
729
+
576
730
  def gen_diag_mul(original_gen1, original_gen2):
577
731
  for val1, val2 in zip(original_gen1, original_gen2):
578
732
  yield val1 * val2
579
-
733
+
580
734
  original_generator = self._data_generator
581
735
  other_generator = other._data_generator
582
736
  result._data_generator = lambda index: gen_diag_mul(original_generator(index), other_generator(index))
583
737
 
738
+ result.created_diagnostic_name = "MISC"
739
+
584
740
  return result
585
-
741
+
586
742
  def __truediv__(self, other):
587
743
  if isinstance(other, (int, float, np.ndarray)):
588
744
  result = Diagnostic(species=self._species)
589
-
590
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
745
+
746
+ for attr in [
747
+ "_dx",
748
+ "_nx",
749
+ "_x",
750
+ "_dt",
751
+ "_grid",
752
+ "_axis",
753
+ "_dim",
754
+ "_ndump",
755
+ "_maxiter",
756
+ "_tunits",
757
+ "_type",
758
+ "_simulation_folder",
759
+ ]:
591
760
  if hasattr(self, attr):
592
761
  setattr(result, attr, getattr(self, attr))
593
-
594
- if not hasattr(result, '_maxiter') or result._maxiter is None:
595
- if hasattr(self, '_maxiter') and self._maxiter is not None:
762
+
763
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
764
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
596
765
  result._maxiter = self._maxiter
597
766
 
598
767
  # result._name = self._name + " / " + str(other) if isinstance(other, (int, float)) else self._name + " / np.ndarray"
599
-
768
+
600
769
  if self._all_loaded:
601
770
  result._data = self._data / other
602
771
  result._all_loaded = True
603
772
  else:
773
+
604
774
  def gen_scalar_div(original_gen, scalar):
605
775
  for val in original_gen:
606
776
  yield val / scalar
607
-
777
+
608
778
  original_generator = self._data_generator
609
779
  result._data_generator = lambda index: gen_scalar_div(original_generator(index), other)
610
-
780
+
781
+ result.created_diagnostic_name = "MISC"
782
+
611
783
  return result
612
784
 
613
785
  elif isinstance(other, Diagnostic):
614
-
615
786
  result = Diagnostic(species=self._species)
616
787
 
617
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
788
+ for attr in [
789
+ "_dx",
790
+ "_nx",
791
+ "_x",
792
+ "_dt",
793
+ "_grid",
794
+ "_axis",
795
+ "_dim",
796
+ "_ndump",
797
+ "_maxiter",
798
+ "_tunits",
799
+ "_type",
800
+ "_simulation_folder",
801
+ ]:
618
802
  if hasattr(self, attr):
619
803
  setattr(result, attr, getattr(self, attr))
620
-
621
- if not hasattr(result, '_maxiter') or result._maxiter is None:
622
- if hasattr(self, '_maxiter') and self._maxiter is not None:
804
+
805
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
806
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
623
807
  result._maxiter = self._maxiter
624
-
808
+
625
809
  # result._name = self._name + " / " + str(other._name)
626
810
 
627
811
  if self._all_loaded:
@@ -629,115 +813,289 @@ class Diagnostic:
629
813
  result._data = self._data / other._data
630
814
  result._all_loaded = True
631
815
  else:
816
+
632
817
  def gen_diag_div(original_gen1, original_gen2):
633
818
  for val1, val2 in zip(original_gen1, original_gen2):
634
819
  yield val1 / val2
635
-
820
+
636
821
  original_generator = self._data_generator
637
822
  other_generator = other._data_generator
638
823
  result._data_generator = lambda index: gen_diag_div(original_generator(index), other_generator(index))
639
824
 
825
+ result.created_diagnostic_name = "MISC"
826
+
640
827
  return result
641
-
828
+
642
829
  def __pow__(self, other):
643
- # power by scalar
830
+ # power by scalar
644
831
  if isinstance(other, (int, float)):
645
832
  result = Diagnostic(species=self._species)
646
833
 
647
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
834
+ for attr in [
835
+ "_dx",
836
+ "_nx",
837
+ "_x",
838
+ "_dt",
839
+ "_grid",
840
+ "_axis",
841
+ "_dim",
842
+ "_ndump",
843
+ "_maxiter",
844
+ "_tunits",
845
+ "_type",
846
+ "_simulation_folder",
847
+ ]:
648
848
  if hasattr(self, attr):
649
849
  setattr(result, attr, getattr(self, attr))
650
850
 
651
- if not hasattr(result, '_maxiter') or result._maxiter is None:
652
- if hasattr(self, '_maxiter') and self._maxiter is not None:
851
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
852
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
653
853
  result._maxiter = self._maxiter
654
854
 
655
855
  # result._name = self._name + " ^(" + str(other) + ")"
656
856
  # result._label = self._label + rf"$ ^{other}$"
657
857
 
658
858
  if self._all_loaded:
659
- result._data = self._data ** other
859
+ result._data = self._data**other
660
860
  result._all_loaded = True
661
861
  else:
862
+
662
863
  def gen_scalar_pow(original_gen, scalar):
663
864
  for val in original_gen:
664
- yield val ** scalar
865
+ yield val**scalar
665
866
 
666
867
  original_generator = self._data_generator
667
868
  result._data_generator = lambda index: gen_scalar_pow(original_generator(index), other)
668
869
 
870
+ result.created_diagnostic_name = "MISC"
871
+
669
872
  return result
670
-
873
+
671
874
  # power by another diagnostic
672
875
  elif isinstance(other, Diagnostic):
673
876
  raise ValueError("Power by another diagnostic is not supported. Why would you do that?")
674
877
 
675
878
  def __radd__(self, other):
676
879
  return self + other
677
-
678
- def __rsub__(self, other): # I don't know if this is correct because I'm not sure if the order of the subtraction is correct
679
- return - self + other
680
-
880
+
881
+ def __rsub__(self, other): # I don't know if this is correct because I'm not sure if the order of the subtraction is correct
882
+ return -self + other
883
+
681
884
  def __rmul__(self, other):
682
885
  return self * other
683
-
684
- def __rtruediv__(self, other): # division is not commutative
886
+
887
+ def __rtruediv__(self, other): # division is not commutative
685
888
  if isinstance(other, (int, float, np.ndarray)):
686
889
  result = Diagnostic(species=self._species)
687
-
688
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
890
+
891
+ for attr in [
892
+ "_dx",
893
+ "_nx",
894
+ "_x",
895
+ "_dt",
896
+ "_grid",
897
+ "_axis",
898
+ "_dim",
899
+ "_ndump",
900
+ "_maxiter",
901
+ "_tunits",
902
+ "_type",
903
+ "_simulation_folder",
904
+ ]:
689
905
  if hasattr(self, attr):
690
906
  setattr(result, attr, getattr(self, attr))
691
-
692
- if not hasattr(result, '_maxiter') or result._maxiter is None:
693
- if hasattr(self, '_maxiter') and self._maxiter is not None:
907
+
908
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
909
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
694
910
  result._maxiter = self._maxiter
695
911
 
696
912
  # result._name = str(other) + " / " + self._name if isinstance(other, (int, float)) else "np.ndarray / " + self._name
697
-
913
+
698
914
  if self._all_loaded:
699
915
  result._data = other / self._data
700
916
  result._all_loaded = True
701
917
  else:
918
+
702
919
  def gen_scalar_rdiv(scalar, original_gen):
703
920
  for val in original_gen:
704
921
  yield scalar / val
705
-
922
+
706
923
  original_generator = self._data_generator
707
924
  result._data_generator = lambda index: gen_scalar_rdiv(other, original_generator(index))
708
-
925
+
926
+ result.created_diagnostic_name = "MISC"
927
+
709
928
  return result
710
-
929
+
711
930
  elif isinstance(other, Diagnostic):
712
-
713
931
  result = Diagnostic(species=self._species)
714
932
 
715
- for attr in ['_dx', '_nx', '_x', '_dt', '_grid', '_axis', '_dim', '_ndump', '_maxiter']:
933
+ for attr in [
934
+ "_dx",
935
+ "_nx",
936
+ "_x",
937
+ "_dt",
938
+ "_grid",
939
+ "_axis",
940
+ "_dim",
941
+ "_ndump",
942
+ "_maxiter",
943
+ "_tunits",
944
+ "_type",
945
+ "_simulation_folder",
946
+ ]:
716
947
  if hasattr(self, attr):
717
948
  setattr(result, attr, getattr(self, attr))
718
-
719
- if not hasattr(result, '_maxiter') or result._maxiter is None:
720
- if hasattr(self, '_maxiter') and self._maxiter is not None:
949
+
950
+ if not hasattr(result, "_maxiter") or result._maxiter is None:
951
+ if hasattr(self, "_maxiter") and self._maxiter is not None:
721
952
  result._maxiter = self._maxiter
722
-
953
+
723
954
  # result._name = str(other._name) + " / " + self._name
724
955
 
725
956
  if self._all_loaded:
726
957
  other.load_all()
727
- result._data = other._data / self._data
958
+ result._data = other._data / self._data
728
959
  result._all_loaded = True
729
960
  else:
961
+
730
962
  def gen_diag_div(original_gen1, original_gen2):
731
963
  for val1, val2 in zip(original_gen1, original_gen2):
732
- yield val2 / val1
733
-
964
+ yield val2 / val1
965
+
734
966
  original_generator = self._data_generator
735
967
  other_generator = other._data_generator
736
968
  result._data_generator = lambda index: gen_diag_div(original_generator(index), other_generator(index))
737
969
 
970
+ result.created_diagnostic_name = "MISC"
971
+
738
972
  return result
739
973
 
740
- def plot_3d(self, idx, scale_type: Literal["zero_centered", "pos", "neg", "default"] = "default", boundaries: np.ndarray = None):
974
+ def to_h5(self, savename=None, index=None, all=False, verbose=False, path=None):
975
+ """
976
+ Save the diagnostic data to HDF5 files.
977
+
978
+ Parameters
979
+ ----------
980
+ savename : str, optional
981
+ The name of the HDF5 file. If None, uses the diagnostic name.
982
+ index : int, or list of ints, optional
983
+ The index or indices of the data to save.
984
+ all : bool, optional
985
+ If True, save all data. Default is False.
986
+ verbose : bool, optional
987
+ If True, print messages about the saving process.
988
+ path : str, optional
989
+ The path to save the HDF5 files. If None, uses the default save path (in simulation folder).
990
+ """
991
+ if path is None:
992
+ path = self._simulation_folder
993
+ self._save_path = path + f"/MS/MISC/{self._default_save}/{savename}"
994
+ else:
995
+ self._save_path = path
996
+ # Check if is has attribute created_diagnostic_name or postprocess_name
997
+ if savename is None:
998
+ print(f"No savename provided. Using {self._name}.")
999
+ savename = self._name
1000
+
1001
+ if hasattr(self, "created_diagnostic_name"):
1002
+ self._default_save = self.created_diagnostic_name
1003
+ elif hasattr(self, "postprocess_name"):
1004
+ self._default_save = self.postprocess_name
1005
+ else:
1006
+ self._default_save = "DIR_" + self._name
1007
+
1008
+ if not os.path.exists(self._save_path):
1009
+ os.makedirs(self._save_path)
1010
+ if verbose:
1011
+ print(f"Created folder {self._save_path}")
1012
+
1013
+ if verbose:
1014
+ print(f"Save Path: {self._save_path}")
1015
+
1016
+ def savefile(filename, i):
1017
+ with h5py.File(filename, "w") as f:
1018
+ # Create SIMULATION group with attributes
1019
+ sim_group = f.create_group("SIMULATION")
1020
+ sim_group.attrs.create("DT", [self._dt])
1021
+ sim_group.attrs.create("NDIMS", [self._dim])
1022
+
1023
+ # Set file attributes
1024
+ f.attrs.create("TIME", [self.time(i)[0]])
1025
+ f.attrs.create(
1026
+ "TIME UNITS",
1027
+ [(np.bytes_(self.time(i)[1].encode()) if self.time(i)[1] else np.bytes_(b""))],
1028
+ )
1029
+ f.attrs.create("ITER", [self._ndump * i])
1030
+ f.attrs.create("NAME", [np.bytes_(self._name.encode())])
1031
+ f.attrs.create("TYPE", [np.bytes_(self._type.encode())])
1032
+ f.attrs.create(
1033
+ "UNITS",
1034
+ [(np.bytes_(self._units.encode()) if self._units else np.bytes_(b""))],
1035
+ )
1036
+ f.attrs.create(
1037
+ "LABEL",
1038
+ [(np.bytes_(self._label.encode()) if self._label else np.bytes_(b""))],
1039
+ )
1040
+
1041
+ # Create dataset with data (transposed to match convention)
1042
+ f.create_dataset(savename, data=self[i].T)
1043
+
1044
+ # Create AXIS group
1045
+ axis_group = f.create_group("AXIS")
1046
+
1047
+ # Create axis datasets
1048
+ axis_names = ["AXIS1", "AXIS2", "AXIS3"][: self._dim]
1049
+ axis_shortnames = [self._axis[i]["name"] for i in range(self._dim)]
1050
+ axis_longnames = [self._axis[i]["long_name"] for i in range(self._dim)]
1051
+ axis_units = [self._axis[i]["units"] for i in range(self._dim)]
1052
+
1053
+ for i, axis_name in enumerate(axis_names):
1054
+ # Create axis dataset
1055
+ axis_dataset = axis_group.create_dataset(axis_name, data=np.array(self._grid[i]))
1056
+
1057
+ # Set axis attributes
1058
+ axis_dataset.attrs.create("NAME", [np.bytes_(axis_shortnames[i].encode())])
1059
+ axis_dataset.attrs.create("UNITS", [np.bytes_(axis_units[i].encode())])
1060
+ axis_dataset.attrs.create("LONG_NAME", [np.bytes_(axis_longnames[i].encode())])
1061
+ axis_dataset.attrs.create("TYPE", [np.bytes_("linear".encode())])
1062
+
1063
+ if verbose:
1064
+ print(f"File created: {filename}")
1065
+
1066
+ print(f"The savename of the diagnostic is {savename}. Files will be saves as {savename}-000001.h5, {savename}-000002.h5, etc.")
1067
+
1068
+ print("If you desire a different name, please set it with the 'name' method (setter).")
1069
+
1070
+ if self._name is None:
1071
+ raise ValueError("Diagnostic name is not set. Cannot save to HDF5.")
1072
+ if not os.path.exists(path):
1073
+ print(f"Creating folder {path}...")
1074
+ os.makedirs(path)
1075
+ if not os.path.isdir(path):
1076
+ raise ValueError(f"{path} is not a directory.")
1077
+
1078
+ if all is False:
1079
+ if isinstance(index, int):
1080
+ filename = self._save_path + f"/{savename}-{index:06d}.h5"
1081
+ savefile(filename, index)
1082
+ elif isinstance(index, list) or isinstance(index, tuple):
1083
+ for i in index:
1084
+ filename = self._save_path + f"/{savename}-{i:06d}.h5"
1085
+ savefile(filename, i)
1086
+ elif all is True:
1087
+ for i in range(self._maxiter):
1088
+ filename = self._save_path + f"/{savename}-{i:06d}.h5"
1089
+ savefile(filename, i)
1090
+ else:
1091
+ raise ValueError("index should be an int, slice, or list of ints, or all should be True")
1092
+
1093
+ def plot_3d(
1094
+ self,
1095
+ idx,
1096
+ scale_type: Literal["zero_centered", "pos", "neg", "default"] = "default",
1097
+ boundaries: np.ndarray = None,
1098
+ ):
741
1099
  """
742
1100
  Plots a 3D scatter plot of the diagnostic data (grid data).
743
1101
 
@@ -768,23 +1126,22 @@ class Diagnostic:
768
1126
  plt.show()
769
1127
  """
770
1128
 
771
-
772
1129
  if self._dim != 3:
773
1130
  raise ValueError("This method is only available for 3D diagnostics.")
774
-
1131
+
775
1132
  if boundaries is None:
776
1133
  boundaries = self._grid
777
1134
 
778
1135
  if not isinstance(boundaries, np.ndarray):
779
- try :
1136
+ try:
780
1137
  boundaries = np.array(boundaries)
781
- except:
782
- boundaries = self._grid
1138
+ except Exception:
1139
+ boundaries = self._grid
783
1140
  warnings.warn("boundaries cannot be accessed as a numpy array with shape (3, 2), using default instead")
784
1141
 
785
1142
  if boundaries.shape != (3, 2):
786
1143
  warnings.warn("boundaries should have shape (3, 2), using default instead")
787
- boundaries = self._grid
1144
+ boundaries = self._grid
788
1145
 
789
1146
  # Load data
790
1147
  if self._all_loaded:
@@ -795,12 +1152,32 @@ class Diagnostic:
795
1152
  X, Y, Z = np.meshgrid(self._x[0], self._x[1], self._x[2], indexing="ij")
796
1153
 
797
1154
  # Flatten arrays for scatter plot
798
- X_flat, Y_flat, Z_flat, = X.ravel(), Y.ravel(), Z.ravel()
1155
+ (
1156
+ X_flat,
1157
+ Y_flat,
1158
+ Z_flat,
1159
+ ) = (
1160
+ X.ravel(),
1161
+ Y.ravel(),
1162
+ Z.ravel(),
1163
+ )
799
1164
  data_flat = data.ravel()
800
1165
 
801
1166
  # Apply filter: Keep only chosen points
802
- mask = (X_flat > boundaries[0][0]) & (X_flat < boundaries[0][1]) & (Y_flat > boundaries[1][0]) & (Y_flat < boundaries[1][1]) & (Z_flat > boundaries[2][0]) & (Z_flat < boundaries[2][1])
803
- X_cut, Y_cut, Z_cut, data_cut = X_flat[mask], Y_flat[mask], Z_flat[mask], data_flat[mask]
1167
+ mask = (
1168
+ (X_flat > boundaries[0][0])
1169
+ & (X_flat < boundaries[0][1])
1170
+ & (Y_flat > boundaries[1][0])
1171
+ & (Y_flat < boundaries[1][1])
1172
+ & (Z_flat > boundaries[2][0])
1173
+ & (Z_flat < boundaries[2][1])
1174
+ )
1175
+ X_cut, Y_cut, Z_cut, data_cut = (
1176
+ X_flat[mask],
1177
+ Y_flat[mask],
1178
+ Z_flat[mask],
1179
+ data_flat[mask],
1180
+ )
804
1181
 
805
1182
  if scale_type == "zero_centered":
806
1183
  # Center colormap around zero
@@ -858,78 +1235,102 @@ class Diagnostic:
858
1235
  @property
859
1236
  def dx(self):
860
1237
  return self._dx
861
-
1238
+
862
1239
  @property
863
1240
  def nx(self):
864
1241
  return self._nx
865
-
1242
+
866
1243
  @property
867
1244
  def x(self):
868
1245
  return self._x
869
-
1246
+
870
1247
  @property
871
1248
  def dt(self):
872
1249
  return self._dt
873
-
1250
+
874
1251
  @property
875
1252
  def grid(self):
876
1253
  return self._grid
877
-
1254
+
878
1255
  @property
879
1256
  def axis(self):
880
1257
  return self._axis
881
-
1258
+
882
1259
  @property
883
1260
  def units(self):
884
1261
  return self._units
885
-
1262
+
886
1263
  @property
887
1264
  def tunits(self):
888
1265
  return self._tunits
889
-
1266
+
890
1267
  @property
891
1268
  def name(self):
892
1269
  return self._name
893
-
1270
+
894
1271
  @property
895
1272
  def dim(self):
896
1273
  return self._dim
897
-
1274
+
898
1275
  @property
899
1276
  def path(self):
900
1277
  return self
901
-
1278
+
902
1279
  @property
903
1280
  def simulation_folder(self):
904
1281
  return self._simulation_folder
905
-
1282
+
906
1283
  @property
907
1284
  def ndump(self):
908
1285
  return self._ndump
909
-
1286
+
1287
+ # @property
1288
+ # def iter(self):
1289
+ # return self._iter
1290
+
910
1291
  @property
911
1292
  def all_loaded(self):
912
1293
  return self._all_loaded
913
-
1294
+
914
1295
  @property
915
1296
  def maxiter(self):
916
1297
  return self._maxiter
917
-
1298
+
918
1299
  @property
919
1300
  def label(self):
920
1301
  return self._label
921
1302
 
1303
+ @property
1304
+ def type(self):
1305
+ return self._type
1306
+
922
1307
  @property
923
1308
  def quantity(self):
924
1309
  return self._quantity
925
-
1310
+
926
1311
  def time(self, index):
927
1312
  return [index * self._dt * self._ndump, self._tunits]
928
-
1313
+
1314
+ def attributes_to_save(self, index):
1315
+ """
1316
+ Prints the attributes of the diagnostic.
1317
+ """
1318
+ print(
1319
+ f"dt: {self._dt}\n"
1320
+ f"dim: {self._dim}\n"
1321
+ f"time: {self.time(index)[0]}\n"
1322
+ f"tunits: {self.time(index)[1]}\n"
1323
+ f"iter: {self._ndump * index}\n"
1324
+ f"name: {self._name}\n"
1325
+ f"type: {self._type}\n"
1326
+ f"label: {self._label}\n"
1327
+ f"units: {self._units}"
1328
+ )
1329
+
929
1330
  @dx.setter
930
1331
  def dx(self, value):
931
1332
  self._dx = value
932
-
1333
+
933
1334
  @nx.setter
934
1335
  def nx(self, value):
935
1336
  self._nx = value
@@ -957,7 +1358,7 @@ class Diagnostic:
957
1358
  @tunits.setter
958
1359
  def tunits(self, value):
959
1360
  self._tunits = value
960
-
1361
+
961
1362
  @name.setter
962
1363
  def name(self, value):
963
1364
  self._name = value
@@ -969,11 +1370,15 @@ class Diagnostic:
969
1370
  @ndump.setter
970
1371
  def ndump(self, value):
971
1372
  self._ndump = value
972
-
1373
+
973
1374
  @data.setter
974
1375
  def data(self, value):
975
- self._data = value
1376
+ self._data = value
976
1377
 
977
1378
  @quantity.setter
978
1379
  def quantity(self, key):
979
- self._quantity = key
1380
+ self._quantity = key
1381
+
1382
+ @label.setter
1383
+ def label(self, value):
1384
+ self._label = value