primat 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. primat-0.3.0/LICENCE +9 -0
  2. primat-0.3.0/MANIFEST.in +4 -0
  3. primat-0.3.0/PKG-INFO +415 -0
  4. primat-0.3.0/README.md +378 -0
  5. primat-0.3.0/primat/__init__.py +28 -0
  6. primat-0.3.0/primat/_primat_c/_wrapper.c +727 -0
  7. primat-0.3.0/primat/backend.py +476 -0
  8. primat-0.3.0/primat/background.py +1384 -0
  9. primat-0.3.0/primat/cache_utils.py +172 -0
  10. primat-0.3.0/primat/cli.py +332 -0
  11. primat-0.3.0/primat/config.py +798 -0
  12. primat-0.3.0/primat/constants.py +275 -0
  13. primat-0.3.0/primat/data/NEVO/NEVOGrid.csv +80 -0
  14. primat-0.3.0/primat/data/NEVO/NEVOPRIMAT.csv +600 -0
  15. primat-0.3.0/primat/data/NEVO/NEVOPRIMAT_NoQED.csv +600 -0
  16. primat-0.3.0/primat/data/NEVO/NEVOPRIMAT_NoQED_col_1_7.csv +600 -0
  17. primat-0.3.0/primat/data/NEVO/NEVOPRIMAT_col_1_7.csv +600 -0
  18. primat-0.3.0/primat/data/csv/detailed_balance.csv +391 -0
  19. primat-0.3.0/primat/data/csv/nuclides.csv +60 -0
  20. primat-0.3.0/primat/data/csv/reactions_large.csv +429 -0
  21. primat-0.3.0/primat/data/nuclear/networks/large.txt +428 -0
  22. primat-0.3.0/primat/data/nuclear/networks/small.txt +12 -0
  23. primat-0.3.0/primat/data/nuclear/networks/small_parthenope.txt +15 -0
  24. primat-0.3.0/primat/data/nuclear/tables/B10_He3__C11_d/B10_He3__C11_d_primat.txt +503 -0
  25. primat-0.3.0/primat/data/nuclear/tables/B10_He3__C12_p/B10_He3__C12_p_primat.txt +503 -0
  26. primat-0.3.0/primat/data/nuclear/tables/B10_He3__N12_n/B10_He3__N12_n_primat.txt +503 -0
  27. primat-0.3.0/primat/data/nuclear/tables/B10_He3__N13_g/B10_He3__N13_g_primat.txt +503 -0
  28. primat-0.3.0/primat/data/nuclear/tables/B10_a__C12_d/B10_a__C12_d_primat.txt +503 -0
  29. primat-0.3.0/primat/data/nuclear/tables/B10_a__C13_p/B10_a__C13_p_primat.txt +503 -0
  30. primat-0.3.0/primat/data/nuclear/tables/B10_a__N13_n/B10_a__N13_n_primat.txt +503 -0
  31. primat-0.3.0/primat/data/nuclear/tables/B10_a__N14_g/B10_a__N14_g_primat.txt +503 -0
  32. primat-0.3.0/primat/data/nuclear/tables/B10_d__B11_p/B10_d__B11_p_primat.txt +503 -0
  33. primat-0.3.0/primat/data/nuclear/tables/B10_d__C11_n/B10_d__C11_n_primat.txt +503 -0
  34. primat-0.3.0/primat/data/nuclear/tables/B10_d__C12_g/B10_d__C12_g_primat.txt +503 -0
  35. primat-0.3.0/primat/data/nuclear/tables/B10_d__a_a_a/B10_d__a_a_a_primat.txt +503 -0
  36. primat-0.3.0/primat/data/nuclear/tables/B10_n__B11_g/B10_n__B11_g_primat.txt +503 -0
  37. primat-0.3.0/primat/data/nuclear/tables/B10_n__Be10_p/B10_n__Be10_p_primat.txt +503 -0
  38. primat-0.3.0/primat/data/nuclear/tables/B10_n__a_a_t/B10_n__a_a_t_primat.txt +503 -0
  39. primat-0.3.0/primat/data/nuclear/tables/B10_p__Be7_a/B10_p__Be7_a_primat.txt +503 -0
  40. primat-0.3.0/primat/data/nuclear/tables/B10_p__C11_g/B10_p__C11_g_primat.txt +503 -0
  41. primat-0.3.0/primat/data/nuclear/tables/B10_p__a_a_He3/B10_p__a_a_He3_primat.txt +503 -0
  42. primat-0.3.0/primat/data/nuclear/tables/B10_t__B11_d/B10_t__B11_d_primat.txt +503 -0
  43. primat-0.3.0/primat/data/nuclear/tables/B10_t__B12_p/B10_t__B12_p_primat.txt +503 -0
  44. primat-0.3.0/primat/data/nuclear/tables/B10_t__Be9_a/B10_t__Be9_a_primat.txt +503 -0
  45. primat-0.3.0/primat/data/nuclear/tables/B10_t__C12_n/B10_t__C12_n_primat.txt +503 -0
  46. primat-0.3.0/primat/data/nuclear/tables/B10_t__C13_g/B10_t__C13_g_primat.txt +503 -0
  47. primat-0.3.0/primat/data/nuclear/tables/B11_He3__B10_a/B11_He3__B10_a_primat.txt +503 -0
  48. primat-0.3.0/primat/data/nuclear/tables/B11_He3__C12_d/B11_He3__C12_d_primat.txt +503 -0
  49. primat-0.3.0/primat/data/nuclear/tables/B11_He3__C13_p/B11_He3__C13_p_primat.txt +503 -0
  50. primat-0.3.0/primat/data/nuclear/tables/B11_He3__N13_n/B11_He3__N13_n_primat.txt +503 -0
  51. primat-0.3.0/primat/data/nuclear/tables/B11_He3__N14_g/B11_He3__N14_g_primat.txt +503 -0
  52. primat-0.3.0/primat/data/nuclear/tables/B11_a__C14_p/B11_a__C14_p_primat.txt +503 -0
  53. primat-0.3.0/primat/data/nuclear/tables/B11_a__N14_n/B11_a__N14_n_primat.txt +503 -0
  54. primat-0.3.0/primat/data/nuclear/tables/B11_a__N15_g/B11_a__N15_g_primat.txt +503 -0
  55. primat-0.3.0/primat/data/nuclear/tables/B11_d__B12_p/B11_d__B12_p_primat.txt +503 -0
  56. primat-0.3.0/primat/data/nuclear/tables/B11_d__Be9_a/B11_d__Be9_a_primat.txt +503 -0
  57. primat-0.3.0/primat/data/nuclear/tables/B11_d__C12_n/B11_d__C12_n_primat.txt +503 -0
  58. primat-0.3.0/primat/data/nuclear/tables/B11_d__C13_g/B11_d__C13_g_primat.txt +503 -0
  59. primat-0.3.0/primat/data/nuclear/tables/B11_n__B12_g/B11_n__B12_g_primat.txt +503 -0
  60. primat-0.3.0/primat/data/nuclear/tables/B11_p__C11_n/B11_p__C11_n_primat.txt +503 -0
  61. primat-0.3.0/primat/data/nuclear/tables/B11_p__C12_g/B11_p__C12_g_primat.txt +503 -0
  62. primat-0.3.0/primat/data/nuclear/tables/B11_p__a_a_a/B11_p__a_a_a_primat.txt +503 -0
  63. primat-0.3.0/primat/data/nuclear/tables/B11_t__B13_p/B11_t__B13_p_primat.txt +503 -0
  64. primat-0.3.0/primat/data/nuclear/tables/B11_t__Be10_a/B11_t__Be10_a_primat.txt +503 -0
  65. primat-0.3.0/primat/data/nuclear/tables/B11_t__C13_n/B11_t__C13_n_primat.txt +503 -0
  66. primat-0.3.0/primat/data/nuclear/tables/B11_t__C14_g/B11_t__C14_g_primat.txt +503 -0
  67. primat-0.3.0/primat/data/nuclear/tables/B12_He3__B11_a/B12_He3__B11_a_primat.txt +503 -0
  68. primat-0.3.0/primat/data/nuclear/tables/B12_He3__C14_p/B12_He3__C14_p_primat.txt +503 -0
  69. primat-0.3.0/primat/data/nuclear/tables/B12_He3__N14_n/B12_He3__N14_n_primat.txt +503 -0
  70. primat-0.3.0/primat/data/nuclear/tables/B12_He3__N15_g/B12_He3__N15_g_primat.txt +503 -0
  71. primat-0.3.0/primat/data/nuclear/tables/B12_a__N15_n/B12_a__N15_n_primat.txt +503 -0
  72. primat-0.3.0/primat/data/nuclear/tables/B12_a__N16_g/B12_a__N16_g_primat.txt +503 -0
  73. primat-0.3.0/primat/data/nuclear/tables/B12_d__B13_p/B12_d__B13_p_primat.txt +503 -0
  74. primat-0.3.0/primat/data/nuclear/tables/B12_d__Be10_a/B12_d__Be10_a_primat.txt +503 -0
  75. primat-0.3.0/primat/data/nuclear/tables/B12_d__C13_n/B12_d__C13_n_primat.txt +503 -0
  76. primat-0.3.0/primat/data/nuclear/tables/B12_d__C14_g/B12_d__C14_g_primat.txt +503 -0
  77. primat-0.3.0/primat/data/nuclear/tables/B12_n__B13_g/B12_n__B13_g_primat.txt +503 -0
  78. primat-0.3.0/primat/data/nuclear/tables/B12_p__Be9_a/B12_p__Be9_a_primat.txt +503 -0
  79. primat-0.3.0/primat/data/nuclear/tables/B12_p__C12_n/B12_p__C12_n_primat.txt +503 -0
  80. primat-0.3.0/primat/data/nuclear/tables/B12_p__C13_g/B12_p__C13_g_primat.txt +503 -0
  81. primat-0.3.0/primat/data/nuclear/tables/B12_t__Be11_a/B12_t__Be11_a_primat.txt +503 -0
  82. primat-0.3.0/primat/data/nuclear/tables/B12_t__C14_n/B12_t__C14_n_primat.txt +503 -0
  83. primat-0.3.0/primat/data/nuclear/tables/B12_t__C15_g/B12_t__C15_g_primat.txt +503 -0
  84. primat-0.3.0/primat/data/nuclear/tables/B8_He3__C10_p/B8_He3__C10_p_primat.txt +503 -0
  85. primat-0.3.0/primat/data/nuclear/tables/B8_a__C11_p/B8_a__C11_p_primat.txt +503 -0
  86. primat-0.3.0/primat/data/nuclear/tables/B8_a__N12_g/B8_a__N12_g_primat.txt +503 -0
  87. primat-0.3.0/primat/data/nuclear/tables/B8_d__Be7_He3/B8_d__Be7_He3_primat.txt +503 -0
  88. primat-0.3.0/primat/data/nuclear/tables/B8_d__C10_g/B8_d__C10_g_primat.txt +503 -0
  89. primat-0.3.0/primat/data/nuclear/tables/B8_n__Be7_d/B8_n__Be7_d_primat.txt +503 -0
  90. primat-0.3.0/primat/data/nuclear/tables/B8_n__Li6_He3/B8_n__Li6_He3_primat.txt +503 -0
  91. primat-0.3.0/primat/data/nuclear/tables/B8_n__a_a_p/B8_n__a_a_p_primat.txt +503 -0
  92. primat-0.3.0/primat/data/nuclear/tables/B8_p__C9_g/B8_p__C9_g_primat.txt +503 -0
  93. primat-0.3.0/primat/data/nuclear/tables/B8_t__B10_p/B8_t__B10_p_primat.txt +503 -0
  94. primat-0.3.0/primat/data/nuclear/tables/B8_t__Be7_a/B8_t__Be7_a_primat.txt +503 -0
  95. primat-0.3.0/primat/data/nuclear/tables/B8_t__C10_n/B8_t__C10_n_primat.txt +503 -0
  96. primat-0.3.0/primat/data/nuclear/tables/B8_t__C11_g/B8_t__C11_g_primat.txt +503 -0
  97. primat-0.3.0/primat/data/nuclear/tables/B8_t__a_a_He3/B8_t__a_a_He3_primat.txt +503 -0
  98. primat-0.3.0/primat/data/nuclear/tables/Be10_He3__B10_t/Be10_He3__B10_t_primat.txt +503 -0
  99. primat-0.3.0/primat/data/nuclear/tables/Be10_He3__B11_d/Be10_He3__B11_d_primat.txt +503 -0
  100. primat-0.3.0/primat/data/nuclear/tables/Be10_He3__B12_p/Be10_He3__B12_p_primat.txt +503 -0
  101. primat-0.3.0/primat/data/nuclear/tables/Be10_He3__Be9_a/Be10_He3__Be9_a_primat.txt +503 -0
  102. primat-0.3.0/primat/data/nuclear/tables/Be10_He3__C12_n/Be10_He3__C12_n_primat.txt +503 -0
  103. primat-0.3.0/primat/data/nuclear/tables/Be10_He3__C13_g/Be10_He3__C13_g_primat.txt +503 -0
  104. primat-0.3.0/primat/data/nuclear/tables/Be10_a__C13_n/Be10_a__C13_n_primat.txt +503 -0
  105. primat-0.3.0/primat/data/nuclear/tables/Be10_a__C14_g/Be10_a__C14_g_primat.txt +503 -0
  106. primat-0.3.0/primat/data/nuclear/tables/Be10_d__B11_n/Be10_d__B11_n_primat.txt +503 -0
  107. primat-0.3.0/primat/data/nuclear/tables/Be10_d__B12_g/Be10_d__B12_g_primat.txt +503 -0
  108. primat-0.3.0/primat/data/nuclear/tables/Be10_d__Li8_a/Be10_d__Li8_a_primat.txt +503 -0
  109. primat-0.3.0/primat/data/nuclear/tables/Be10_n__Be11_g/Be10_n__Be11_g_primat.txt +503 -0
  110. primat-0.3.0/primat/data/nuclear/tables/Be10_p__B11_g/Be10_p__B11_g_primat.txt +503 -0
  111. primat-0.3.0/primat/data/nuclear/tables/Be10_p__Li7_a/Be10_p__Li7_a_primat.txt +503 -0
  112. primat-0.3.0/primat/data/nuclear/tables/Be10_p__a_a_t/Be10_p__a_a_t_primat.txt +503 -0
  113. primat-0.3.0/primat/data/nuclear/tables/Be10_t__B12_n/Be10_t__B12_n_primat.txt +503 -0
  114. primat-0.3.0/primat/data/nuclear/tables/Be10_t__B13_g/Be10_t__B13_g_primat.txt +503 -0
  115. primat-0.3.0/primat/data/nuclear/tables/Be10_t__Li9_a/Be10_t__Li9_a_primat.txt +503 -0
  116. primat-0.3.0/primat/data/nuclear/tables/Be11_He3__B13_p/Be11_He3__B13_p_primat.txt +503 -0
  117. primat-0.3.0/primat/data/nuclear/tables/Be11_He3__Be10_a/Be11_He3__Be10_a_primat.txt +503 -0
  118. primat-0.3.0/primat/data/nuclear/tables/Be11_He3__C13_n/Be11_He3__C13_n_primat.txt +503 -0
  119. primat-0.3.0/primat/data/nuclear/tables/Be11_He3__C14_g/Be11_He3__C14_g_primat.txt +503 -0
  120. primat-0.3.0/primat/data/nuclear/tables/Be11_a__C14_n/Be11_a__C14_n_primat.txt +503 -0
  121. primat-0.3.0/primat/data/nuclear/tables/Be11_a__C15_g/Be11_a__C15_g_primat.txt +503 -0
  122. primat-0.3.0/primat/data/nuclear/tables/Be11_d__B12_n/Be11_d__B12_n_primat.txt +503 -0
  123. primat-0.3.0/primat/data/nuclear/tables/Be11_d__B13_g/Be11_d__B13_g_primat.txt +503 -0
  124. primat-0.3.0/primat/data/nuclear/tables/Be11_d__Be12_p/Be11_d__Be12_p_primat.txt +503 -0
  125. primat-0.3.0/primat/data/nuclear/tables/Be11_d__Li9_a/Be11_d__Li9_a_primat.txt +503 -0
  126. primat-0.3.0/primat/data/nuclear/tables/Be11_n__Be12_g/Be11_n__Be12_g_primat.txt +503 -0
  127. primat-0.3.0/primat/data/nuclear/tables/Be11_p__B11_n/Be11_p__B11_n_primat.txt +503 -0
  128. primat-0.3.0/primat/data/nuclear/tables/Be11_p__B12_g/Be11_p__B12_g_primat.txt +503 -0
  129. primat-0.3.0/primat/data/nuclear/tables/Be11_p__Be10_d/Be11_p__Be10_d_primat.txt +503 -0
  130. primat-0.3.0/primat/data/nuclear/tables/Be11_p__Be9_t/Be11_p__Be9_t_primat.txt +503 -0
  131. primat-0.3.0/primat/data/nuclear/tables/Be11_p__Li8_a/Be11_p__Li8_a_primat.txt +503 -0
  132. primat-0.3.0/primat/data/nuclear/tables/Be11_t__B13_n/Be11_t__B13_n_primat.txt +503 -0
  133. primat-0.3.0/primat/data/nuclear/tables/Be11_t__B14_g/Be11_t__B14_g_primat.txt +503 -0
  134. primat-0.3.0/primat/data/nuclear/tables/Be12_He3__B14_p/Be12_He3__B14_p_primat.txt +503 -0
  135. primat-0.3.0/primat/data/nuclear/tables/Be12_He3__Be11_a/Be12_He3__Be11_a_primat.txt +503 -0
  136. primat-0.3.0/primat/data/nuclear/tables/Be12_He3__C14_n/Be12_He3__C14_n_primat.txt +503 -0
  137. primat-0.3.0/primat/data/nuclear/tables/Be12_He3__C15_g/Be12_He3__C15_g_primat.txt +503 -0
  138. primat-0.3.0/primat/data/nuclear/tables/Be12_a__C15_n/Be12_a__C15_n_primat.txt +503 -0
  139. primat-0.3.0/primat/data/nuclear/tables/Be12_a__C16_g/Be12_a__C16_g_primat.txt +503 -0
  140. primat-0.3.0/primat/data/nuclear/tables/Be12_d__B13_n/Be12_d__B13_n_primat.txt +503 -0
  141. primat-0.3.0/primat/data/nuclear/tables/Be12_d__B14_g/Be12_d__B14_g_primat.txt +503 -0
  142. primat-0.3.0/primat/data/nuclear/tables/Be12_p__B12_n/Be12_p__B12_n_primat.txt +503 -0
  143. primat-0.3.0/primat/data/nuclear/tables/Be12_p__B13_g/Be12_p__B13_g_primat.txt +503 -0
  144. primat-0.3.0/primat/data/nuclear/tables/Be12_p__Be10_t/Be12_p__Be10_t_primat.txt +503 -0
  145. primat-0.3.0/primat/data/nuclear/tables/Be12_p__Li9_a/Be12_p__Li9_a_primat.txt +503 -0
  146. primat-0.3.0/primat/data/nuclear/tables/Be12_t__B14_n/Be12_t__B14_n_primat.txt +503 -0
  147. primat-0.3.0/primat/data/nuclear/tables/Be12_t__B15_g/Be12_t__B15_g_primat.txt +503 -0
  148. primat-0.3.0/primat/data/nuclear/tables/Be7_He3__C10_g/Be7_He3__C10_g_primat.txt +503 -0
  149. primat-0.3.0/primat/data/nuclear/tables/Be7_He3__a_a_p_p/Be7_He3__a_a_p_p_primat.txt +503 -0
  150. primat-0.3.0/primat/data/nuclear/tables/Be7_He3__p_p_a_a/Be7_He3__p_p_a_a_primat.txt +503 -0
  151. primat-0.3.0/primat/data/nuclear/tables/Be7_a__C11_g/Be7_a__C11_g_primat.txt +503 -0
  152. primat-0.3.0/primat/data/nuclear/tables/Be7_d__a_a_p/Be7_d__a_a_p_primat.txt +503 -0
  153. primat-0.3.0/primat/data/nuclear/tables/Be7_n__Li7_p/Be7_n__Li7_p_parthenope3.0.txt +506 -0
  154. primat-0.3.0/primat/data/nuclear/tables/Be7_n__Li7_p/Be7_n__Li7_p_primat.txt +503 -0
  155. primat-0.3.0/primat/data/nuclear/tables/Be7_n__a_a/Be7_n__a_a_primat.txt +503 -0
  156. primat-0.3.0/primat/data/nuclear/tables/Be7_p__B8_g/Be7_p__B8_g_primat.txt +503 -0
  157. primat-0.3.0/primat/data/nuclear/tables/Be7_t__B10_g/Be7_t__B10_g_primat.txt +503 -0
  158. primat-0.3.0/primat/data/nuclear/tables/Be7_t__Be9_p/Be7_t__Be9_p_primat.txt +503 -0
  159. primat-0.3.0/primat/data/nuclear/tables/Be7_t__Li6_a/Be7_t__Li6_a_primat.txt +503 -0
  160. primat-0.3.0/primat/data/nuclear/tables/Be7_t__Li7_He3/Be7_t__Li7_He3_primat.txt +503 -0
  161. primat-0.3.0/primat/data/nuclear/tables/Be7_t__a_a_d/Be7_t__a_a_d_primat.txt +503 -0
  162. primat-0.3.0/primat/data/nuclear/tables/Be7_t__a_a_n_p/Be7_t__a_a_n_p_primat.txt +503 -0
  163. primat-0.3.0/primat/data/nuclear/tables/Be9_He3__B10_d/Be9_He3__B10_d_primat.txt +503 -0
  164. primat-0.3.0/primat/data/nuclear/tables/Be9_He3__B11_p/Be9_He3__B11_p_primat.txt +503 -0
  165. primat-0.3.0/primat/data/nuclear/tables/Be9_He3__C11_n/Be9_He3__C11_n_primat.txt +503 -0
  166. primat-0.3.0/primat/data/nuclear/tables/Be9_He3__C12_g/Be9_He3__C12_g_primat.txt +503 -0
  167. primat-0.3.0/primat/data/nuclear/tables/Be9_He3__a_a_a/Be9_He3__a_a_a_primat.txt +503 -0
  168. primat-0.3.0/primat/data/nuclear/tables/Be9_a__C12_n/Be9_a__C12_n_primat.txt +503 -0
  169. primat-0.3.0/primat/data/nuclear/tables/Be9_a__C13_g/Be9_a__C13_g_primat.txt +503 -0
  170. primat-0.3.0/primat/data/nuclear/tables/Be9_d__B10_n/Be9_d__B10_n_primat.txt +503 -0
  171. primat-0.3.0/primat/data/nuclear/tables/Be9_d__B11_g/Be9_d__B11_g_primat.txt +503 -0
  172. primat-0.3.0/primat/data/nuclear/tables/Be9_d__Be10_p/Be9_d__Be10_p_primat.txt +503 -0
  173. primat-0.3.0/primat/data/nuclear/tables/Be9_d__Li7_a/Be9_d__Li7_a_primat.txt +503 -0
  174. primat-0.3.0/primat/data/nuclear/tables/Be9_d__a_a_t/Be9_d__a_a_t_primat.txt +503 -0
  175. primat-0.3.0/primat/data/nuclear/tables/Be9_n__Be10_g/Be9_n__Be10_g_primat.txt +503 -0
  176. primat-0.3.0/primat/data/nuclear/tables/Be9_p__B10_g/Be9_p__B10_g_primat.txt +503 -0
  177. primat-0.3.0/primat/data/nuclear/tables/Be9_p__Li6_a/Be9_p__Li6_a_primat.txt +503 -0
  178. primat-0.3.0/primat/data/nuclear/tables/Be9_p__a_a_d/Be9_p__a_a_d_primat.txt +503 -0
  179. primat-0.3.0/primat/data/nuclear/tables/Be9_p__a_a_p_n/Be9_p__a_a_p_n_primat.txt +503 -0
  180. primat-0.3.0/primat/data/nuclear/tables/Be9_t__B11_n/Be9_t__B11_n_primat.txt +503 -0
  181. primat-0.3.0/primat/data/nuclear/tables/Be9_t__B12_g/Be9_t__B12_g_primat.txt +503 -0
  182. primat-0.3.0/primat/data/nuclear/tables/Be9_t__Be10_d/Be9_t__Be10_d_primat.txt +503 -0
  183. primat-0.3.0/primat/data/nuclear/tables/Be9_t__Li8_a/Be9_t__Li8_a_primat.txt +503 -0
  184. primat-0.3.0/primat/data/nuclear/tables/C11_He3__C10_a/C11_He3__C10_a_primat.txt +503 -0
  185. primat-0.3.0/primat/data/nuclear/tables/C11_He3__N13_p/C11_He3__N13_p_primat.txt +503 -0
  186. primat-0.3.0/primat/data/nuclear/tables/C11_He3__O14_g/C11_He3__O14_g_primat.txt +503 -0
  187. primat-0.3.0/primat/data/nuclear/tables/C11_a__N14_p/C11_a__N14_p_primat.txt +503 -0
  188. primat-0.3.0/primat/data/nuclear/tables/C11_a__O15_g/C11_a__O15_g_primat.txt +503 -0
  189. primat-0.3.0/primat/data/nuclear/tables/C11_d__C12_p/C11_d__C12_p_primat.txt +503 -0
  190. primat-0.3.0/primat/data/nuclear/tables/C11_d__N13_g/C11_d__N13_g_primat.txt +503 -0
  191. primat-0.3.0/primat/data/nuclear/tables/C11_n__C12_g/C11_n__C12_g_primat.txt +503 -0
  192. primat-0.3.0/primat/data/nuclear/tables/C11_n__a_a_a/C11_n__a_a_a_primat.txt +503 -0
  193. primat-0.3.0/primat/data/nuclear/tables/C11_p__N12_g/C11_p__N12_g_primat.txt +503 -0
  194. primat-0.3.0/primat/data/nuclear/tables/C11_t__B10_a/C11_t__B10_a_primat.txt +503 -0
  195. primat-0.3.0/primat/data/nuclear/tables/C11_t__B11_He3/C11_t__B11_He3_primat.txt +503 -0
  196. primat-0.3.0/primat/data/nuclear/tables/C11_t__C12_d/C11_t__C12_d_primat.txt +503 -0
  197. primat-0.3.0/primat/data/nuclear/tables/C11_t__C13_p/C11_t__C13_p_primat.txt +503 -0
  198. primat-0.3.0/primat/data/nuclear/tables/C11_t__N13_n/C11_t__N13_n_primat.txt +503 -0
  199. primat-0.3.0/primat/data/nuclear/tables/C11_t__N14_g/C11_t__N14_g_primat.txt +503 -0
  200. primat-0.3.0/primat/data/nuclear/tables/C12_He3__C11_a/C12_He3__C11_a_primat.txt +503 -0
  201. primat-0.3.0/primat/data/nuclear/tables/C12_He3__N14_p/C12_He3__N14_p_primat.txt +503 -0
  202. primat-0.3.0/primat/data/nuclear/tables/C12_He3__O15_g/C12_He3__O15_g_primat.txt +503 -0
  203. primat-0.3.0/primat/data/nuclear/tables/C12_a__O16_g/C12_a__O16_g_primat.txt +503 -0
  204. primat-0.3.0/primat/data/nuclear/tables/C12_d__C13_p/C12_d__C13_p_primat.txt +503 -0
  205. primat-0.3.0/primat/data/nuclear/tables/C12_d__N14_g/C12_d__N14_g_primat.txt +503 -0
  206. primat-0.3.0/primat/data/nuclear/tables/C12_n__C13_g/C12_n__C13_g_primat.txt +503 -0
  207. primat-0.3.0/primat/data/nuclear/tables/C12_p__N13_g/C12_p__N13_g_primat.txt +503 -0
  208. primat-0.3.0/primat/data/nuclear/tables/C12_t__B11_a/C12_t__B11_a_primat.txt +503 -0
  209. primat-0.3.0/primat/data/nuclear/tables/C12_t__C14_p/C12_t__C14_p_primat.txt +503 -0
  210. primat-0.3.0/primat/data/nuclear/tables/C12_t__N14_n/C12_t__N14_n_primat.txt +503 -0
  211. primat-0.3.0/primat/data/nuclear/tables/C12_t__N15_g/C12_t__N15_g_primat.txt +503 -0
  212. primat-0.3.0/primat/data/nuclear/tables/C13_He3__C12_a/C13_He3__C12_a_primat.txt +503 -0
  213. primat-0.3.0/primat/data/nuclear/tables/C13_He3__N15_p/C13_He3__N15_p_primat.txt +503 -0
  214. primat-0.3.0/primat/data/nuclear/tables/C13_He3__O15_n/C13_He3__O15_n_primat.txt +503 -0
  215. primat-0.3.0/primat/data/nuclear/tables/C13_He3__O16_g/C13_He3__O16_g_primat.txt +503 -0
  216. primat-0.3.0/primat/data/nuclear/tables/C13_a__O16_n/C13_a__O16_n_primat.txt +503 -0
  217. primat-0.3.0/primat/data/nuclear/tables/C13_a__O17_g/C13_a__O17_g_primat.txt +503 -0
  218. primat-0.3.0/primat/data/nuclear/tables/C13_d__B11_a/C13_d__B11_a_primat.txt +503 -0
  219. primat-0.3.0/primat/data/nuclear/tables/C13_d__C14_p/C13_d__C14_p_primat.txt +503 -0
  220. primat-0.3.0/primat/data/nuclear/tables/C13_d__N14_n/C13_d__N14_n_primat.txt +503 -0
  221. primat-0.3.0/primat/data/nuclear/tables/C13_d__N15_g/C13_d__N15_g_primat.txt +503 -0
  222. primat-0.3.0/primat/data/nuclear/tables/C13_n__C14_g/C13_n__C14_g_primat.txt +503 -0
  223. primat-0.3.0/primat/data/nuclear/tables/C13_p__N14_g/C13_p__N14_g_primat.txt +503 -0
  224. primat-0.3.0/primat/data/nuclear/tables/C13_t__B12_a/C13_t__B12_a_primat.txt +503 -0
  225. primat-0.3.0/primat/data/nuclear/tables/C13_t__C15_p/C13_t__C15_p_primat.txt +503 -0
  226. primat-0.3.0/primat/data/nuclear/tables/C13_t__N15_n/C13_t__N15_n_primat.txt +503 -0
  227. primat-0.3.0/primat/data/nuclear/tables/C13_t__N16_g/C13_t__N16_g_primat.txt +503 -0
  228. primat-0.3.0/primat/data/nuclear/tables/C14_He3__C13_a/C14_He3__C13_a_primat.txt +503 -0
  229. primat-0.3.0/primat/data/nuclear/tables/C14_He3__N16_p/C14_He3__N16_p_primat.txt +503 -0
  230. primat-0.3.0/primat/data/nuclear/tables/C14_He3__O16_n/C14_He3__O16_n_primat.txt +503 -0
  231. primat-0.3.0/primat/data/nuclear/tables/C14_He3__O17_g/C14_He3__O17_g_primat.txt +503 -0
  232. primat-0.3.0/primat/data/nuclear/tables/C14_a__O18_g/C14_a__O18_g_primat.txt +503 -0
  233. primat-0.3.0/primat/data/nuclear/tables/C14_d__B12_a/C14_d__B12_a_primat.txt +503 -0
  234. primat-0.3.0/primat/data/nuclear/tables/C14_d__N15_n/C14_d__N15_n_primat.txt +503 -0
  235. primat-0.3.0/primat/data/nuclear/tables/C14_d__N16_g/C14_d__N16_g_primat.txt +503 -0
  236. primat-0.3.0/primat/data/nuclear/tables/C14_n__C15_g/C14_n__C15_g_primat.txt +503 -0
  237. primat-0.3.0/primat/data/nuclear/tables/C14_p__N15_g/C14_p__N15_g_primat.txt +503 -0
  238. primat-0.3.0/primat/data/nuclear/tables/C14_t__N16_n/C14_t__N16_n_primat.txt +503 -0
  239. primat-0.3.0/primat/data/nuclear/tables/C14_t__N17_g/C14_t__N17_g_primat.txt +503 -0
  240. primat-0.3.0/primat/data/nuclear/tables/C15_a__O18_n/C15_a__O18_n_primat.txt +503 -0
  241. primat-0.3.0/primat/data/nuclear/tables/C15_a__O19_g/C15_a__O19_g_primat.txt +503 -0
  242. primat-0.3.0/primat/data/nuclear/tables/C15_n__C16_g/C15_n__C16_g_primat.txt +503 -0
  243. primat-0.3.0/primat/data/nuclear/tables/C15_p__B12_a/C15_p__B12_a_primat.txt +503 -0
  244. primat-0.3.0/primat/data/nuclear/tables/C15_p__C14_d/C15_p__C14_d_primat.txt +503 -0
  245. primat-0.3.0/primat/data/nuclear/tables/C15_p__N15_n/C15_p__N15_n_primat.txt +503 -0
  246. primat-0.3.0/primat/data/nuclear/tables/C15_p__N16_g/C15_p__N16_g_primat.txt +503 -0
  247. primat-0.3.0/primat/data/nuclear/tables/C9_a__N12_p/C9_a__N12_p_primat.txt +503 -0
  248. primat-0.3.0/primat/data/nuclear/tables/C9_a__O13_g/C9_a__O13_g_primat.txt +503 -0
  249. primat-0.3.0/primat/data/nuclear/tables/C9_d__C10_p/C9_d__C10_p_primat.txt +503 -0
  250. primat-0.3.0/primat/data/nuclear/tables/C9_n__B8_d/C9_n__B8_d_primat.txt +503 -0
  251. primat-0.3.0/primat/data/nuclear/tables/C9_n__Be7_He3/C9_n__Be7_He3_primat.txt +503 -0
  252. primat-0.3.0/primat/data/nuclear/tables/C9_n__C10_g/C9_n__C10_g_primat.txt +503 -0
  253. primat-0.3.0/primat/data/nuclear/tables/C9_t__B8_a/C9_t__B8_a_primat.txt +503 -0
  254. primat-0.3.0/primat/data/nuclear/tables/C9_t__C11_p/C9_t__C11_p_primat.txt +503 -0
  255. primat-0.3.0/primat/data/nuclear/tables/C9_t__N12_g/C9_t__N12_g_primat.txt +503 -0
  256. primat-0.3.0/primat/data/nuclear/tables/F17_a__Na21_g/F17_a__Na21_g_primat.txt +503 -0
  257. primat-0.3.0/primat/data/nuclear/tables/F17_a__Ne20_p/F17_a__Ne20_p_primat.txt +503 -0
  258. primat-0.3.0/primat/data/nuclear/tables/F17_n__F18_g/F17_n__F18_g_primat.txt +503 -0
  259. primat-0.3.0/primat/data/nuclear/tables/F17_n__N14_a/F17_n__N14_a_primat.txt +503 -0
  260. primat-0.3.0/primat/data/nuclear/tables/F17_n__O17_p/F17_n__O17_p_primat.txt +503 -0
  261. primat-0.3.0/primat/data/nuclear/tables/F17_p__Ne18_g/F17_p__Ne18_g_primat.txt +503 -0
  262. primat-0.3.0/primat/data/nuclear/tables/F18_a__Na22_g/F18_a__Na22_g_primat.txt +503 -0
  263. primat-0.3.0/primat/data/nuclear/tables/F18_a__Ne21_p/F18_a__Ne21_p_primat.txt +503 -0
  264. primat-0.3.0/primat/data/nuclear/tables/F18_n__F19_g/F18_n__F19_g_primat.txt +503 -0
  265. primat-0.3.0/primat/data/nuclear/tables/F18_n__N15_a/F18_n__N15_a_primat.txt +503 -0
  266. primat-0.3.0/primat/data/nuclear/tables/F18_n__O18_p/F18_n__O18_p_primat.txt +503 -0
  267. primat-0.3.0/primat/data/nuclear/tables/F18_p__Ne19_g/F18_p__Ne19_g_primat.txt +503 -0
  268. primat-0.3.0/primat/data/nuclear/tables/F18_p__O15_a/F18_p__O15_a_primat.txt +503 -0
  269. primat-0.3.0/primat/data/nuclear/tables/F19_a__Na23_g/F19_a__Na23_g_primat.txt +503 -0
  270. primat-0.3.0/primat/data/nuclear/tables/F19_a__Ne22_p/F19_a__Ne22_p_primat.txt +503 -0
  271. primat-0.3.0/primat/data/nuclear/tables/F19_n__F20_g/F19_n__F20_g_primat.txt +503 -0
  272. primat-0.3.0/primat/data/nuclear/tables/F19_p__Ne20_g/F19_p__Ne20_g_primat.txt +503 -0
  273. primat-0.3.0/primat/data/nuclear/tables/F19_p__O16_a/F19_p__O16_a_primat.txt +503 -0
  274. primat-0.3.0/primat/data/nuclear/tables/He3_He3__a_p_p/He3_He3__a_p_p_primat.txt +503 -0
  275. primat-0.3.0/primat/data/nuclear/tables/He3_a__Be7_g/He3_a__Be7_g_parthenope3.0.txt +509 -0
  276. primat-0.3.0/primat/data/nuclear/tables/He3_a__Be7_g/He3_a__Be7_g_primat.txt +503 -0
  277. primat-0.3.0/primat/data/nuclear/tables/He3_d__a_p/He3_d__a_p_parthenope3.0.txt +509 -0
  278. primat-0.3.0/primat/data/nuclear/tables/He3_d__a_p/He3_d__a_p_primat.txt +503 -0
  279. primat-0.3.0/primat/data/nuclear/tables/He3_n__a_g/He3_n__a_g_primat.txt +503 -0
  280. primat-0.3.0/primat/data/nuclear/tables/He3_n__t_p/He3_n__t_p_parthenope3.0.txt +506 -0
  281. primat-0.3.0/primat/data/nuclear/tables/He3_n__t_p/He3_n__t_p_primat.txt +503 -0
  282. primat-0.3.0/primat/data/nuclear/tables/He3_t__Li6_g/He3_t__Li6_g_primat.txt +503 -0
  283. primat-0.3.0/primat/data/nuclear/tables/He3_t__a_d/He3_t__a_d_primat.txt +503 -0
  284. primat-0.3.0/primat/data/nuclear/tables/He3_t__a_n_p/He3_t__a_n_p_primat.txt +503 -0
  285. primat-0.3.0/primat/data/nuclear/tables/Li6_He3__Be7_d/Li6_He3__Be7_d_primat.txt +503 -0
  286. primat-0.3.0/primat/data/nuclear/tables/Li6_He3__a_a_p/Li6_He3__a_a_p_primat.txt +503 -0
  287. primat-0.3.0/primat/data/nuclear/tables/Li6_a__B10_g/Li6_a__B10_g_primat.txt +503 -0
  288. primat-0.3.0/primat/data/nuclear/tables/Li6_d__Be7_n/Li6_d__Be7_n_primat.txt +503 -0
  289. primat-0.3.0/primat/data/nuclear/tables/Li6_d__Li7_p/Li6_d__Li7_p_primat.txt +503 -0
  290. primat-0.3.0/primat/data/nuclear/tables/Li6_n__Li7_g/Li6_n__Li7_g_primat.txt +503 -0
  291. primat-0.3.0/primat/data/nuclear/tables/Li6_n__t_a/Li6_n__t_a_primat.txt +503 -0
  292. primat-0.3.0/primat/data/nuclear/tables/Li6_p__Be7_g/Li6_p__Be7_g_primat.txt +503 -0
  293. primat-0.3.0/primat/data/nuclear/tables/Li6_p__He3_a/Li6_p__He3_a_primat.txt +503 -0
  294. primat-0.3.0/primat/data/nuclear/tables/Li6_t__Be9_g/Li6_t__Be9_g_primat.txt +503 -0
  295. primat-0.3.0/primat/data/nuclear/tables/Li6_t__Li7_d/Li6_t__Li7_d_primat.txt +503 -0
  296. primat-0.3.0/primat/data/nuclear/tables/Li6_t__Li8_p/Li6_t__Li8_p_primat.txt +503 -0
  297. primat-0.3.0/primat/data/nuclear/tables/Li6_t__a_a_n/Li6_t__a_a_n_primat.txt +503 -0
  298. primat-0.3.0/primat/data/nuclear/tables/Li7_He3__B10_g/Li7_He3__B10_g_primat.txt +503 -0
  299. primat-0.3.0/primat/data/nuclear/tables/Li7_He3__Be9_p/Li7_He3__Be9_p_primat.txt +503 -0
  300. primat-0.3.0/primat/data/nuclear/tables/Li7_He3__Li6_a/Li7_He3__Li6_a_primat.txt +503 -0
  301. primat-0.3.0/primat/data/nuclear/tables/Li7_He3__a_a_d/Li7_He3__a_a_d_primat.txt +503 -0
  302. primat-0.3.0/primat/data/nuclear/tables/Li7_He3__a_a_n_p/Li7_He3__a_a_n_p_primat.txt +503 -0
  303. primat-0.3.0/primat/data/nuclear/tables/Li7_a__B10_n/Li7_a__B10_n_primat.txt +503 -0
  304. primat-0.3.0/primat/data/nuclear/tables/Li7_a__B11_g/Li7_a__B11_g_primat.txt +503 -0
  305. primat-0.3.0/primat/data/nuclear/tables/Li7_d__Be9_g/Li7_d__Be9_g_primat.txt +503 -0
  306. primat-0.3.0/primat/data/nuclear/tables/Li7_d__Li8_p/Li7_d__Li8_p_primat.txt +503 -0
  307. primat-0.3.0/primat/data/nuclear/tables/Li7_d__a_a_n/Li7_d__a_a_n_primat.txt +503 -0
  308. primat-0.3.0/primat/data/nuclear/tables/Li7_n__Li8_g/Li7_n__Li8_g_primat.txt +503 -0
  309. primat-0.3.0/primat/data/nuclear/tables/Li7_p__a_a/Li7_p__a_a_parthenope3.0.txt +509 -0
  310. primat-0.3.0/primat/data/nuclear/tables/Li7_p__a_a/Li7_p__a_a_primat.txt +503 -0
  311. primat-0.3.0/primat/data/nuclear/tables/Li7_p__a_a_g/Li7_p__a_a_g_primat.txt +503 -0
  312. primat-0.3.0/primat/data/nuclear/tables/Li7_t__Be10_g/Li7_t__Be10_g_primat.txt +503 -0
  313. primat-0.3.0/primat/data/nuclear/tables/Li7_t__Be9_n/Li7_t__Be9_n_primat.txt +503 -0
  314. primat-0.3.0/primat/data/nuclear/tables/Li7_t__a_a_n_n/Li7_t__a_a_n_n_primat.txt +503 -0
  315. primat-0.3.0/primat/data/nuclear/tables/Li8_He3__B10_n/Li8_He3__B10_n_primat.txt +503 -0
  316. primat-0.3.0/primat/data/nuclear/tables/Li8_He3__B11_g/Li8_He3__B11_g_primat.txt +503 -0
  317. primat-0.3.0/primat/data/nuclear/tables/Li8_He3__Be10_p/Li8_He3__Be10_p_primat.txt +503 -0
  318. primat-0.3.0/primat/data/nuclear/tables/Li8_He3__Be9_d/Li8_He3__Be9_d_primat.txt +503 -0
  319. primat-0.3.0/primat/data/nuclear/tables/Li8_He3__Li7_a/Li8_He3__Li7_a_primat.txt +503 -0
  320. primat-0.3.0/primat/data/nuclear/tables/Li8_He3__a_a_t/Li8_He3__a_a_t_primat.txt +503 -0
  321. primat-0.3.0/primat/data/nuclear/tables/Li8_a__B11_n/Li8_a__B11_n_primat.txt +503 -0
  322. primat-0.3.0/primat/data/nuclear/tables/Li8_a__B12_g/Li8_a__B12_g_primat.txt +503 -0
  323. primat-0.3.0/primat/data/nuclear/tables/Li8_d__Be10_g/Li8_d__Be10_g_primat.txt +503 -0
  324. primat-0.3.0/primat/data/nuclear/tables/Li8_d__Be9_n/Li8_d__Be9_n_primat.txt +503 -0
  325. primat-0.3.0/primat/data/nuclear/tables/Li8_d__Li7_t/Li8_d__Li7_t_primat.txt +503 -0
  326. primat-0.3.0/primat/data/nuclear/tables/Li8_d__Li9_p/Li8_d__Li9_p_primat.txt +503 -0
  327. primat-0.3.0/primat/data/nuclear/tables/Li8_n__Li9_g/Li8_n__Li9_g_primat.txt +503 -0
  328. primat-0.3.0/primat/data/nuclear/tables/Li8_p__Be9_g/Li8_p__Be9_g_primat.txt +503 -0
  329. primat-0.3.0/primat/data/nuclear/tables/Li8_p__a_a_n/Li8_p__a_a_n_primat.txt +503 -0
  330. primat-0.3.0/primat/data/nuclear/tables/Li8_t__Be10_n/Li8_t__Be10_n_primat.txt +503 -0
  331. primat-0.3.0/primat/data/nuclear/tables/Li8_t__Be11_g/Li8_t__Be11_g_primat.txt +503 -0
  332. primat-0.3.0/primat/data/nuclear/tables/Li9_He3__B11_n/Li9_He3__B11_n_primat.txt +503 -0
  333. primat-0.3.0/primat/data/nuclear/tables/Li9_He3__B12_g/Li9_He3__B12_g_primat.txt +503 -0
  334. primat-0.3.0/primat/data/nuclear/tables/Li9_He3__Be10_d/Li9_He3__Be10_d_primat.txt +503 -0
  335. primat-0.3.0/primat/data/nuclear/tables/Li9_He3__Be11_p/Li9_He3__Be11_p_primat.txt +503 -0
  336. primat-0.3.0/primat/data/nuclear/tables/Li9_He3__Be9_t/Li9_He3__Be9_t_primat.txt +503 -0
  337. primat-0.3.0/primat/data/nuclear/tables/Li9_He3__Li8_a/Li9_He3__Li8_a_primat.txt +503 -0
  338. primat-0.3.0/primat/data/nuclear/tables/Li9_a__B12_n/Li9_a__B12_n_primat.txt +503 -0
  339. primat-0.3.0/primat/data/nuclear/tables/Li9_a__B13_g/Li9_a__B13_g_primat.txt +503 -0
  340. primat-0.3.0/primat/data/nuclear/tables/Li9_d__Be10_n/Li9_d__Be10_n_primat.txt +503 -0
  341. primat-0.3.0/primat/data/nuclear/tables/Li9_d__Be11_g/Li9_d__Be11_g_primat.txt +503 -0
  342. primat-0.3.0/primat/data/nuclear/tables/Li9_d__Li8_t/Li9_d__Li8_t_primat.txt +503 -0
  343. primat-0.3.0/primat/data/nuclear/tables/Li9_p__Be10_g/Li9_p__Be10_g_primat.txt +503 -0
  344. primat-0.3.0/primat/data/nuclear/tables/Li9_p__Be9_n/Li9_p__Be9_n_primat.txt +503 -0
  345. primat-0.3.0/primat/data/nuclear/tables/Li9_p__He6_a/Li9_p__He6_a_primat.txt +503 -0
  346. primat-0.3.0/primat/data/nuclear/tables/Li9_p__Li7_t/Li9_p__Li7_t_primat.txt +503 -0
  347. primat-0.3.0/primat/data/nuclear/tables/Li9_t__Be11_n/Li9_t__Be11_n_primat.txt +503 -0
  348. primat-0.3.0/primat/data/nuclear/tables/Li9_t__Be12_g/Li9_t__Be12_g_primat.txt +503 -0
  349. primat-0.3.0/primat/data/nuclear/tables/N12_a__O15_p/N12_a__O15_p_primat.txt +503 -0
  350. primat-0.3.0/primat/data/nuclear/tables/N12_n__C11_d/N12_n__C11_d_primat.txt +503 -0
  351. primat-0.3.0/primat/data/nuclear/tables/N12_n__C12_p/N12_n__C12_p_primat.txt +503 -0
  352. primat-0.3.0/primat/data/nuclear/tables/N12_n__N13_g/N12_n__N13_g_primat.txt +503 -0
  353. primat-0.3.0/primat/data/nuclear/tables/N12_p__O13_g/N12_p__O13_g_primat.txt +503 -0
  354. primat-0.3.0/primat/data/nuclear/tables/N13_a__F17_g/N13_a__F17_g_primat.txt +503 -0
  355. primat-0.3.0/primat/data/nuclear/tables/N13_n__C12_d/N13_n__C12_d_primat.txt +503 -0
  356. primat-0.3.0/primat/data/nuclear/tables/N13_n__C13_p/N13_n__C13_p_primat.txt +503 -0
  357. primat-0.3.0/primat/data/nuclear/tables/N13_n__N14_g/N13_n__N14_g_primat.txt +503 -0
  358. primat-0.3.0/primat/data/nuclear/tables/N13_p__O14_g/N13_p__O14_g_primat.txt +503 -0
  359. primat-0.3.0/primat/data/nuclear/tables/N14_a__F18_g/N14_a__F18_g_primat.txt +503 -0
  360. primat-0.3.0/primat/data/nuclear/tables/N14_n__C14_p/N14_n__C14_p_primat.txt +503 -0
  361. primat-0.3.0/primat/data/nuclear/tables/N14_n__N15_g/N14_n__N15_g_primat.txt +503 -0
  362. primat-0.3.0/primat/data/nuclear/tables/N14_p__O15_g/N14_p__O15_g_primat.txt +503 -0
  363. primat-0.3.0/primat/data/nuclear/tables/N15_a__F19_g/N15_a__F19_g_primat.txt +503 -0
  364. primat-0.3.0/primat/data/nuclear/tables/N15_n__N16_g/N15_n__N16_g_primat.txt +503 -0
  365. primat-0.3.0/primat/data/nuclear/tables/N15_p__C12_a/N15_p__C12_a_primat.txt +503 -0
  366. primat-0.3.0/primat/data/nuclear/tables/N15_p__O16_g/N15_p__O16_g_primat.txt +503 -0
  367. primat-0.3.0/primat/data/nuclear/tables/Na20_n__F17_a/Na20_n__F17_a_primat.txt +503 -0
  368. primat-0.3.0/primat/data/nuclear/tables/Ne18_n__F18_p/Ne18_n__F18_p_primat.txt +503 -0
  369. primat-0.3.0/primat/data/nuclear/tables/Ne18_n__O15_a/Ne18_n__O15_a_primat.txt +503 -0
  370. primat-0.3.0/primat/data/nuclear/tables/Ne19_n__F19_p/Ne19_n__F19_p_primat.txt +503 -0
  371. primat-0.3.0/primat/data/nuclear/tables/Ne19_n__O16_a/Ne19_n__O16_a_primat.txt +503 -0
  372. primat-0.3.0/primat/data/nuclear/tables/Ne19_p__Na20_g/Ne19_p__Na20_g_primat.txt +503 -0
  373. primat-0.3.0/primat/data/nuclear/tables/O14_a__F17_p/O14_a__F17_p_primat.txt +503 -0
  374. primat-0.3.0/primat/data/nuclear/tables/O14_a__Ne18_g/O14_a__Ne18_g_primat.txt +503 -0
  375. primat-0.3.0/primat/data/nuclear/tables/O14_n__C11_a/O14_n__C11_a_primat.txt +503 -0
  376. primat-0.3.0/primat/data/nuclear/tables/O14_n__C12_He3/O14_n__C12_He3_primat.txt +503 -0
  377. primat-0.3.0/primat/data/nuclear/tables/O14_n__N14_p/O14_n__N14_p_primat.txt +503 -0
  378. primat-0.3.0/primat/data/nuclear/tables/O14_n__O15_g/O14_n__O15_g_primat.txt +503 -0
  379. primat-0.3.0/primat/data/nuclear/tables/O15_a__Ne19_g/O15_a__Ne19_g_primat.txt +503 -0
  380. primat-0.3.0/primat/data/nuclear/tables/O15_n__C12_a/O15_n__C12_a_primat.txt +503 -0
  381. primat-0.3.0/primat/data/nuclear/tables/O15_n__N15_p/O15_n__N15_p_primat.txt +503 -0
  382. primat-0.3.0/primat/data/nuclear/tables/O15_n__O16_g/O15_n__O16_g_primat.txt +503 -0
  383. primat-0.3.0/primat/data/nuclear/tables/O16_a__Ne20_g/O16_a__Ne20_g_primat.txt +503 -0
  384. primat-0.3.0/primat/data/nuclear/tables/O16_n__O17_g/O16_n__O17_g_primat.txt +503 -0
  385. primat-0.3.0/primat/data/nuclear/tables/O16_p__F17_g/O16_p__F17_g_primat.txt +503 -0
  386. primat-0.3.0/primat/data/nuclear/tables/O16_p__N13_a/O16_p__N13_a_primat.txt +503 -0
  387. primat-0.3.0/primat/data/nuclear/tables/O17_a__Ne20_n/O17_a__Ne20_n_primat.txt +503 -0
  388. primat-0.3.0/primat/data/nuclear/tables/O17_a__Ne21_g/O17_a__Ne21_g_primat.txt +503 -0
  389. primat-0.3.0/primat/data/nuclear/tables/O17_n__C14_a/O17_n__C14_a_primat.txt +503 -0
  390. primat-0.3.0/primat/data/nuclear/tables/O17_n__O18_g/O17_n__O18_g_primat.txt +503 -0
  391. primat-0.3.0/primat/data/nuclear/tables/O17_p__F18_g/O17_p__F18_g_primat.txt +503 -0
  392. primat-0.3.0/primat/data/nuclear/tables/O17_p__N14_a/O17_p__N14_a_primat.txt +503 -0
  393. primat-0.3.0/primat/data/nuclear/tables/O18_a__Ne22_g/O18_a__Ne22_g_primat.txt +503 -0
  394. primat-0.3.0/primat/data/nuclear/tables/O18_n__O19_g/O18_n__O19_g_primat.txt +503 -0
  395. primat-0.3.0/primat/data/nuclear/tables/O18_p__F19_g/O18_p__F19_g_primat.txt +503 -0
  396. primat-0.3.0/primat/data/nuclear/tables/O18_p__N15_a/O18_p__N15_a_primat.txt +503 -0
  397. primat-0.3.0/primat/data/nuclear/tables/O19_a__Ne22_n/O19_a__Ne22_n_primat.txt +503 -0
  398. primat-0.3.0/primat/data/nuclear/tables/O19_a__Ne23_g/O19_a__Ne23_g_primat.txt +503 -0
  399. primat-0.3.0/primat/data/nuclear/tables/O19_n__O20_g/O19_n__O20_g_primat.txt +503 -0
  400. primat-0.3.0/primat/data/nuclear/tables/O19_p__F19_n/O19_p__F19_n_primat.txt +503 -0
  401. primat-0.3.0/primat/data/nuclear/tables/O19_p__F20_g/O19_p__F20_g_primat.txt +503 -0
  402. primat-0.3.0/primat/data/nuclear/tables/O19_p__N16_a/O19_p__N16_a_primat.txt +503 -0
  403. primat-0.3.0/primat/data/nuclear/tables/a_a_a__C12_g_g/a_a_a__C12_g_g_primat.txt +503 -0
  404. primat-0.3.0/primat/data/nuclear/tables/a_a_n__Be9_g/a_a_n__Be9_g_primat.txt +503 -0
  405. primat-0.3.0/primat/data/nuclear/tables/a_n_n__He6_g/a_n_n__He6_g_primat.txt +503 -0
  406. primat-0.3.0/primat/data/nuclear/tables/a_n_p__Li6_g/a_n_p__Li6_g_primat.txt +503 -0
  407. primat-0.3.0/primat/data/nuclear/tables/d_a__Li6_g/d_a__Li6_g_primat.txt +503 -0
  408. primat-0.3.0/primat/data/nuclear/tables/d_d__He3_n/d_d__He3_n_parthenope3.0.txt +509 -0
  409. primat-0.3.0/primat/data/nuclear/tables/d_d__He3_n/d_d__He3_n_primat.txt +503 -0
  410. primat-0.3.0/primat/data/nuclear/tables/d_d__a_g/d_d__a_g_primat.txt +503 -0
  411. primat-0.3.0/primat/data/nuclear/tables/d_d__t_p/d_d__t_p_parthenope3.0.txt +509 -0
  412. primat-0.3.0/primat/data/nuclear/tables/d_d__t_p/d_d__t_p_primat.txt +503 -0
  413. primat-0.3.0/primat/data/nuclear/tables/d_n__t_g/d_n__t_g_primat.txt +503 -0
  414. primat-0.3.0/primat/data/nuclear/tables/d_p__He3_g/d_p__He3_g_parthenope3.0.txt +509 -0
  415. primat-0.3.0/primat/data/nuclear/tables/d_p__He3_g/d_p__He3_g_primat.txt +503 -0
  416. primat-0.3.0/primat/data/nuclear/tables/decays.txt +47 -0
  417. primat-0.3.0/primat/data/nuclear/tables/n_p__d_g/n_p__d_g_parthenope3.0.txt +506 -0
  418. primat-0.3.0/primat/data/nuclear/tables/n_p__d_g/n_p__d_g_primat.txt +503 -0
  419. primat-0.3.0/primat/data/nuclear/tables/p_p_n__d_p/p_p_n__d_p_primat.txt +503 -0
  420. primat-0.3.0/primat/data/nuclear/tables/t_a__Li7_g/t_a__Li7_g_parthenope3.0.txt +509 -0
  421. primat-0.3.0/primat/data/nuclear/tables/t_a__Li7_g/t_a__Li7_g_primat.txt +503 -0
  422. primat-0.3.0/primat/data/nuclear/tables/t_d__a_n/t_d__a_n_parthenope3.0.txt +509 -0
  423. primat-0.3.0/primat/data/nuclear/tables/t_d__a_n/t_d__a_n_primat.txt +503 -0
  424. primat-0.3.0/primat/data/nuclear/tables/t_p__a_g/t_p__a_g_parthenope3.0.txt +506 -0
  425. primat-0.3.0/primat/data/nuclear/tables/t_p__a_g/t_p__a_g_primat.txt +503 -0
  426. primat-0.3.0/primat/data/nuclear/tables/t_t__a_n_n/t_t__a_n_n_primat.txt +503 -0
  427. primat-0.3.0/primat/data/plasma/QED_P_int.txt +502 -0
  428. primat-0.3.0/primat/data/plasma/QED_d2P_intdT2.txt +502 -0
  429. primat-0.3.0/primat/data/plasma/QED_dP_intdT.txt +502 -0
  430. primat-0.3.0/primat/data/plasma/electron_thermo_cache.txt +2003 -0
  431. primat-0.3.0/primat/data/weak/nTOp_2218248995f018af.txt +323 -0
  432. primat-0.3.0/primat/data/weak/nTOp_631e4ebd94ca4c87.txt +323 -0
  433. primat-0.3.0/primat/data/weak/nTOp_6b32e444a6085fd8.txt +323 -0
  434. primat-0.3.0/primat/data/weak/nTOp_b9f6714b054fa81c.txt +323 -0
  435. primat-0.3.0/primat/data/weak/nTOp_thermal_0eccbdd5dbb5dd93.txt +61 -0
  436. primat-0.3.0/primat/data/weak/nTOp_thermal_347acddd9ac84e46.txt +61 -0
  437. primat-0.3.0/primat/data/weak/nTOp_thermal_a76b4e267077eae2.txt +61 -0
  438. primat-0.3.0/primat/data/weak/nTOp_thermal_e87eaa48ded545f7.txt +61 -0
  439. primat-0.3.0/primat/evolution.py +221 -0
  440. primat-0.3.0/primat/gui/.streamlit/config.toml +18 -0
  441. primat-0.3.0/primat/gui/__init__.py +15 -0
  442. primat-0.3.0/primat/gui/app.py +525 -0
  443. primat-0.3.0/primat/gui/custom_rates.py +655 -0
  444. primat-0.3.0/primat/gui/launcher.py +62 -0
  445. primat-0.3.0/primat/gui/panels.py +634 -0
  446. primat-0.3.0/primat/gui/params_form.py +1732 -0
  447. primat-0.3.0/primat/gui/run_view.py +90 -0
  448. primat-0.3.0/primat/gui/session_keys.py +165 -0
  449. primat-0.3.0/primat/main.py +958 -0
  450. primat-0.3.0/primat/network_builder.py +442 -0
  451. primat-0.3.0/primat/network_data.py +2102 -0
  452. primat-0.3.0/primat/neutrino_history.py +883 -0
  453. primat-0.3.0/primat/nuclear_network.py +805 -0
  454. primat-0.3.0/primat/plasma.py +922 -0
  455. primat-0.3.0/primat/plotting.py +252 -0
  456. primat-0.3.0/primat/qed_pressure.py +454 -0
  457. primat-0.3.0/primat/weak_rates/__init__.py +83 -0
  458. primat-0.3.0/primat/weak_rates/api.py +266 -0
  459. primat-0.3.0/primat/weak_rates/cache.py +186 -0
  460. primat-0.3.0/primat/weak_rates/corrections.py +1359 -0
  461. primat-0.3.0/primat/weak_rates/integrands.py +188 -0
  462. primat-0.3.0/primat-c/include/cprimat/api.h +120 -0
  463. primat-0.3.0/primat-c/include/cprimat/background.h +195 -0
  464. primat-0.3.0/primat-c/include/cprimat/cache.h +72 -0
  465. primat-0.3.0/primat-c/include/cprimat/cli.h +15 -0
  466. primat-0.3.0/primat-c/include/cprimat/config.h +292 -0
  467. primat-0.3.0/primat-c/include/cprimat/constants.h +96 -0
  468. primat-0.3.0/primat-c/include/cprimat/ini.h +25 -0
  469. primat-0.3.0/primat-c/include/cprimat/linalg.h +31 -0
  470. primat-0.3.0/primat-c/include/cprimat/log.h +19 -0
  471. primat-0.3.0/primat-c/include/cprimat/mc.h +96 -0
  472. primat-0.3.0/primat-c/include/cprimat/network_builder.h +132 -0
  473. primat-0.3.0/primat-c/include/cprimat/network_data.h +298 -0
  474. primat-0.3.0/primat-c/include/cprimat/neutrino_history.h +165 -0
  475. primat-0.3.0/primat-c/include/cprimat/nuclear_network.h +132 -0
  476. primat-0.3.0/primat-c/include/cprimat/ode_bdf.h +59 -0
  477. primat-0.3.0/primat-c/include/cprimat/ode_rk.h +45 -0
  478. primat-0.3.0/primat-c/include/cprimat/plasma.h +140 -0
  479. primat-0.3.0/primat-c/include/cprimat/qed_pressure.h +112 -0
  480. primat-0.3.0/primat-c/include/cprimat/quad.h +35 -0
  481. primat-0.3.0/primat-c/include/cprimat/rng.h +35 -0
  482. primat-0.3.0/primat-c/include/cprimat/spline.h +79 -0
  483. primat-0.3.0/primat-c/include/cprimat/table_io.h +38 -0
  484. primat-0.3.0/primat-c/include/cprimat/vegas.h +50 -0
  485. primat-0.3.0/primat-c/include/cprimat/weak_rates.h +98 -0
  486. primat-0.3.0/primat-c/src/api.c +338 -0
  487. primat-0.3.0/primat-c/src/background.c +891 -0
  488. primat-0.3.0/primat-c/src/cache.c +390 -0
  489. primat-0.3.0/primat-c/src/cli.c +288 -0
  490. primat-0.3.0/primat-c/src/config.c +632 -0
  491. primat-0.3.0/primat-c/src/constants.c +117 -0
  492. primat-0.3.0/primat-c/src/ini.c +71 -0
  493. primat-0.3.0/primat-c/src/linalg.c +83 -0
  494. primat-0.3.0/primat-c/src/log.c +17 -0
  495. primat-0.3.0/primat-c/src/main.c +6 -0
  496. primat-0.3.0/primat-c/src/mc.c +315 -0
  497. primat-0.3.0/primat-c/src/network_builder.c +276 -0
  498. primat-0.3.0/primat-c/src/network_data.c +1332 -0
  499. primat-0.3.0/primat-c/src/neutrino_history.c +631 -0
  500. primat-0.3.0/primat-c/src/nuclear_network.c +551 -0
  501. primat-0.3.0/primat-c/src/ode_bdf.c +558 -0
  502. primat-0.3.0/primat-c/src/ode_rk.c +150 -0
  503. primat-0.3.0/primat-c/src/plasma.c +430 -0
  504. primat-0.3.0/primat-c/src/qed_pressure.c +209 -0
  505. primat-0.3.0/primat-c/src/quad.c +84 -0
  506. primat-0.3.0/primat-c/src/rng.c +57 -0
  507. primat-0.3.0/primat-c/src/spline.c +228 -0
  508. primat-0.3.0/primat-c/src/table_io.c +130 -0
  509. primat-0.3.0/primat-c/src/vegas.c +204 -0
  510. primat-0.3.0/primat-c/src/weak_rates.c +1300 -0
  511. primat-0.3.0/primat.egg-info/PKG-INFO +415 -0
  512. primat-0.3.0/primat.egg-info/SOURCES.txt +549 -0
  513. primat-0.3.0/primat.egg-info/dependency_links.txt +1 -0
  514. primat-0.3.0/primat.egg-info/entry_points.txt +3 -0
  515. primat-0.3.0/primat.egg-info/requires.txt +21 -0
  516. primat-0.3.0/primat.egg-info/top_level.txt +1 -0
  517. primat-0.3.0/pyproject.toml +52 -0
  518. primat-0.3.0/setup.cfg +4 -0
  519. primat-0.3.0/setup.py +90 -0
  520. primat-0.3.0/tests/test_api.py +127 -0
  521. primat-0.3.0/tests/test_backend_parity.py +323 -0
  522. primat-0.3.0/tests/test_cache_utils.py +89 -0
  523. primat-0.3.0/tests/test_cli.py +89 -0
  524. primat-0.3.0/tests/test_config.py +123 -0
  525. primat-0.3.0/tests/test_constants.py +38 -0
  526. primat-0.3.0/tests/test_custom_background.py +221 -0
  527. primat-0.3.0/tests/test_custom_loader.py +201 -0
  528. primat-0.3.0/tests/test_decay_rates.py +322 -0
  529. primat-0.3.0/tests/test_decoupling_qed.py +390 -0
  530. primat-0.3.0/tests/test_detailed_balance.py +31 -0
  531. primat-0.3.0/tests/test_deuterium_network.py +54 -0
  532. primat-0.3.0/tests/test_docs_consistency.py +95 -0
  533. primat-0.3.0/tests/test_evolution.py +54 -0
  534. primat-0.3.0/tests/test_gui.py +376 -0
  535. primat-0.3.0/tests/test_gui_custom_network.py +943 -0
  536. primat-0.3.0/tests/test_large_network.py +141 -0
  537. primat-0.3.0/tests/test_mc.py +284 -0
  538. primat-0.3.0/tests/test_network_builder.py +258 -0
  539. primat-0.3.0/tests/test_network_generation.py +192 -0
  540. primat-0.3.0/tests/test_neutrino_history.py +176 -0
  541. primat-0.3.0/tests/test_notebooks.py +58 -0
  542. primat-0.3.0/tests/test_nuclear.py +84 -0
  543. primat-0.3.0/tests/test_nuclear_qed.py +221 -0
  544. primat-0.3.0/tests/test_plasma.py +104 -0
  545. primat-0.3.0/tests/test_qed_pressure.py +188 -0
  546. primat-0.3.0/tests/test_rate_variations.py +55 -0
  547. primat-0.3.0/tests/test_refactor_invariants.py +156 -0
  548. primat-0.3.0/tests/test_regression.py +174 -0
  549. primat-0.3.0/tests/test_spectral_distortions.py +253 -0
  550. primat-0.3.0/tests/test_weak_rates.py +650 -0
  551. primat-0.3.0/tests/test_wheel_smoke.py +102 -0
primat-0.3.0/LICENCE ADDED
@@ -0,0 +1,9 @@
1
+ primat performs a numerical integration of the Big-Bang Nucleosynthesis (BBN).
2
+
3
+ Copyright (C) 2026 Cyril Pitrou (pitrou@iap.fr), and Julien Froustey
4
+
5
+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
6
+
7
+ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
+
9
+ You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
@@ -0,0 +1,4 @@
1
+ # Include C source and header files needed to compile the _primat_c extension
2
+ recursive-include primat-c/src *.c
3
+ recursive-include primat-c/include *.h
4
+ include primat/_primat_c/_wrapper.c
primat-0.3.0/PKG-INFO ADDED
@@ -0,0 +1,415 @@
1
+ Metadata-Version: 2.4
2
+ Name: primat
3
+ Version: 0.3.0
4
+ Summary: PRIMAT: precise Big Bang Nucleosynthesis computations, with a fast C backend and a pure-Python fallback
5
+ Author-email: Cyril Pitrou <pitrou@iap.fr>
6
+ Maintainer: Julien Froustey
7
+ License: primat performs a numerical integration of the Big-Bang Nucleosynthesis (BBN).
8
+
9
+ Copyright (C) 2026 Cyril Pitrou (pitrou@iap.fr), and Julien Froustey
10
+
11
+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
12
+
13
+ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
16
+ Requires-Python: >=3.10
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENCE
19
+ Requires-Dist: numpy
20
+ Requires-Dist: scipy
21
+ Requires-Dist: joblib
22
+ Requires-Dist: plotly
23
+ Provides-Extra: recommended
24
+ Requires-Dist: numba; extra == "recommended"
25
+ Requires-Dist: vegas; extra == "recommended"
26
+ Provides-Extra: all
27
+ Requires-Dist: numba; extra == "all"
28
+ Requires-Dist: vegas; extra == "all"
29
+ Provides-Extra: notebooks
30
+ Requires-Dist: matplotlib; extra == "notebooks"
31
+ Requires-Dist: pandas; extra == "notebooks"
32
+ Requires-Dist: papermill; extra == "notebooks"
33
+ Provides-Extra: gui
34
+ Requires-Dist: streamlit; extra == "gui"
35
+ Requires-Dist: pandas; extra == "gui"
36
+ Dynamic: license-file
37
+
38
+ # primat
39
+
40
+ A precise Big Bang Nucleosynthesis (BBN) solver. It integrates coupled ODEs
41
+ for the cosmological background (photon/neutrino temperatures, scale factor)
42
+ and a nuclear reaction network to predict primordial abundances of H, D,
43
+ He3, He4, Li7, and heavier nuclides.
44
+
45
+ ## Installation
46
+
47
+ **For most users:**
48
+
49
+ ```
50
+ pip install primat
51
+ ```
52
+
53
+ That's it. The package includes a fast C backend compiled for your platform,
54
+ with a pure-Python fallback if no compiled binary is available — both give
55
+ identical results, just different speed.
56
+
57
+ **For development, examples, and notebooks:**
58
+
59
+ Clone the repository and install in editable mode:
60
+
61
+ ```bash
62
+ git clone <repo-url>
63
+ cd PyPRIMAT
64
+ pip install -e .
65
+ ```
66
+
67
+ With optional dependencies for best performance:
68
+
69
+ ```bash
70
+ pip install -e ".[recommended]"
71
+ ```
72
+
73
+ | Package | Role |
74
+ |---------|------|
75
+ | `numpy`, `scipy`, `joblib`, `plotly` | **Mandatory** (installed by `pip install primat`) |
76
+ | `numba` | Recommended — JIT compilation gives ~5× speedup on rate kernels |
77
+ | `vegas` | Recommended — Monte Carlo integration for thermal weak-rate corrections |
78
+
79
+ For the graphical interface (`primat-gui`), install the `gui` extra:
80
+
81
+ ```bash
82
+ pip install "primat[gui]"
83
+ ```
84
+
85
+ | Package | Role |
86
+ |---------|------|
87
+ | `streamlit` | **Required for `primat-gui`** — the web app framework |
88
+ | `pandas` | **Required for `primat-gui`** — final-abundance table |
89
+
90
+ For the example notebooks, install from source:
91
+
92
+ ```bash
93
+ pip install -e ".[notebooks]"
94
+ ```
95
+
96
+ | Package | Role |
97
+ |---------|------|
98
+ | `matplotlib`, `pandas` | Plotting and tabular display in the notebooks |
99
+
100
+ ## Quick start
101
+
102
+ ```python
103
+ from primat.backend import run_bbn
104
+
105
+ result = run_bbn({"Omegabh2": 0.022425})
106
+
107
+ print(f"YP (BBN) = {result['YPBBN']:.6f}") # ~0.246915
108
+ print(f"D/H = {result['DoH']:.5e}") # ~2.43647e-05
109
+ ```
110
+
111
+ `run_bbn()` is the main entry point and automatically selects the best available
112
+ backend (fast C engine by default, pure-Python fallback if needed). Pass an optional
113
+ parameter dict to override defaults; all keys are optional and drawn from
114
+ `primat/config.py`'s `DEFAULT_PARAMS`.
115
+
116
+ ## Using primat
117
+
118
+ There are four ways to use primat, all of which produce identical results:
119
+
120
+ ### 1. Python API (recommended)
121
+
122
+ ```python
123
+ from primat.backend import run_bbn
124
+
125
+ # Automatically selects C backend if available, falls back to pure-Python
126
+ result = run_bbn({"Omegabh2": 0.022425, "network": "large"})
127
+ ```
128
+
129
+ To force a specific backend:
130
+
131
+ ```python
132
+ result = run_bbn({"network": "small"}, force_backend="c") # C only
133
+ result = run_bbn({"network": "small"}, force_backend="python") # Python only
134
+ ```
135
+
136
+ ### 2. Command-line interface
137
+
138
+ ```bash
139
+ primat --Omegabh2 0.02242 --network large --amax 8
140
+ ```
141
+
142
+ Output:
143
+ ```
144
+ Neff = 3.04397730
145
+ YP (BBN) = 0.24699808
146
+ YP (CMB) = 0.24567178
147
+ D/H = 2.4365389e-05
148
+ He3/H = 1.0397042e-05
149
+ He3/He4 = 1.2677615e-04
150
+ Li7/H = 5.501865e-10
151
+ Li6/Li7 = 1.418945e-05
152
+ --- running time: 3.67 seconds ---
153
+ ```
154
+
155
+ | Flag | Description |
156
+ |------|-------------|
157
+ | `--Omegabh2 VALUE` | Baryon density Ω_b h² (default: 0.022425) |
158
+ | `--DeltaNeff VALUE` | Extra relativistic degrees of freedom (default: 0) |
159
+ | `--network {small,small_parthenope,large}` | Nuclear reaction network (default: small) |
160
+ | `--amax A` | Drop reactions involving any nuclide with mass number > A; applies to any network |
161
+ | `--numerical_precision RTOL` | `solve_ivp` relative tolerance (default: 1e-7) |
162
+ | `--backend {auto,c,python}` | Force a backend (default: `auto`) |
163
+ | `--json` | Print full results dict as JSON instead of summary |
164
+ | `--verbose` | Enable progress messages (timings, cache hits, ...) |
165
+
166
+ For parameters not exposed as command-line flags, use the Python API.
167
+
168
+ ### 3. Graphical interface (GUI)
169
+
170
+ After installing the `gui` extra:
171
+
172
+ ```bash
173
+ primat-gui
174
+ ```
175
+
176
+ The browser-based app offers a parameter form, interactive abundance-evolution
177
+ plot, and final-abundances panel. It uses the pure-Python backend to support
178
+ custom networks and time-evolution output.
179
+
180
+ ### 4. Example scripts (development/source-only)
181
+
182
+ Clone the repo and run from the root:
183
+
184
+ ```bash
185
+ python runfiles/PyPRIMAT_run.py # Standard SM run
186
+ python runfiles/PyPRIMAT_compare.py # Network comparison
187
+ python runfiles/PyPRIMAT_reference_run.py # High-precision run (~2 min)
188
+ ```
189
+
190
+ ## Backend selection
191
+
192
+ `run_bbn()` automatically picks the best available backend:
193
+ - **Default (`force_backend=None` or `"auto"`)**: C engine if available
194
+ (pre-compiled in wheels), pure-Python fallback otherwise
195
+ - **Force C (`force_backend="c"`)**: Raises if C backend is unavailable
196
+ - **Force Python (`force_backend="python"`)**: Useful for development or
197
+ when using Python-only features
198
+
199
+ Python-only features (that force fallback to pure-Python even with
200
+ `force_backend="auto"`):
201
+ - `custom_network` (GUI "Create custom network" feature)
202
+ - `output_time_evolution=True` (write full time series)
203
+ - `extra_rho`, `background=` arguments
204
+
205
+
206
+ ## Key parameters
207
+
208
+ | Parameter | Default | Description |
209
+ |-----------|---------|-------------|
210
+ | `Omegabh2` | 0.022425 | Baryon density |
211
+ | `DeltaNeff` | 0.0 | Extra relativistic degrees of freedom |
212
+ | `network` | `"small"` | `"small"` (12 reactions) / `"small_parthenope"` (12, Parthenope 3.0 tables) / `"large"` (~429), optionally restricted via `amax`. |
213
+ | `numerical_precision` | 1e-7 | ODE solver rtol |
214
+ | `sampling_temperature_per_decade` | 400 | Background grid points per decade of T |
215
+ | `sampling_nTOp_per_decade` | 80 | n↔p rate grid points per decade of T |
216
+ | `weak_rate_cache` | True | If False, never load n↔p rates from `data/weak/` (always recompute) |
217
+ | `save_nTOp` | True | Save recomputed n↔p rates to `data/weak/` with a fingerprint header |
218
+ | `thermal_corrections` | True | Include thermal radiative corrections (CCRTh) to the n↔p rates |
219
+ | `save_nTOp_thermal` | True | Save recomputed thermal corrections to `data/weak/` with a fingerprint header |
220
+ | `output_time_evolution` | False | Write time-evolution table to `output_file` |
221
+ | `output_file` | `results/output_tables.tsv` | Output file path (relative paths resolve against the current working directory) |
222
+ | `output_n_points` | 500 | Number of interpolated rows in output file |
223
+
224
+ ### n↔p weak rate workflow
225
+
226
+ The n↔p weak rates are the most expensive part of initialisation (~1.8 s). The
227
+ non-thermal rate (Born+FM+CCR+SD) is cached in `data/weak/nTOp_<hash>.txt`
228
+ (forward and backward columns together); the finite-temperature radiative
229
+ correction (CCRTh) is cached separately in `data/weak/nTOp_thermal_<hash>.txt`.
230
+ Each file is tagged with a *fingerprint* header: a hash of every config field
231
+ that affects its numeric content (background thermodynamics,
232
+ `sampling_nTOp_per_decade`/`sampling_nTOp_thermal_per_decade`,
233
+ `radiative_corrections`, `finite_mass_corrections`, `thermal_corrections`, etc.
234
+ — see `primat.weak_rates`). At every run:
235
+
236
+ - If `weak_rate_cache=True` (default) and a cache file's fingerprint matches the
237
+ current configuration, the corresponding rates are loaded directly —
238
+ initialisation is effectively instantaneous.
239
+ - Otherwise (fingerprint mismatch, missing file, or `weak_rate_cache=False`), the
240
+ rates are recomputed from scratch by numerical integration (~1.8 s).
241
+ - `save_nTOp` and `save_nTOp_thermal` (both default **`True`**) write the
242
+ (re)computed rates back to `data/weak/` with a fresh fingerprint header, so
243
+ future runs with the same configuration load the cache. The hash is part of
244
+ the filename, so different configurations coexist without overwriting each
245
+ other — set either flag to `False` only to avoid littering `data/weak/`
246
+ during throwaway experiments.
247
+
248
+ Recomputing the thermal correction (`thermal_corrections=True`) requires a
249
+ `vegas` Monte Carlo integration that can take minutes to hours; the
250
+ fingerprint mechanism above is what makes this avoidable across runs that
251
+ share the same configuration.
252
+
253
+ **Typical workflow for a high-precision study:**
254
+ ```python
255
+ from primat.backend import run_bbn
256
+
257
+ # Step 1 – compute and save high-precision rates once (non-default
258
+ # sampling_nTOp_per_decade gives a fingerprint that the shipped cache won't
259
+ # match, so this recomputes; save_nTOp=True is the default)
260
+ result1 = run_bbn({"save_nTOp": True, "sampling_nTOp_per_decade": 160})
261
+
262
+ # Step 2 – all subsequent runs with the same sampling_nTOp_per_decade reuse the saved tables
263
+ result2 = run_bbn({"sampling_nTOp_per_decade": 160})
264
+ ```
265
+
266
+ ### Custom NEVO tables
267
+
268
+ The neutrino-decoupling history is read from `data/NEVO/`. Three optional
269
+ parameters point at alternative tables instead (filenames resolved relative
270
+ to `data/NEVO/`, or absolute paths): `nevo_file` (6/7-column thermo table),
271
+ `nevo_spectral_file` (spectral-distortion table, used only when
272
+ `spectral_distortions=True` and `analytic_distortions=False`), and
273
+ `nevo_grid_file` (its y-grid, length must match `nevo_spectral_file`'s
274
+ spectral-column count). Each defaults to `None` (the shipped table selected by
275
+ `QED_corrections`); a custom file is validated for existence and shape at
276
+ construction time, and is included in the n↔p weak-rate cache fingerprint so
277
+ a different table correctly triggers a recompute.
278
+
279
+ Each nuclear reaction rate has a `p_<name>` parameter (e.g. `p_npTOdg`) for uncertainty propagation: setting it to a non-zero float samples the rate at `median × exp(p × σ)`.
280
+
281
+ ### Rates overlay (custom networks/tables without editing the install)
282
+
283
+ `user_rates_dir` points at a directory with the same `nuclear/networks/`
284
+ and/or `nuclear/tables/<name>/` layout as the shipped `data/` tree; any
285
+ network file or per-reaction table found there is used instead of the
286
+ shipped one, while everything not overridden still falls back to the
287
+ shipped default (an additive overlay, not a takeover). `rates_dir` instead
288
+ fully replaces the shipped tree as the first lookup base (still falling
289
+ back to the shipped tree as a last resort, so `small`/`large` never
290
+ disappear). Both default to `None` and are validated as existing
291
+ directories at construction time.
292
+
293
+ ## Output
294
+
295
+ `solve()` returns a dict:
296
+
297
+ | Key | Description |
298
+ |-----|-------------|
299
+ | `YPBBN` | Helium-4 mass fraction (BBN convention) |
300
+ | `YPCMB` | Helium-4 mass fraction (CMB convention) |
301
+ | `DoH` | D/H |
302
+ | `He3oH` | ((He3+T)/H |
303
+ | `Li7oH` | (Li7+Be7)/H |
304
+ | `Neff` | Effective number of neutrino species |
305
+ | `Omeganurel` | Ω_ν h² × 10⁶ (relativistic) |
306
+ | `OneOverOmeganunr` | 1 / (Ω_ν h² × 10⁻⁶) (non-relativistic) |
307
+
308
+ When `output_time_evolution=True`, a TSV file is written with columns:
309
+ `a, T, t, H, Tnue, Tnumu, Tnutau, [Nheating], [abundances], n_to_p_weak_rate, p_to_n_weak_rate, [nuclear rates]`
310
+
311
+ `Nheating` is included only for `incomplete_decoupling=True` (a real NEVO
312
+ heating table). `[abundances]` is one `Y<species>` column per nuclide of the
313
+ chosen network (8 for small/small_parthenope, ~59 for large, fewer with an
314
+ `amax` cutoff). `[nuclear rates]` (`output_rates_time_evolution=True`) is
315
+ available for small/small_parthenope only; it is omitted (with a printed
316
+ note) for `network="large"`.
317
+
318
+ ## Architecture
319
+
320
+ ```
321
+ primat/ Core Python package
322
+ backend.py Main entry point: run_bbn() dispatch (C vs pure-Python)
323
+ config.py PRIMATConfig: all physical constants + run-time flags
324
+ main.py PRIMAT class: low-level Python implementation
325
+ background.py Cosmological background (a<->t<->T, weak rates, Neff)
326
+ nuclear_network.py Nuclear network ODE integration (HT/MT/LT eras)
327
+ plasma.py Plasma thermodynamics (QED corrections, neutrino bath)
328
+ qed_pressure.py Analytical QED plasma-pressure corrections
329
+ network_data.py Nuclear network definition and loading
330
+ network_builder.py Generic stoichiometry-driven ODE builders (numba kernels)
331
+ weak_rates/ n <-> p weak rate computation (integrands, corrections, cache)
332
+ neutrino_history.py NEVO non-instantaneous decoupling table I/O
333
+ evolution.py Unified time-evolution TSV schema
334
+ cli.py `primat` command-line entry point
335
+ gui/ `primat-gui` Streamlit app (optional, source-only)
336
+ data/ Shipped rate tables and network definitions
337
+ _primat_c/ Compiled C extension bridge (wraps primat-c/)
338
+
339
+ primat/data/
340
+ nuclear/
341
+ tables/ Per-reaction rate tables (one folder per reaction)
342
+ networks/ Network list files (small.txt, large.txt, custom.txt, etc.)
343
+ csv/ Reaction catalog (nuclides.csv, detailed_balance.csv, etc.)
344
+ plasma/ Pre-computed QED pressure tables
345
+ weak/ Cached n↔p forward/backward rates
346
+ NEVO/ Neutrino-decoupling history tables
347
+
348
+ primat-c/ Standalone C99 port (independent build via `make`)
349
+ Also compiled as extension for the Python backend.
350
+ See primat-c/README.md for details.
351
+
352
+ generate_rates/ Offline rate-table generator (one-time use)
353
+ Converts AC2024 compilation to primat format
354
+ ```
355
+
356
+ ### Backend dispatch
357
+
358
+ `run_bbn()` (`primat/backend.py`) is the single entry point:
359
+ - **C backend** (default): Precompiled in wheels, ~25× faster, deterministic numerical
360
+ differences (~1e-8 relative) vs. Python that are budgeted separately
361
+ - **Python backend** (fallback or explicit): Pure Python, all features, no
362
+ compilation needed, slightly slower, useful for development
363
+
364
+ All three interfaces (Python API, CLI, GUI) ultimately call `run_bbn()`
365
+ or the pure-Python fallback.
366
+
367
+ ### Networks
368
+
369
+ Two named networks (plus a Parthenope-rates variant of the small one) are
370
+ available via the `network` flag; `amax` (any positive integer) further
371
+ restricts *any* of them to reactions whose nuclides all have mass number
372
+ A ≤ amax:
373
+
374
+ | `network` | Reactions | Nuclides | Notes |
375
+ |-----------|-----------|----------|-------|
376
+ | `"small"` | 12 | 8 | the key reactions; fastest |
377
+ | `"small_parthenope"` | 12 | 8 | same reactions, Parthenope 3.0 rate tables (comparison runs) |
378
+ | `"large"` | ~429 | ~59 | from the AC2024 compilation; LT era only |
379
+ | `"large"`, `amax=8` | 68 | 12 | the old "medium" network's exact equivalent |
380
+ | `"large"`, `amax=2` | 3 | 3 | the old "deuterium" network's equivalent (n↔p + n_p__d_g + p_p_n__d_p) |
381
+
382
+ All networks share the HT (n↔p) and MT eras (the MT era always uses a fixed
383
+ 18-reaction subset, too stiff to run the full network); only the LT reaction
384
+ set is filtered by `network`/`amax`. The light-element abundances of the full
385
+ large network match the `amax=8` restriction to ≲1e-4; its heavy-nuclide tail
386
+ (B, C, N, O, …) is approximate. See `notebooks/AbundanceEvolution.ipynb` for
387
+ evolution plots.
388
+
389
+ ### Custom networks (GUI)
390
+
391
+ The `primat-gui` sidebar's "Nuclear reactions" group offers **"Create
392
+ custom network"** (a popup to start from any named network, toggle reactions
393
+ in/out by mass-number category, and substitute or upload alternate rate
394
+ tables) and **"Import custom network"** (re-load a previously saved
395
+ `.zip`).
396
+
397
+ ## Cobaya / MCMC interface
398
+
399
+ A wrapper for primat is available for use
400
+ with [Cobaya](https://cobaya.readthedocs.io), allowing BBN to be embedded directly
401
+ in MCMC analyses of CMB or other cosmological data. The wrapper exposes
402
+ `Omegabh2`, `DeltaNeff`, and the nuclear-rate uncertainty parameters as Cobaya
403
+ theory/likelihood inputs and returns the standard BBN observables (`YPBBN`, `DoH`,
404
+ etc.) for use in a likelihood.
405
+
406
+ ## Citation
407
+
408
+ If you use primat please cite:
409
+
410
+ > Pitrou, Coc, Uzan, Vangioni, *Physics Reports* **754** (2018) 1–67.
411
+ > [doi:10.1016/j.physrep.2018.04.005](https://doi.org/10.1016/j.physrep.2018.04.005)
412
+
413
+ ## Authors
414
+
415
+ Cyril Pitrou (<pitrou@iap.fr>), Julien Froustey