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
Header file containing physical and mathematical constants.
Header file for math.c.