1
+ // ===----------------------------------------------------------------------===//
2
+ //
3
+ // See the LICENSE file for license and copyright information
4
+ // SPDX-License-Identifier: NCSA AND BSD-3-Clause
5
+ //
6
+ // ===----------------------------------------------------------------------===//
7
+ // /
8
+ // / @file
9
+ // / Implements the functions to initialize the dust yields
10
+ // /
11
+ // ===----------------------------------------------------------------------===//
12
+
1
13
#include < stdlib.h>
2
14
#include < stdio.h>
3
15
#include < math.h>
4
16
#include " grackle_macros.h"
5
17
#include " grackle_chemistry_data.h"
18
+ #include " initialize_dust_yields.hpp" // forward declarations
19
+
20
+ // forward declare some functions
21
+
22
+ namespace { // stuff inside an anonymous namespace is local to this file
6
23
7
24
int calc_rates_dust_loc (int iSN, chemistry_data *my_chemistry, chemistry_data_storage *my_rates);
8
25
int calc_rates_dust_C13 (int iSN, chemistry_data *my_chemistry, chemistry_data_storage *my_rates);
@@ -17,11 +34,13 @@ int calc_rates_dust_P170(int iSN, chemistry_data *my_chemistry, chemistry_data_s
17
34
int calc_rates_dust_P200 (int iSN, chemistry_data *my_chemistry, chemistry_data_storage *my_rates);
18
35
int calc_rates_dust_Y19 (int iSN, chemistry_data *my_chemistry, chemistry_data_storage *my_rates);
19
36
37
+ } // anonymous namespace
38
+
20
39
typedef int calc_yield_rate_fn (int , chemistry_data*, chemistry_data_storage*);
21
40
22
- int initialize_dust_yields (chemistry_data * my_chemistry ,
23
- chemistry_data_storage * my_rates ,
24
- code_units * my_units )
41
+ int grackle::impl:: initialize_dust_yields (chemistry_data *my_chemistry,
42
+ chemistry_data_storage *my_rates,
43
+ code_units *my_units)
25
44
{
26
45
27
46
if (my_chemistry->metal_chemistry == 0 )
@@ -50,35 +69,35 @@ int initialize_dust_yields(chemistry_data *my_chemistry,
50
69
NSN = 12 ;
51
70
my_rates->SN0_N = NSN;
52
71
53
- my_rates -> SN0_XC = malloc (NSN * sizeof (double ));
54
- my_rates -> SN0_XO = malloc (NSN * sizeof (double ));
55
- my_rates -> SN0_XMg = malloc (NSN * sizeof (double ));
56
- my_rates -> SN0_XAl = malloc (NSN * sizeof (double ));
57
- my_rates -> SN0_XSi = malloc (NSN * sizeof (double ));
58
- my_rates -> SN0_XS = malloc (NSN * sizeof (double ));
59
- my_rates -> SN0_XFe = malloc (NSN * sizeof (double ));
60
-
61
- my_rates -> SN0_fC = malloc (NSN * sizeof (double ));
62
- my_rates -> SN0_fO = malloc (NSN * sizeof (double ));
63
- my_rates -> SN0_fMg = malloc (NSN * sizeof (double ));
64
- my_rates -> SN0_fAl = malloc (NSN * sizeof (double ));
65
- my_rates -> SN0_fSi = malloc (NSN * sizeof (double ));
66
- my_rates -> SN0_fS = malloc (NSN * sizeof (double ));
67
- my_rates -> SN0_fFe = malloc (NSN * sizeof (double ));
68
-
69
- my_rates -> SN0_fSiM = malloc (NSN * sizeof (double ));
70
- my_rates -> SN0_fFeM = malloc (NSN * sizeof (double ));
71
- my_rates -> SN0_fMg2SiO4 = malloc (NSN * sizeof (double ));
72
- my_rates -> SN0_fMgSiO3 = malloc (NSN * sizeof (double ));
73
- my_rates -> SN0_fFe3O4 = malloc (NSN * sizeof (double ));
74
- my_rates -> SN0_fAC = malloc (NSN * sizeof (double ));
75
- my_rates -> SN0_fSiO2D = malloc (NSN * sizeof (double ));
76
- my_rates -> SN0_fMgO = malloc (NSN * sizeof (double ));
77
- my_rates -> SN0_fFeS = malloc (NSN * sizeof (double ));
78
- my_rates -> SN0_fAl2O3 = malloc (NSN * sizeof (double ));
79
- my_rates -> SN0_freforg = malloc (NSN * sizeof (double ));
80
- my_rates -> SN0_fvolorg = malloc (NSN * sizeof (double ));
81
- my_rates -> SN0_fH2Oice = malloc (NSN * sizeof (double ));
72
+ my_rates->SN0_XC = ( double *) (NSN * sizeof (double ));
73
+ my_rates->SN0_XO = ( double *) (NSN * sizeof (double ));
74
+ my_rates->SN0_XMg = ( double *) (NSN * sizeof (double ));
75
+ my_rates->SN0_XAl = ( double *) (NSN * sizeof (double ));
76
+ my_rates->SN0_XSi = ( double *) (NSN * sizeof (double ));
77
+ my_rates->SN0_XS = ( double *) (NSN * sizeof (double ));
78
+ my_rates->SN0_XFe = ( double *) (NSN * sizeof (double ));
79
+
80
+ my_rates->SN0_fC = ( double *) (NSN * sizeof (double ));
81
+ my_rates->SN0_fO = ( double *) (NSN * sizeof (double ));
82
+ my_rates->SN0_fMg = ( double *) (NSN * sizeof (double ));
83
+ my_rates->SN0_fAl = ( double *) (NSN * sizeof (double ));
84
+ my_rates->SN0_fSi = ( double *) (NSN * sizeof (double ));
85
+ my_rates->SN0_fS = ( double *) (NSN * sizeof (double ));
86
+ my_rates->SN0_fFe = ( double *) (NSN * sizeof (double ));
87
+
88
+ my_rates->SN0_fSiM = ( double *) (NSN * sizeof (double ));
89
+ my_rates->SN0_fFeM = ( double *) (NSN * sizeof (double ));
90
+ my_rates->SN0_fMg2SiO4 = ( double *) (NSN * sizeof (double ));
91
+ my_rates->SN0_fMgSiO3 = ( double *) (NSN * sizeof (double ));
92
+ my_rates->SN0_fFe3O4 = ( double *) (NSN * sizeof (double ));
93
+ my_rates->SN0_fAC = ( double *) (NSN * sizeof (double ));
94
+ my_rates->SN0_fSiO2D = ( double *) (NSN * sizeof (double ));
95
+ my_rates->SN0_fMgO = ( double *) (NSN * sizeof (double ));
96
+ my_rates->SN0_fFeS = ( double *) (NSN * sizeof (double ));
97
+ my_rates->SN0_fAl2O3 = ( double *) (NSN * sizeof (double ));
98
+ my_rates->SN0_freforg = ( double *) (NSN * sizeof (double ));
99
+ my_rates->SN0_fvolorg = ( double *) (NSN * sizeof (double ));
100
+ my_rates->SN0_fH2Oice = ( double *) (NSN * sizeof (double ));
82
101
83
102
for (iSN = 0 ; iSN < NSN; iSN++) {
84
103
my_rates->SN0_XC [iSN] = 0.0 ;
@@ -112,19 +131,19 @@ int initialize_dust_yields(chemistry_data *my_chemistry,
112
131
my_rates->SN0_fH2Oice [iSN] = 0.0 ;
113
132
}
114
133
115
- my_rates -> SN0_r0SiM = malloc (NSN * 3 * sizeof (double ));
116
- my_rates -> SN0_r0FeM = malloc (NSN * 3 * sizeof (double ));
117
- my_rates -> SN0_r0Mg2SiO4 = malloc (NSN * 3 * sizeof (double ));
118
- my_rates -> SN0_r0MgSiO3 = malloc (NSN * 3 * sizeof (double ));
119
- my_rates -> SN0_r0Fe3O4 = malloc (NSN * 3 * sizeof (double ));
120
- my_rates -> SN0_r0AC = malloc (NSN * 3 * sizeof (double ));
121
- my_rates -> SN0_r0SiO2D = malloc (NSN * 3 * sizeof (double ));
122
- my_rates -> SN0_r0MgO = malloc (NSN * 3 * sizeof (double ));
123
- my_rates -> SN0_r0FeS = malloc (NSN * 3 * sizeof (double ));
124
- my_rates -> SN0_r0Al2O3 = malloc (NSN * 3 * sizeof (double ));
125
- my_rates -> SN0_r0reforg = malloc (NSN * 3 * sizeof (double ));
126
- my_rates -> SN0_r0volorg = malloc (NSN * 3 * sizeof (double ));
127
- my_rates -> SN0_r0H2Oice = malloc (NSN * 3 * sizeof (double ));
134
+ my_rates->SN0_r0SiM = ( double *) (NSN * 3 * sizeof (double ));
135
+ my_rates->SN0_r0FeM = ( double *) (NSN * 3 * sizeof (double ));
136
+ my_rates->SN0_r0Mg2SiO4 = ( double *) (NSN * 3 * sizeof (double ));
137
+ my_rates->SN0_r0MgSiO3 = ( double *) (NSN * 3 * sizeof (double ));
138
+ my_rates->SN0_r0Fe3O4 = ( double *) (NSN * 3 * sizeof (double ));
139
+ my_rates->SN0_r0AC = ( double *) (NSN * 3 * sizeof (double ));
140
+ my_rates->SN0_r0SiO2D = ( double *) (NSN * 3 * sizeof (double ));
141
+ my_rates->SN0_r0MgO = ( double *) (NSN * 3 * sizeof (double ));
142
+ my_rates->SN0_r0FeS = ( double *) (NSN * 3 * sizeof (double ));
143
+ my_rates->SN0_r0Al2O3 = ( double *) (NSN * 3 * sizeof (double ));
144
+ my_rates->SN0_r0reforg = ( double *) (NSN * 3 * sizeof (double ));
145
+ my_rates->SN0_r0volorg = ( double *) (NSN * 3 * sizeof (double ));
146
+ my_rates->SN0_r0H2Oice = ( double *) (NSN * 3 * sizeof (double ));
128
147
129
148
itab = 0 ;
130
149
for (iSN = 0 ; iSN < NSN; iSN++) {
@@ -151,27 +170,27 @@ int initialize_dust_yields(chemistry_data *my_chemistry,
151
170
dTd = 0.1000000 ;
152
171
Nmom = 4 ;
153
172
154
- my_rates -> gr_Td = malloc (NTd * Nmom * sizeof (double ));
173
+ my_rates->gr_Td = ( double *) (NTd * Nmom * sizeof (double ));
155
174
my_rates->gr_Size = NTd * Nmom;
156
175
my_rates->gr_N [0 ] = Nmom;
157
176
my_rates->gr_N [1 ] = NTd;
158
177
my_rates->gr_dT = dTd;
159
178
for (iTd = 0 ; iTd < NTd; iTd++)
160
179
my_rates->gr_Td [iTd] = Td0 + (double )iTd * dTd;
161
180
162
- my_rates -> SN0_kpSiM = malloc (NSN * Nmom * NTd * sizeof (double ));
163
- my_rates -> SN0_kpFeM = malloc (NSN * Nmom * NTd * sizeof (double ));
164
- my_rates -> SN0_kpMg2SiO4 = malloc (NSN * Nmom * NTd * sizeof (double ));
165
- my_rates -> SN0_kpMgSiO3 = malloc (NSN * Nmom * NTd * sizeof (double ));
166
- my_rates -> SN0_kpFe3O4 = malloc (NSN * Nmom * NTd * sizeof (double ));
167
- my_rates -> SN0_kpAC = malloc (NSN * Nmom * NTd * sizeof (double ));
168
- my_rates -> SN0_kpSiO2D = malloc (NSN * Nmom * NTd * sizeof (double ));
169
- my_rates -> SN0_kpMgO = malloc (NSN * Nmom * NTd * sizeof (double ));
170
- my_rates -> SN0_kpFeS = malloc (NSN * Nmom * NTd * sizeof (double ));
171
- my_rates -> SN0_kpAl2O3 = malloc (NSN * Nmom * NTd * sizeof (double ));
172
- my_rates -> SN0_kpreforg = malloc (NSN * Nmom * NTd * sizeof (double ));
173
- my_rates -> SN0_kpvolorg = malloc (NSN * Nmom * NTd * sizeof (double ));
174
- my_rates -> SN0_kpH2Oice = malloc (NSN * Nmom * NTd * sizeof (double ));
181
+ my_rates->SN0_kpSiM = ( double *) (NSN * Nmom * NTd * sizeof (double ));
182
+ my_rates->SN0_kpFeM = ( double *) (NSN * Nmom * NTd * sizeof (double ));
183
+ my_rates->SN0_kpMg2SiO4 = ( double *) (NSN * Nmom * NTd * sizeof (double ));
184
+ my_rates->SN0_kpMgSiO3 = ( double *) (NSN * Nmom * NTd * sizeof (double ));
185
+ my_rates->SN0_kpFe3O4 = ( double *) (NSN * Nmom * NTd * sizeof (double ));
186
+ my_rates->SN0_kpAC = ( double *) (NSN * Nmom * NTd * sizeof (double ));
187
+ my_rates->SN0_kpSiO2D = ( double *) (NSN * Nmom * NTd * sizeof (double ));
188
+ my_rates->SN0_kpMgO = ( double *) (NSN * Nmom * NTd * sizeof (double ));
189
+ my_rates->SN0_kpFeS = ( double *) (NSN * Nmom * NTd * sizeof (double ));
190
+ my_rates->SN0_kpAl2O3 = ( double *) (NSN * Nmom * NTd * sizeof (double ));
191
+ my_rates->SN0_kpreforg = ( double *) (NSN * Nmom * NTd * sizeof (double ));
192
+ my_rates->SN0_kpvolorg = ( double *) (NSN * Nmom * NTd * sizeof (double ));
193
+ my_rates->SN0_kpH2Oice = ( double *) (NSN * Nmom * NTd * sizeof (double ));
175
194
176
195
itab = 0 ;
177
196
for (iSN = 0 ; iSN < NSN; iSN++) {
@@ -212,8 +231,8 @@ int initialize_dust_yields(chemistry_data *my_chemistry,
212
231
return SUCCESS;
213
232
}
214
233
215
- int local_free_dust_yields (chemistry_data * my_chemistry ,
216
- chemistry_data_storage * my_rates )
234
+ int grackle::impl::free_dust_yields (chemistry_data *my_chemistry,
235
+ chemistry_data_storage *my_rates)
217
236
{
218
237
219
238
if (my_chemistry->metal_chemistry == 0 )
@@ -282,6 +301,8 @@ int local_free_dust_yields(chemistry_data *my_chemistry,
282
301
return SUCCESS;
283
302
}
284
303
304
+ namespace { // stuff inside an anonymous namespace is local to this file
305
+
285
306
int calc_rates_dust_loc (int iSN, chemistry_data *my_chemistry, chemistry_data_storage *my_rates)
286
307
{
287
308
@@ -4367,3 +4388,5 @@ int calc_rates_dust_Y19(int iSN, chemistry_data *my_chemistry, chemistry_data_st
4367
4388
4368
4389
return SUCCESS;
4369
4390
}
4391
+
4392
+ } // anonymous namespace
0 commit comments