-
Notifications
You must be signed in to change notification settings - Fork 1
/
ionization_vec.h
executable file
·60 lines (42 loc) · 1.81 KB
/
ionization_vec.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#ifndef _IONIZATION_HEADER
#define _IONIZATION_HEADER
#include "solver.h"
const float_type IONRATE_DENOM = 1e20;
const float_type IONRATE_DENOM_LN = log(IONRATE_DENOM);
float_type keldysh_rate_ln(float_type lnI);
float_type plasma_source_function(float_type reA, float_type imA, float_type ro);
float_type absorbtion_function(float_type reA, float_type imA, float_type ro);
float_type photoionization_function(float_type reA, float_type imA);
float_type photoabsorbtion_function(float_type reA, float_type imA);
float_type avalanche_ionization_function(float_type reA, float_type imA, float_type ro);
float_type recombination_function(float_type ro);
inline float_type photoionization_rate_ln(float_type lnI)
{
#ifdef MULTIPHOTON_IONIZATION
return K_MPI*lnI + log(BETA_MPI) + log(NEUTRAL_DENSITY);
#endif
#ifdef TUNNEL_IONIZATION
throw "photoionization_rate_ln() : Tunnel ionization is not supported yet!";
#endif
#ifdef KELDYSH_IONIZATION
return keldysh_rate_ln(lnI);
#endif
}
inline float_type plasma_source_function(float_type reA, float_type imA, float_type ro)
{
return photoionization_function(reA, imA) + avalanche_ionization_function(reA, imA, ro) - recombination_function(ro);
}
inline float_type photoabsorbtion_function(float_type reA, float_type imA)
{
return (abs2(reA, imA)==0)?(0):(0.5*photoionization_function(reA, imA)/abs2(reA, imA)*(IONIZATION_POTENTIAL*IONRATE_DENOM));
}
inline float_type avalanche_ionization_function(float_type reA, float_type imA, float_type ro)
{
double I = abs2(reA, imA);
return (ro>0)?(AVALANCHE_CROSSSECTION/(IONIZATION_POTENTIAL+PONDEROMOTIVE_COEFFICIENT*I)*I*(ro/IONRATE_DENOM)):0;
}
inline float_type recombination_function(float_type ro)
{
return (ro>0)?(ro/IONRATE_DENOM/RECOMBINATION_TAU):0;
}
#endif