1 | qx.Class.define("pf.base.Bohr", |
---|
2 | { |
---|
3 | statics : |
---|
4 | { |
---|
5 | // Fine-structure constant |
---|
6 | alpha : 7.297352570e-3, |
---|
7 | |
---|
8 | // alpha^2 |
---|
9 | alpha2 : 5.325135e-05, |
---|
10 | |
---|
11 | // alpha^3 |
---|
12 | alpha3 : 3.885939e-07, |
---|
13 | |
---|
14 | // Speed of light (1/alpha) |
---|
15 | c : 137.036, |
---|
16 | |
---|
17 | // Bohr magneton (alpha/2), must be in sync with B0! |
---|
18 | mu_B : 3.64867635e-3, |
---|
19 | |
---|
20 | // Proton mass |
---|
21 | m_p : 1836.2, |
---|
22 | |
---|
23 | // Electron mass (g) |
---|
24 | m0 : 9.1094e-28, |
---|
25 | // Hartree (eV) |
---|
26 | E0 : 27.2113845, |
---|
27 | // Bohr radius (cm) |
---|
28 | a0 : 5.291772108e-9, |
---|
29 | // Atomic unit time (s) |
---|
30 | t0 : 2.418884327e-17, |
---|
31 | // Atomic unit velocity (cm/s) |
---|
32 | v0 : 2.1876912633e8, |
---|
33 | // Electric field unit (V/cm) |
---|
34 | F0 : 5.14220632e9, |
---|
35 | // Magnetic field unit (T), must be in sync with mu_B! |
---|
36 | B0 : 1.7152553e3, |
---|
37 | // Volume unit (a0^3) |
---|
38 | V0 : 1.481847e-25, |
---|
39 | // Particle density unit (1/V0) |
---|
40 | n0 : 6.748334e+24, |
---|
41 | // Frequency unit (Hz) |
---|
42 | f0 : 4.1341373e16, |
---|
43 | // Pressure unit (dyne/cm^2) |
---|
44 | P0 : 2.9421912e14, |
---|
45 | |
---|
46 | bindingEnergy : function(Z_core, m_core, n) |
---|
47 | { |
---|
48 | return -Z_core*Z_core/(n*n)/2/(1 + 1/m_core); |
---|
49 | }, |
---|
50 | |
---|
51 | transitionEnergy : function(Z_core, m_core, n_u, n_l) |
---|
52 | { |
---|
53 | return this.bindingEnergy(Z_core, m_core, n_u) - |
---|
54 | this.bindingEnergy(Z_core, m_core, n_l); |
---|
55 | }, |
---|
56 | |
---|
57 | fineStructureCorrection : function(Z_core, n, j) |
---|
58 | { |
---|
59 | return -Math.pow(Z_core, 4)*(this.alpha*this.alpha)/ |
---|
60 | (n*n*n)*(1.0/(j + 0.5) - 3.0/(4*n))/2; |
---|
61 | }, |
---|
62 | |
---|
63 | fineStructureSplitting : function(Z_core, n) |
---|
64 | { |
---|
65 | return this.fineStructureCorrection(Z_core, n, n - 0.5) - |
---|
66 | this.fineStructureCorrection(Z_core, n, 0.5); |
---|
67 | }, |
---|
68 | |
---|
69 | transitionFineStructure : function(Z_core, n_u, n_l) |
---|
70 | { |
---|
71 | return this.fineStructureSplitting(Z_core, n_u) + |
---|
72 | this.fineStructureSplitting(Z_core, n_l); |
---|
73 | }, |
---|
74 | |
---|
75 | /* Quasi-classical absorption oscillator strength */ |
---|
76 | KramersF: function(n_u, n_l) |
---|
77 | { |
---|
78 | return 32/(3*Math.PI*Math.sqrt(3))* |
---|
79 | n_u*n_u*n_u*n_l/Math.pow(n_u*n_u - n_l*n_l, 3); |
---|
80 | }, |
---|
81 | |
---|
82 | fGauntFactor : function(n_u, n_l) |
---|
83 | { |
---|
84 | var g = 1; |
---|
85 | |
---|
86 | if (n_u == 2 && n_l == 1) { |
---|
87 | g = 0.717; |
---|
88 | } else |
---|
89 | if (n_u == 3 && n_l == 1) { |
---|
90 | g = 0.765; |
---|
91 | } else { |
---|
92 | var r2 = (n_l/n_u)*(n_l/n_u); |
---|
93 | var t = Math.pow((1 - r2)*n_l, 2/3); |
---|
94 | g = 1 - 0.1728*(1 + r2)/t; |
---|
95 | // - 0.0496*(1 + 484/15*r2 + r2*r2)/(t*t); |
---|
96 | } |
---|
97 | |
---|
98 | return g; |
---|
99 | }, |
---|
100 | |
---|
101 | oscillatorStrength : function(n_u, n_l) |
---|
102 | { |
---|
103 | if (n_l >= n_u || n_l < 1) { |
---|
104 | return 0; |
---|
105 | } else |
---|
106 | if (n_l == 1) { |
---|
107 | return 256/3*Math.pow((n_u - 1)/(n_u + 1), 2*n_u)/ |
---|
108 | Math.pow(1 - 1/(n_u*n_u), 4)/Math.pow(n_u, 3); |
---|
109 | } else { |
---|
110 | var g = this.fGauntFactor(n_u, n_l); |
---|
111 | |
---|
112 | return g*this.KramersF(n_u, n_l); |
---|
113 | } |
---|
114 | }, |
---|
115 | |
---|
116 | EinsteinA : function(Z_core, m_core, n_u, n_l) |
---|
117 | { |
---|
118 | var f = this.oscillatorStrength(n_u, n_l); |
---|
119 | var dE = this.transitionEnergy(Z_core, m_core, n_u, n_l); |
---|
120 | |
---|
121 | return 2*this.alpha3*dE*dE*f*(n_l/n_u)*(n_l/n_u); |
---|
122 | }, |
---|
123 | |
---|
124 | classicalIonizationField : function(Z_core, n) |
---|
125 | { |
---|
126 | return Math.pow(Z_core, 3)/(16*Math.pow(n, 4)); |
---|
127 | } |
---|
128 | } |
---|
129 | }); |
---|