|
1 | 1 | #ifndef actual_network_H |
2 | 2 | #define actual_network_H |
3 | 3 |
|
| 4 | +#include <random> |
4 | 5 | #include <string_view> |
5 | 6 |
|
6 | 7 | #include <AMReX_REAL.H> |
7 | 8 | #include <AMReX_Array.H> |
8 | 9 | #include <AMReX_Loop.H> |
9 | 10 |
|
| 11 | +#include <extern_parameters.H> |
10 | 12 | #include <fundamental_constants.H> |
11 | 13 | #include <network_properties.H> |
12 | 14 |
|
13 | 15 | using namespace amrex::literals; |
14 | 16 |
|
15 | | -void actual_network_init(); |
| 17 | + |
| 18 | +inline |
| 19 | +void actual_network_init() { |
| 20 | + |
| 21 | + |
| 22 | +} |
16 | 23 |
|
17 | 24 | constexpr std::string_view network_name = "pynucastro-cxx"; |
18 | 25 |
|
@@ -217,27 +224,27 @@ namespace Rates |
217 | 224 | k_p_Al27_to_He4_Mg24_reaclib = 18, |
218 | 225 | k_p_P31_to_He4_Si28_reaclib = 19, |
219 | 226 | k_He4_He4_He4_to_C12_reaclib = 20, |
220 | | - k_C12_C12_to_n_Mg23_removed = 21, |
221 | | - k_O16_O16_to_n_S31_removed = 22, |
222 | | - k_C12_O16_to_n_Si27_removed = 23, |
223 | | - k_He4_S32_to_Ar36_removed = 24, |
224 | | - k_p_Cl35_to_Ar36_removed = 25, |
225 | | - k_p_Cl35_to_He4_S32_removed = 26, |
226 | | - k_He4_Ar36_to_Ca40_removed = 27, |
227 | | - k_p_K39_to_Ca40_removed = 28, |
228 | | - k_p_K39_to_He4_Ar36_removed = 29, |
229 | | - k_He4_Ca40_to_Ti44_removed = 30, |
230 | | - k_p_Sc43_to_Ti44_removed = 31, |
231 | | - k_p_Sc43_to_He4_Ca40_removed = 32, |
232 | | - k_He4_Ti44_to_Cr48_removed = 33, |
233 | | - k_He4_Ti44_to_p_V47_removed = 34, |
234 | | - k_p_V47_to_Cr48_removed = 35, |
235 | | - k_He4_Cr48_to_Fe52_removed = 36, |
236 | | - k_He4_Cr48_to_p_Mn51_removed = 37, |
237 | | - k_p_Mn51_to_Fe52_removed = 38, |
238 | | - k_He4_Fe52_to_Ni56_removed = 39, |
239 | | - k_He4_Fe52_to_p_Co55_removed = 40, |
240 | | - k_p_Co55_to_Ni56_removed = 41, |
| 227 | + k_C12_C12_to_n_Mg23_reaclib = 21, |
| 228 | + k_O16_O16_to_n_S31_reaclib = 22, |
| 229 | + k_C12_O16_to_n_Si27_reaclib = 23, |
| 230 | + k_He4_S32_to_Ar36_reaclib = 24, |
| 231 | + k_p_Cl35_to_Ar36_reaclib = 25, |
| 232 | + k_p_Cl35_to_He4_S32_reaclib = 26, |
| 233 | + k_He4_Ar36_to_Ca40_reaclib = 27, |
| 234 | + k_p_K39_to_Ca40_reaclib = 28, |
| 235 | + k_p_K39_to_He4_Ar36_reaclib = 29, |
| 236 | + k_He4_Ca40_to_Ti44_reaclib = 30, |
| 237 | + k_p_Sc43_to_Ti44_reaclib = 31, |
| 238 | + k_p_Sc43_to_He4_Ca40_reaclib = 32, |
| 239 | + k_He4_Ti44_to_Cr48_reaclib = 33, |
| 240 | + k_He4_Ti44_to_p_V47_reaclib = 34, |
| 241 | + k_p_V47_to_Cr48_reaclib = 35, |
| 242 | + k_He4_Cr48_to_Fe52_reaclib = 36, |
| 243 | + k_He4_Cr48_to_p_Mn51_reaclib = 37, |
| 244 | + k_p_Mn51_to_Fe52_reaclib = 38, |
| 245 | + k_He4_Fe52_to_Ni56_reaclib = 39, |
| 246 | + k_He4_Fe52_to_p_Co55_reaclib = 40, |
| 247 | + k_p_Co55_to_Ni56_reaclib = 41, |
241 | 248 | k_S32_He4_to_Ar36_approx = 42, |
242 | 249 | k_Ar36_to_S32_He4_approx = 43, |
243 | 250 | k_Ar36_He4_to_Ca40_approx = 44, |
@@ -276,25 +283,59 @@ namespace Rates |
276 | 283 | k_Mg24_to_C12_C12_derived = 77, |
277 | 284 | k_S32_to_O16_O16_derived = 78, |
278 | 285 | k_Si28_to_C12_O16_derived = 79, |
279 | | - k_He4_S32_to_p_Cl35_removed = 80, |
280 | | - k_Ar36_to_He4_S32_removed = 81, |
281 | | - k_Ar36_to_p_Cl35_removed = 82, |
282 | | - k_He4_Ar36_to_p_K39_removed = 83, |
283 | | - k_Ca40_to_He4_Ar36_removed = 84, |
284 | | - k_Ca40_to_p_K39_removed = 85, |
285 | | - k_He4_Ca40_to_p_Sc43_removed = 86, |
286 | | - k_Ti44_to_He4_Ca40_removed = 87, |
287 | | - k_Ti44_to_p_Sc43_removed = 88, |
288 | | - k_Cr48_to_He4_Ti44_removed = 89, |
289 | | - k_Cr48_to_p_V47_removed = 90, |
290 | | - k_p_V47_to_He4_Ti44_removed = 91, |
291 | | - k_Fe52_to_He4_Cr48_removed = 92, |
292 | | - k_Fe52_to_p_Mn51_removed = 93, |
293 | | - k_p_Mn51_to_He4_Cr48_removed = 94, |
294 | | - k_Ni56_to_He4_Fe52_removed = 95, |
295 | | - k_Ni56_to_p_Co55_removed = 96, |
296 | | - k_p_Co55_to_He4_Fe52_removed = 97, |
297 | | - NumRates = k_p_Co55_to_He4_Fe52_removed |
| 286 | + k_He4_S32_to_p_Cl35_derived = 80, |
| 287 | + k_Ar36_to_He4_S32_derived = 81, |
| 288 | + k_Ar36_to_p_Cl35_derived = 82, |
| 289 | + k_He4_Ar36_to_p_K39_derived = 83, |
| 290 | + k_Ca40_to_He4_Ar36_derived = 84, |
| 291 | + k_Ca40_to_p_K39_derived = 85, |
| 292 | + k_He4_Ca40_to_p_Sc43_derived = 86, |
| 293 | + k_Ti44_to_He4_Ca40_derived = 87, |
| 294 | + k_Ti44_to_p_Sc43_derived = 88, |
| 295 | + k_Cr48_to_He4_Ti44_derived = 89, |
| 296 | + k_Cr48_to_p_V47_derived = 90, |
| 297 | + k_p_V47_to_He4_Ti44_derived = 91, |
| 298 | + k_Fe52_to_He4_Cr48_derived = 92, |
| 299 | + k_Fe52_to_p_Mn51_derived = 93, |
| 300 | + k_p_Mn51_to_He4_Cr48_derived = 94, |
| 301 | + k_Ni56_to_He4_Fe52_derived = 95, |
| 302 | + k_Ni56_to_p_Co55_derived = 96, |
| 303 | + k_p_Co55_to_He4_Fe52_derived = 97, |
| 304 | + NumRates = k_p_Co55_to_He4_Fe52_derived |
| 305 | + }; |
| 306 | + |
| 307 | + enum ScreenPairs : |
| 308 | + std::uint8_t |
| 309 | + { |
| 310 | + k_p_C12 = 1, |
| 311 | + k_He4_O16 = 2, |
| 312 | + k_p_K39 = 3, |
| 313 | + k_He4_Ca40 = 4, |
| 314 | + k_He4_Ar36 = 5, |
| 315 | + k_p_Sc43 = 6, |
| 316 | + k_He4_C12 = 7, |
| 317 | + k_He4_Ti44 = 8, |
| 318 | + k_He4_Mg24 = 9, |
| 319 | + k_C12_O16 = 10, |
| 320 | + k_p_V47 = 11, |
| 321 | + k_He4_Cr48 = 12, |
| 322 | + k_C12_C12 = 13, |
| 323 | + k_p_Co55 = 14, |
| 324 | + k_He4_Ne20 = 15, |
| 325 | + k_p_Al27 = 16, |
| 326 | + k_p_Mn51 = 17, |
| 327 | + k_p_Na23 = 18, |
| 328 | + k_He4_Fe52 = 19, |
| 329 | + k_He4_S32 = 20, |
| 330 | + k_p_P31 = 21, |
| 331 | + k_He4_He4 = 22, |
| 332 | + k_p_O16 = 23, |
| 333 | + k_He4_Si28 = 24, |
| 334 | + k_p_Cl35 = 25, |
| 335 | + k_O16_O16 = 26, |
| 336 | + k_He4_Be8 = 27, |
| 337 | + k_He4_N13 = 28, |
| 338 | + NumScreenPairs = k_He4_N13 |
298 | 339 | }; |
299 | 340 |
|
300 | 341 | // rate names -- note: the rates are 1-based, not zero-based, so we pad |
@@ -323,27 +364,27 @@ namespace Rates |
323 | 364 | "p_Al27_to_He4_Mg24_reaclib", // 18, |
324 | 365 | "p_P31_to_He4_Si28_reaclib", // 19, |
325 | 366 | "He4_He4_He4_to_C12_reaclib", // 20, |
326 | | - "C12_C12_to_n_Mg23_removed", // 21, |
327 | | - "O16_O16_to_n_S31_removed", // 22, |
328 | | - "C12_O16_to_n_Si27_removed", // 23, |
329 | | - "He4_S32_to_Ar36_removed", // 24, |
330 | | - "p_Cl35_to_Ar36_removed", // 25, |
331 | | - "p_Cl35_to_He4_S32_removed", // 26, |
332 | | - "He4_Ar36_to_Ca40_removed", // 27, |
333 | | - "p_K39_to_Ca40_removed", // 28, |
334 | | - "p_K39_to_He4_Ar36_removed", // 29, |
335 | | - "He4_Ca40_to_Ti44_removed", // 30, |
336 | | - "p_Sc43_to_Ti44_removed", // 31, |
337 | | - "p_Sc43_to_He4_Ca40_removed", // 32, |
338 | | - "He4_Ti44_to_Cr48_removed", // 33, |
339 | | - "He4_Ti44_to_p_V47_removed", // 34, |
340 | | - "p_V47_to_Cr48_removed", // 35, |
341 | | - "He4_Cr48_to_Fe52_removed", // 36, |
342 | | - "He4_Cr48_to_p_Mn51_removed", // 37, |
343 | | - "p_Mn51_to_Fe52_removed", // 38, |
344 | | - "He4_Fe52_to_Ni56_removed", // 39, |
345 | | - "He4_Fe52_to_p_Co55_removed", // 40, |
346 | | - "p_Co55_to_Ni56_removed", // 41, |
| 367 | + "C12_C12_to_n_Mg23_reaclib", // 21, |
| 368 | + "O16_O16_to_n_S31_reaclib", // 22, |
| 369 | + "C12_O16_to_n_Si27_reaclib", // 23, |
| 370 | + "He4_S32_to_Ar36_reaclib", // 24, |
| 371 | + "p_Cl35_to_Ar36_reaclib", // 25, |
| 372 | + "p_Cl35_to_He4_S32_reaclib", // 26, |
| 373 | + "He4_Ar36_to_Ca40_reaclib", // 27, |
| 374 | + "p_K39_to_Ca40_reaclib", // 28, |
| 375 | + "p_K39_to_He4_Ar36_reaclib", // 29, |
| 376 | + "He4_Ca40_to_Ti44_reaclib", // 30, |
| 377 | + "p_Sc43_to_Ti44_reaclib", // 31, |
| 378 | + "p_Sc43_to_He4_Ca40_reaclib", // 32, |
| 379 | + "He4_Ti44_to_Cr48_reaclib", // 33, |
| 380 | + "He4_Ti44_to_p_V47_reaclib", // 34, |
| 381 | + "p_V47_to_Cr48_reaclib", // 35, |
| 382 | + "He4_Cr48_to_Fe52_reaclib", // 36, |
| 383 | + "He4_Cr48_to_p_Mn51_reaclib", // 37, |
| 384 | + "p_Mn51_to_Fe52_reaclib", // 38, |
| 385 | + "He4_Fe52_to_Ni56_reaclib", // 39, |
| 386 | + "He4_Fe52_to_p_Co55_reaclib", // 40, |
| 387 | + "p_Co55_to_Ni56_reaclib", // 41, |
347 | 388 | "S32_He4_to_Ar36_approx", // 42, |
348 | 389 | "Ar36_to_S32_He4_approx", // 43, |
349 | 390 | "Ar36_He4_to_Ca40_approx", // 44, |
@@ -382,26 +423,32 @@ namespace Rates |
382 | 423 | "Mg24_to_C12_C12_derived", // 77, |
383 | 424 | "S32_to_O16_O16_derived", // 78, |
384 | 425 | "Si28_to_C12_O16_derived", // 79, |
385 | | - "He4_S32_to_p_Cl35_removed", // 80, |
386 | | - "Ar36_to_He4_S32_removed", // 81, |
387 | | - "Ar36_to_p_Cl35_removed", // 82, |
388 | | - "He4_Ar36_to_p_K39_removed", // 83, |
389 | | - "Ca40_to_He4_Ar36_removed", // 84, |
390 | | - "Ca40_to_p_K39_removed", // 85, |
391 | | - "He4_Ca40_to_p_Sc43_removed", // 86, |
392 | | - "Ti44_to_He4_Ca40_removed", // 87, |
393 | | - "Ti44_to_p_Sc43_removed", // 88, |
394 | | - "Cr48_to_He4_Ti44_removed", // 89, |
395 | | - "Cr48_to_p_V47_removed", // 90, |
396 | | - "p_V47_to_He4_Ti44_removed", // 91, |
397 | | - "Fe52_to_He4_Cr48_removed", // 92, |
398 | | - "Fe52_to_p_Mn51_removed", // 93, |
399 | | - "p_Mn51_to_He4_Cr48_removed", // 94, |
400 | | - "Ni56_to_He4_Fe52_removed", // 95, |
401 | | - "Ni56_to_p_Co55_removed", // 96, |
402 | | - "p_Co55_to_He4_Fe52_removed" // 97, |
| 426 | + "He4_S32_to_p_Cl35_derived", // 80, |
| 427 | + "Ar36_to_He4_S32_derived", // 81, |
| 428 | + "Ar36_to_p_Cl35_derived", // 82, |
| 429 | + "He4_Ar36_to_p_K39_derived", // 83, |
| 430 | + "Ca40_to_He4_Ar36_derived", // 84, |
| 431 | + "Ca40_to_p_K39_derived", // 85, |
| 432 | + "He4_Ca40_to_p_Sc43_derived", // 86, |
| 433 | + "Ti44_to_He4_Ca40_derived", // 87, |
| 434 | + "Ti44_to_p_Sc43_derived", // 88, |
| 435 | + "Cr48_to_He4_Ti44_derived", // 89, |
| 436 | + "Cr48_to_p_V47_derived", // 90, |
| 437 | + "p_V47_to_He4_Ti44_derived", // 91, |
| 438 | + "Fe52_to_He4_Cr48_derived", // 92, |
| 439 | + "Fe52_to_p_Mn51_derived", // 93, |
| 440 | + "p_Mn51_to_He4_Cr48_derived", // 94, |
| 441 | + "Ni56_to_He4_Fe52_derived", // 95, |
| 442 | + "Ni56_to_p_Co55_derived", // 96, |
| 443 | + "p_Co55_to_He4_Fe52_derived" // 97, |
403 | 444 | }; |
404 | 445 |
|
| 446 | + template<std::uint8_t rate> |
| 447 | + AMREX_GPU_DEVICE AMREX_INLINE |
| 448 | + constexpr amrex::Real get_p_random() { |
| 449 | + return 0.0_rt; |
| 450 | + } |
| 451 | + |
405 | 452 | } |
406 | 453 |
|
407 | 454 | #ifdef NSE_NET |
|
0 commit comments