ASCOT5
Loading...
Searching...
No Matches
physlib.h
Go to the documentation of this file.
1
5
#ifndef PHYSLIB_H
6
#define PHYSLIB_H
7
8
#include <
math.h
>
9
#include "
math.h
"
10
#include "
consts.h
"
11
21
#define physlib_gamma_vnorm(v) ( \
22
sqrt( 1.0 / ( (1.0 - v / CONST_C) * (1.0 + v / CONST_C) ) ) )
23
33
#define physlib_vnorm_gamma(gamma) ( \
34
sqrt( 1.0 - 1.0 / ( gamma * gamma ) ) * CONST_C )
35
46
#define physlib_gamma_pnorm(m, p) ( \
47
sqrt(1.0 + ( p * p ) / ( m * m * CONST_C2 ) ) )
48
61
#define physlib_gamma_vpar(m, mu, vpar, B) ( \
62
sqrt( ( 1.0 + (2.0 * mu * B) / ( m * CONST_C2 ) ) / \
63
( (1.0 - vpar / CONST_C) * (1.0 + vpar / CONST_C) ) ) )
64
77
#define physlib_gamma_ppar(m, mu, ppar, B) ( \
78
sqrt( 1.0 + 2 * mu * B / ( m * CONST_C2 ) + \
79
ppar * ppar / ( m * m * CONST_C2 ) ) )
80
91
#define physlib_Ekin_gamma(m, gamma) ( ( gamma - 1.0 ) * m * CONST_C2 )
92
103
#define physlib_gamma_Ekin(m, ekin) ( ekin / ( m * CONST_C2 ) + 1.0 )
104
115
#define physlib_Ekin_pnorm(m, p) ( \
116
( physlib_gamma_pnorm(m, p) - 1.0 ) * m * CONST_C2 )
117
128
#define physlib_Ekin_ppar(m, mu, ppar, B) ( \
129
( physlib_gamma_ppar(m, mu, ppar, B) - 1.0 ) * m * CONST_C2 )
130
141
#define physlib_vnorm_pnorm(m, p) ( \
142
p / sqrt(m * m + ( p * p ) / CONST_C2 ) )
143
154
#define physlib_pnorm_vnorm(m, v) ( m * v * physlib_gamma_vnorm(v) )
155
167
#define physlib_gc_ppar(p, xi) ( p * xi )
168
182
#define physlib_gc_mu(m, p, xi, B) ( \
183
p * p * ( 1.0 - xi * xi ) / ( 2 * B * m ) )
184
198
#define physlib_gc_p(m, mu, ppar, B) ( \
199
m * CONST_C * sqrt( pow( physlib_gamma_ppar(m, mu, ppar, B), 2) - 1 ) )
200
214
#define physlib_gc_xi(m, mu, ppar, B) ( \
215
ppar / physlib_gc_p(m, mu, ppar, B) )
216
228
#define physlib_gyrolength_p(q, p, B) ( \
229
math_dot(p, B) / ( fabs(q) * math_dot(B, B) ) )
230
245
#define phys_gyrolength_ppar(m, q, mu, ppar, B) ( \
246
sqrt( 2 * m * mu * \
247
physlib_gamma_ppar(m, mu, ppar, B) / B ) / fabs(q) )
248
261
#define phys_gyrofreq_pnorm(m, q, p, B) ( \
262
fabs(q) * B / ( m * physlib_gamma_pnorm(m, p) ) )
263
278
#define phys_gyrofreq_ppar(m, q, mu, ppar, B) ( \
279
fabs(q) * B / ( m * physlib_gamma_ppar(m, mu, ppar, B) ) )
280
295
#define phys_ptoroid_fo(q, R, pphi, psi) ( \
296
R * pphi + q * psi )
297
314
#define phys_ptoroid_gc(q, R, ppar, psi, B, Bphi) ( \
315
ppar * R * (Bphi / B) + q * psi )
316
329
#define phys_vperp_gc(v,vpar) sqrt(pow(v,2) - pow(vpar,2))
330
343
#define phys_pperp_gc(p,ppar) sqrt(pow(p,2) - pow(ppar,2))
344
360
#define phys_ppar_Ekin(m, ekin, mu, B) (sqrt((physlib_gamma_Ekin(m, ekin)*\
361
physlib_gamma_Ekin(m, ekin) - 1.0)*m*m*CONST_C2 - 2.0*m*mu*B))
362
376
#define phys_vperp_mu(m, mu, B) sqrt(2*mu*B/m)
377
396
#define phys_ppar_mu(m, mu, B, q, gyrof) (m*CONST_C*sqrt((q*B/(gyrof*m)) * \
397
(q*B/(gyrof*m)) - 2*mu*B/(m*CONST_C2) - 1))
398
399
400
// ISSUE: SEEMS TO CONTAIN A BUG!
417
#define phys_ppar_pphi(B, R, B_phi, p_phi, q, psi) (B/(R*B_phi)*(p_phi - q*psi))
418
426
#define phys_ald_force_chartime(q, m, B, gamma) ( (q*q*q*q) * (B*B) / \
427
(6.0 * CONST_PI * CONST_E0 * gamma * (m*m*m) * CONST_C3 ) )
428
429
#endif
consts.h
Header file containing physical and mathematical constants.
math.h
Header file for math.c.
Generated on Mon Apr 14 2025 13:15:18 for ASCOT5 by
1.13.2