ASCOT5
Toggle main menu visibility
Loading...
Searching...
No Matches
boschhale.c
Go to the documentation of this file.
1
8
#include "
ascot5.h
"
9
#include <
math.h
>
10
#include "
consts.h
"
11
#include "
boschhale.h
"
12
28
void
boschhale_reaction
(
29
Reaction
reaction,
real
* m1,
real
* q1,
real
* m2,
real
* q2,
30
real
* mprod1,
real
* qprod1,
real
* mprod2,
real
* qprod2,
real
* Q) {
31
switch
(reaction) {
32
case
DT_He4n:
33
*m1 = 3.344e-27;
// D
34
*q1 =
CONST_E
;
35
*m2 = 5.008e-27;
// T
36
*q2 =
CONST_E
;
37
*mprod1 = 6.645e-27;
// He4
38
*qprod1 = 2*
CONST_E
;
39
*mprod2 = 1.675e-27;
// n
40
*qprod2 = 0.0;
41
*Q = 17.6e6*
CONST_E
;
42
break
;
43
case
DHe3_He4p:
44
*m1 = 3.344e-27;
// D
45
*q1 =
CONST_E
;
46
*m2 = 5.008e-27;
// He3
47
*q2 = 2*
CONST_E
;
48
*mprod1 = 6.645e-27;
// He4
49
*qprod1 = 2*
CONST_E
;
50
*mprod2 = 1.673e-27;
// p
51
*qprod2 =
CONST_E
;
52
*Q = 18.3e6*
CONST_E
;
53
break
;
54
case
DD_Tp:
55
*m1 = 3.344e-27;
// D
56
*q1 =
CONST_E
;
57
*m2 = 3.344e-27;
// D
58
*q2 =
CONST_E
;
59
*mprod1 = 5.008e-27;
// T
60
*qprod1 =
CONST_E
;
61
*mprod2 = 1.673e-27;
// p
62
*qprod2 =
CONST_E
;
63
*Q = 4.03e6*
CONST_E
;
64
break
;
65
case
DD_He3n:
66
*m1 = 3.344e-27;
// D
67
*q1 =
CONST_E
;
68
*m2 = 3.344e-27;
// D
69
*q2 =
CONST_E
;
70
*mprod1 = 5.008e-27;
// He3
71
*qprod1 = 2*
CONST_E
;
72
*mprod2 = 1.675e-27;
// n
73
*qprod2 = 0.0;
74
*Q = 3.27e6*
CONST_E
;
75
break
;
76
}
77
}
78
89
real
boschhale_sigma
(
Reaction
reaction,
real
E) {
90
91
real
BG, A[5], B[4];
92
real
E_min, E_max;
93
E = E / (1.e3 *
CONST_E
);
// Convert to keV
94
95
switch
(reaction) {
96
97
case
DT_He4n:
98
if
(E <= 550) {
99
BG = 34.3827;
100
A[0] = 6.927e4;
101
A[1] = 7.454e8;
102
A[2] = 2.050e6;
103
A[3] = 5.2002e4;
104
A[4] = 0.0;
105
B[0] = 6.38e1;
106
B[1] = -9.95e-1;
107
B[2] = 6.981e-5;
108
B[3] = 1.728e-4;
109
}
110
else
{
111
BG = 34.3827;
112
A[0] = -1.4714e6;
113
A[1] = 0.0;
114
A[2] = 0.0;
115
A[3] = 0.0;
116
A[4] = 0.0;
117
B[0] = -8.4127e-3;
118
B[1] = 4.7983e-6;
119
B[2] = -1.0748e-9;
120
B[3] = 8.5184e-14;
121
}
122
E_min = 0.5;
123
E_max = 4700;
124
break
;
125
126
case
DHe3_He4p:
127
if
(E <= 900) {
128
BG = 68.7508;
129
A[0] = 5.7501e6;
130
A[1] = 2.5226e3;
131
A[2] = 4.5566e1;
132
A[3] = 0.0;
133
A[4] = 0.0;
134
B[0] = -3.1995e-3;
135
B[1] = -8.5530e-6;
136
B[2] = 5.9014e-8;
137
B[3] = 0.0;
138
}
139
else
{
140
BG = 68.7508;
141
A[0] = -8.3993e5;
142
A[1] = 0.0;
143
A[2] = 0.0;
144
A[3] = 0.0;
145
A[4] = 0.0;
146
B[0] = -2.6830e-3;
147
B[1] = 1.1633e-6;
148
B[2] = -2.1332e-10;
149
B[3] = 1.4250e-14;
150
}
151
E_min = 0.3;
152
E_max = 4800;
153
break
;
154
155
case
DD_Tp:
156
BG = 31.3970;
157
A[0] = 5.5576e4;
158
A[1] = 2.1054e2;
159
A[2] = -3.2638e-2;
160
A[3] = 1.4987e-6;
161
A[4] = 1.8181e-10;
162
B[0] = 0.0;
163
B[1] = 0.0;
164
B[2] = 0.0;
165
B[3] = 0.0;
166
E_min = 0.5;
167
E_max = 5000;
168
break
;
169
170
case
DD_He3n:
171
BG = 31.3970;
172
A[0] = 5.3701e4;
173
A[1] = 3.3027e2;
174
A[2] = -1.2706e-1;
175
A[3] = 2.9327e-5;
176
A[4] = -2.5151e-9;
177
B[0] = 0.0;
178
B[1] = 0.0;
179
B[2] = 0.0;
180
B[3] = 0.0;
181
E_min = 0.5;
182
E_max = 4900;
183
break
;
184
185
default
:
186
return
-1;
187
}
188
189
if
(E <= E_min) {
190
return
0;
191
}
192
193
/* Cap energy for astrophysical S-factor */
194
real
E2 = E;
195
if
(E2 > E_max) {
196
E2 = E_max;
197
}
198
199
real
S = (A[0] + E2*(A[1] + E2*(A[2] + E2*(A[3] + E2*A[4]))))
200
/ (1 + E2*(B[0] + E2*(B[1] + E2*(B[2]+E2*B[3]))));
201
202
/* Check for underflow */
203
if
(BG / sqrt(E2) > 700) {
204
return
0;
205
}
206
207
/* "With E in keV, the sigma is given in millibarns", hence 1e-31 */
208
real
sigma = S / (E * exp(BG / sqrt(E))) * 1e-31;
209
210
return
sigma;
211
}
212
225
real
boschhale_sigmav
(
Reaction
reaction,
real
Ti) {
226
227
real
BG, MRC2, C1, C2, C3, C4, C5, C6, C7;
228
229
switch
(reaction) {
230
231
case
DT_He4n:
232
BG = 34.3827;
233
MRC2 = 1124656;
234
C1 = 1.17302E-9;
235
C2 = 1.51361E-2;
236
C3 = 7.51886E-2;
237
C4 = 4.60643E-3;
238
C5 = 1.35000E-2;
239
C6 = -1.06750E-4;
240
C7 = 1.36600E-5;
241
break
;
242
243
case
DHe3_He4p:
244
BG = 68.7508;
245
MRC2 = 1124572;
246
C1 = 5.51036E-10;
247
C2 = 6.41918E-3;
248
C3 = -2.02896E-3;
249
C4 = -1.91080E-5;
250
C5 = 1.35776E-4;
251
C6 = 0.0;
252
C7 = 0.0;
253
break
;
254
255
case
DD_Tp:
256
BG = 31.3970;
257
MRC2 = 937814;
258
C1 = 5.65718E-12;
259
C2 = 3.41267E-3;
260
C3 = 1.99167E-3;
261
C4 = 0.0;
262
C5 = 1.05060E-5;
263
C6 = 0.0;
264
C7 = 0.0;
265
break
;
266
267
case
DD_He3n:
268
BG = 31.3970;
269
MRC2 = 937814;
270
C1 = 5.43360E-12;
271
C2 = 5.85778E-3;
272
C3 = 7.68222E-3;
273
C4 = 0.0;
274
C5 = -2.96400E-6;
275
C6 = 0.0;
276
C7 = 0.0;
277
break
;
278
279
default
:
280
return
-1;
281
}
282
283
real
theta = Ti / (1 - Ti*(C2 + Ti*(C4 + Ti*C6))
284
/ (1 + Ti*(C3 + Ti*(C5 + Ti*C7))));
285
286
real
xi = pow((BG*BG / (4*theta)), 1.0/3.0);
287
288
real
sigmav = C1 * theta * sqrt(xi / (MRC2 * Ti*Ti*Ti))
289
* exp(-3*xi) * 1.e-6;
290
291
return
sigmav;
292
}
ascot5.h
Main header file for ASCOT5.
real
double real
Definition
ascot5.h:85
boschhale_sigmav
real boschhale_sigmav(Reaction reaction, real Ti)
Estimate reactivity for a given fusion reaction.
Definition
boschhale.c:225
boschhale_reaction
void boschhale_reaction(Reaction reaction, real *m1, real *q1, real *m2, real *q2, real *mprod1, real *qprod1, real *mprod2, real *qprod2, real *Q)
Get masses and charges of particles participating in the reaction and the released energy.
Definition
boschhale.c:28
boschhale_sigma
real boschhale_sigma(Reaction reaction, real E)
Estimate cross-section for a given fusion reaction.
Definition
boschhale.c:89
boschhale.h
Header file for boschdale.c.
Reaction
Reaction
Available reactions.
Definition
boschhale.h:13
consts.h
Header file containing physical and mathematical constants.
CONST_E
#define CONST_E
Elementary charge [C].
Definition
consts.h:35
math.h
Header file for math.c.
Generated on
for ASCOT5 by
1.18.0