Skip to content

Commit 42bf384

Browse files
authored
update ase network to use __device__ (#2009)
this will make them work with upcoming changes to pynucastro for HIP this also switches the CUDA CI to use test_sdc -- the nse_net_cell test actually didn't have a GPU launch in it.
1 parent 21e97ef commit 42bf384

19 files changed

Lines changed: 2816 additions & 1813 deletions

.github/workflows/cuda.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ jobs:
4141
make realclean
4242
make NETWORK_DIR=ignition_reaclib/URCA-simple USE_CUDA=TRUE COMP=gnu USE_MPI=FALSE -j 4
4343
44-
- name: compile nse_net_cell (ase)
44+
- name: compile test_sdc (ase)
4545
run: |
4646
export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
47-
cd unit_test/nse_net_cell
48-
make USE_CUDA=TRUE COMP=gnu USE_MPI=FALSE -j 4
47+
cd unit_test/test_sdc
48+
make USE_CUDA=TRUE COMP=gnu USE_MPI=FALSE NETWORK_DIR=ase USE_NSE_NET=TRUE SCREEN_METHOD=chabrier1998 -j 4

networks/he-burn/ase/Make.package

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE
22
CEXE_headers += network_properties.H
33

44
ifeq ($(USE_REACT),TRUE)
5-
CEXE_sources += actual_network_data.cpp
65
CEXE_headers += actual_network.H
76
CEXE_headers += tfactors.H
87
CEXE_headers += interp_tools.H
98
CEXE_headers += partition_functions.H
109
CEXE_headers += actual_rhs.H
10+
CEXE_headers += rate_type.H
1111
CEXE_headers += reaclib_rates.H
12+
CEXE_headers += approximate_rates.H
13+
CEXE_headers += modified_rates.H
1214
CEXE_headers += table_rates.H
1315
CEXE_headers += temperature_table_rates.H
1416
CEXE_headers += derived_rates.H

networks/he-burn/ase/actual_network.H

Lines changed: 127 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
#ifndef actual_network_H
22
#define actual_network_H
33

4+
#include <random>
45
#include <string_view>
56

67
#include <AMReX_REAL.H>
78
#include <AMReX_Array.H>
89
#include <AMReX_Loop.H>
910

11+
#include <extern_parameters.H>
1012
#include <fundamental_constants.H>
1113
#include <network_properties.H>
1214

1315
using namespace amrex::literals;
1416

15-
void actual_network_init();
17+
18+
inline
19+
void actual_network_init() {
20+
21+
22+
}
1623

1724
constexpr std::string_view network_name = "pynucastro-cxx";
1825

@@ -217,27 +224,27 @@ namespace Rates
217224
k_p_Al27_to_He4_Mg24_reaclib = 18,
218225
k_p_P31_to_He4_Si28_reaclib = 19,
219226
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,
241248
k_S32_He4_to_Ar36_approx = 42,
242249
k_Ar36_to_S32_He4_approx = 43,
243250
k_Ar36_He4_to_Ca40_approx = 44,
@@ -276,25 +283,59 @@ namespace Rates
276283
k_Mg24_to_C12_C12_derived = 77,
277284
k_S32_to_O16_O16_derived = 78,
278285
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
298339
};
299340

300341
// rate names -- note: the rates are 1-based, not zero-based, so we pad
@@ -323,27 +364,27 @@ namespace Rates
323364
"p_Al27_to_He4_Mg24_reaclib", // 18,
324365
"p_P31_to_He4_Si28_reaclib", // 19,
325366
"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,
347388
"S32_He4_to_Ar36_approx", // 42,
348389
"Ar36_to_S32_He4_approx", // 43,
349390
"Ar36_He4_to_Ca40_approx", // 44,
@@ -382,26 +423,32 @@ namespace Rates
382423
"Mg24_to_C12_C12_derived", // 77,
383424
"S32_to_O16_O16_derived", // 78,
384425
"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,
403444
};
404445

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+
405452
}
406453

407454
#ifdef NSE_NET

networks/he-burn/ase/actual_network_data.cpp

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)