cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
helike_energy.cpp
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 #include "cddefines.h"
4 #include "physconst.h"
5 #include "iso.h"
6 #include "helike.h"
7 
8 /*
9  Energy order within 2 3P
10 
11  The order of the levels within the 2 3P level of atomic helium is opposite
12  from the order within astrophysically abundant ions. The indices below
13  consistently point to the correct level, and the energies are correct,
14  so the J levels within 2 3P are not in increasing energy order for helium itself.
15  This is ok since the atomic data is correct, and the difference in energies is so small.
16 */
17 
18 /* Ionization potentials (in wavenumber) for each ion in the iso-seq up to Z=30.
19  * These are exactly what you get if you take EionRYD below and multiply by RYD_INF. */
20 static double EionWN[LIMELM] =
21  /* the first, or H-like, element is not defined for he-like species */
22  {-DBL_MAX,
23  198310.6679 ,610003.839889137,1241136.72201499,2091948.45665631,3162116.52584231,
24  4452446.95015668,5962133.81875305,7692790.05069734,9645221.44709864,11814589.7994457,
25  14209766.0528639,16822685.5022862,19661412.9625169,22717883.6187518,26000162.0663204,
26  29508248.5246975,33234078.1790787,37185715.7345311,41363161.0813172,45766414.4389118,
27  50395475.4781030,55258409.0136949,60339085.8550283,65653635.1927626,71202056.8074231,
28  76976286.4328920,82984388.3352872,89194104.5722390,95726403.3055320};
29 
30 /* Ionization potentials (in Rydbergs) for each ion in the iso-seq up to Z=30.
31  * These are exactly what you get if you take Verner's numbers in atmdat_ph1(0,1,nelem,0)
32  * and multiply by (0.9998787/EVRYD), exactly as is done elsewhere in Cloudy. */
33 static double EionRYD[LIMELM] =
34  /* the first, or H-like, element is not defined for he-like species */
35  {-DBL_MAX,
36  1.807387521,5.558764,11.310070,19.063237,28.815326,40.573682,54.330961,70.101861,
37  87.893725,107.662464,129.488916,153.299590,179.167978,207.020588,236.930910,
38  268.898946,302.851204,338.861175,376.928858,417.054255,459.237363,503.551674,
39  549.850208,598.279945,648.840883,701.459535,756.209388,812.796486,872.323172};
40 
41 /* experimental energies, in wavenumbers, for atomic helium */
42 #define NHE1LEVELS 111
43 /* These energies from Drake 1996, except these divided by c */
44 static double He1Energies[NHE1LEVELS] =
45 {0.0 , 159855.9734, 166277.4390, 169087.8298, 169086.8417, 169086.7652, 171134.8957,
46 183236.7908, 184864.8281, 185564.6657, 186101.5615, 186104.9656, 186209.3638, 190298.6619,
47 190940.6075, 191217.0826, 191444.4868, 191446.4547, 191451.8805, 191451.8964, 191492.7108,
48 193346.9900, 193663.5106, 193800.7280, 193917.1538, 193918.2888, 193921.1207, 193921.1298,
49 193921.6166, 193921.6209, 193942.4612, 194936.1184, 195114.8672, 195192.7542, 195260.0724,
50 195260.7694, 195262.4251, 195262.4307, 195262.7236, 195262.7261, 195262.7930, 195262.7947,
51 195274.9074, 195868.2357, 195978.8938, 196027.3216, 196069.6730, 196070.1273, 196071.1763,
52 196071.1800, 196071.3686, 196071.3702, 196071.4141, 196071.4151, 196071.4283, 196071.4290,
53 196079.0865, 196461.3605, 196534.5628, 196566.7159, 196595.0620, 196595.3730, 196596.0785,
54 196596.0810, 196596.2092, 196596.2103, 196596.2404, 196596.2411, 196596.2503, 196596.2508,
55 196596.2541, 196596.2544, 196601.3992, 196861.9861, 196912.9014, 196935.3339, 196955.2261,
56 196955.4477, 196955.9445, 196955.9463, 196956.0373, 196956.0380, 196956.0595, 196956.0600,
57 196956.0666, 196956.0670, 196956.0693, 196956.0696, 196956.0705, 196956.0707, 196959.6917,
58 197145.2320, 197182.0643, 197198.3343, 197212.8252, 197212.9885, 197213.3513, 197213.3527,
59 197213.4194, 197213.4200, 197213.4358, 197213.4362, 197213.4411, 197213.4414, 197213.4431,
60 197213.4433, 197213.4440, 197213.4442, 197213.4445, 197213.4446, 197216.0885};
61 /* Last energy is 10^1P. */
62 
63 /* >>chng 05 sep 06, RP - update energies of excited states */
64 #define NIONLEVELS 31
65 /* These energies are from Chianti 5, up to 5^1P
66  * -1 is flag to use quantum defect routines instead
67  * >>refer He-like Energies Landi et al., 2005; ApJSS, in press
68  * >>refer He-like Energies Dere, K. P. et al. 1997,
69  * >>refercon Astronomy and Astrophysics Suppl. Ser., Vol. 125, pp. 149-173 */
70 static double IonEnergies[LIMELM-2][NIONLEVELS] =
71 {
72 /* ipLITHIUM=2; */
73 {0.00, 476034.98, 491374.60, 494266.57, 494261.17, 494263.44, 501808.59,
74  554754.45, 558777.88, 559501.16, 561243.67, 561273.62, 561752.82,
75  579981.33, 581596.77, 581886.34, 582613.64, 582630.95, 582642.97,
76  582644.04, 582830.11, 591184.26, 591989.55, 592134.36, 592504.32,
77  592514.43, 592520.11, 592521.11, -1.00 , -1.00 , 592634.91},
78 /* ipBERYLLIUM=3;*/
79 {0.00, 956502.00, 981178.00, 983366.00, 983355.00, 983370.00, 997454.00,
80  1121184.00, 1127705.00, 1128300.00, 1131383.00, 1131462.00, 1132390.00,
81  1175295.00, 1178005.00, 1178174.00, 1179451.00, 1179495.00, 1179515.00,
82  1179514.00, 1179830.00, 1199650.00, -1.00 , 1201060.00, 1201702.00,
83  1201800.00, 1201730.00, 1201742.00, -1.00 , -1.00 , 1201894.00},
84 /* ipBORON=4;*/
85 {0.00, 1601545.00, 1635720.00, 1636938.00, 1636922.00, 1636975.00, 1657980.00,
86  1882740.00, 1891790.00, 1892221.00, 1896710.00, 1896836.00, 1898063.00,
87  1976420.00, -1.00 , 1980291.11, 1982132.67, 1982220.00, 1982262.67,
88  1982240.00, 1982762.00, -1.00 , -1.00 , 2020730.00, 2021700.00,
89  -1.00 , 2021665.71, 2021760.00, 2021770.00, 2021770.00, 2022044.00},
90 /* ipCARBON=5;*/
91 {0.00, 2411262.00, 2455024.00, 2455162.74, 2455150.23, 2455286.01, 2483371.00,
92  2839562.00, 2851180.00, 2851418.00, 2857309.67, 2857529.00, 2859375.00,
93  2983541.00, -1.00 , 2988359.00, 2990776.00, 2990923.00, 2990923.40,
94  2990923.40, 2991710.00, 3048927.00, -1.00 , 3051332.00, 3052589.00,
95  3052656.00, 3052653.30, 3052653.30, 3052659.40, 3052659.40, 3053044.00},
96 /* ipNITROGEN=6;*/
97 {0.00, 3385890.00, 3439274.00, 3438312.46, 3438321.13, 3438612.15, 3473790.00,
98  3991860.00, -1.00 , 4006160.00, 4013460.00, 4013770.00, 4016390.00,
99  4196800.00, 4202520.00, 4202620.00, 4205820.00, 4205830.00, 4205810.00,
100  4205820.00, 4206810.00, 4290150.00, 4293020.00, 4293080.00, 4294570.00,
101  4294670.00, 4294700.00, 4294700.00, -1.00 , -1.00 , 4296090.00},
102 /* ipOXYGEN=7;*/
103 {0.00, 4524640.00, 4588380.00, 4585620.76, 4585679.58, 4586231.19, 4629201.00,
104  5338820.00, 5356420.00, 5355670.00, 5364422.67, 5365470.00, 5368550.00,
105  5616340.00, 5623100.00, 5622600.00, 5626225.33, 5626670.00, 5626210.00,
106  5626840.00, 5628100.00, 5742610.00, -1.00 , 5745440.00, 5747509.33,
107  5748230.00, 5747200.00, 5747820.00, -1.00 , -1.00 , 5748450.00},
108 /* ipFLUORINE=8;*/
109 {0.00, 5830040.00, 5903100.00, 5900600.00, 5900750.00, 5901700.00, 5949900.00,
110  6885090.00, 6903270.00, 6902560.00, 6914073.33, 6915900.00, 6916590.00,
111  7244270.00, -1.00 , 7250390.00, 7255960.00, 7254240.00, 7256750.00,
112  7257260.00, 7256370.00, -1.00 , -1.00 , 7410270.00, 7413940.00,
113  7412290.00, 7414760.00, 7415300.00, 7414780.00, -1.00 , 7414000.00},
114 /* ipNEON=9;*/
115 {0.00, 7299940.00, 7382680.00, 7378205.53, 7378506.43, 7380050.00, 7436560.00,
116  8623000.00, 8644880.00, 8644744.44, 8657128.67, 8662400.00, 8660530.00,
117  9075200.00, 9084060.00, 9084141.11, 9090355.33, -1.00 , 9089800.00,
118  9094400.00, 9090630.00, 9282200.00, 9286650.00, 9286713.33, 9288500.00,
119  -1.00 , 9289800.00, 9294400.00, -1.00 , -1.00 , 9290000.00},
120 /* ipSODIUM=10;*/
121 {0.00, 8935337.00, 9027981.00, 9022354.10, 9022876.10, 9025284.70, 9088700.00,
122  10558946.00, 10583431.00, 10583323.56, 10596783.40, 10597475.00, 10601080.00,
123  11115065.00, 11124986.00, 11125102.78, 11130639.00, 11131017.00, 11131051.00,
124  11131056.00, 11132393.00, 11369887.00, 11374868.00, 11374959.89, 11377767.00,
125  11377984.00, 11377987.00, 11377991.00, -1.00 , -1.00 , 11378646.00},
126 /* ipMAGNESIUM=11;*/
127 {0.00, 10736136.00, 10838778.00, 10831985.83, 10832819.18, 10836391.13, 10906612.00,
128  12691170.00, 12718304.00, 12718286.89, 12733392.33, 12734298.00, 12738006.00,
129  13361991.00, 13372977.00, 13373168.22, 13379472.60, 13379830.00, 13379893.00,
130  13379898.00, 13381265.00, 13669618.00, 13675137.00, 13675269.22, 13678467.13,
131  13678680.00, -1.00 , -1.00 , -1.00 , -1.00 , 13679363.00},
132 /* ipALUMINIUM=12;*/
133 {0.00, 12703061.00, 12815760.00, 12807847.00, 12809088.00, 12814213.00, 12891081.00,
134  15020463.00, 15050257.00, 15050434.00, 15067287.07, 15068371.00, 15072141.00,
135  15816791.00, 15828851.00, 15829158.67, 15836125.13, 15836581.00, -1.00 ,
136  -1.00 , 15838068.00, 16182216.00, 16188281.00, 16188471.33, 16192010.13,
137  16192244.00, -1.00 , -1.00 , -1.00 , -1.00 , 16192975.00},
138 /* ipSILICON=13;*/
139 {0.00, 14835945.00, 14958753.00, 14949756.42, 14951532.63, 14958690.57, 15042040.00,
140  17546734.00, 17579166.00, 17579686.44, 17598406.93, 17599605.00, 17603422.00,
141  18479389.00, 18492532.00, 18493007.56, 18500821.00, 18501245.00, -1.00 ,
142  -1.00 , 18502736.00, 18907613.00, 18914246.00, 18914502.78, 18918476.30,
143  18918694.00, -1.00 , -1.00 , -1.00 , -1.00 , 18919421.00},
144 /* ipPHOSPHORUS=14;*/
145 {0.00, 17135768.00, 17268828.00, 17258746.00, 17261164.00, 17270908.00, 17360546.00,
146  20271100.00, 20306284.00, 20307209.11, 20327865.87, 20329412.00, 20332952.00,
147  21350958.00, 21365192.00, 21365892.89, 21374428.00, 21375044.00, 21375302.00,
148  21375302.00, 21376454.00, 21846994.00, 21854144.00, 21854552.89, 21858894.80,
149  21859210.00, 21859340.00, 21859340.00, -1.00 , -1.00 , 21859464.00},
150 /* ipSULPHUR=15;*/
151 {0.00, 19602076.00, 19745473.00, 19734297.61, 19737518.84, 19750576.04, 19846285.00,
152  23193163.00, 23231087.00, 23232596.56, 23255347.53, 23257195.00, 23260416.00,
153  24431101.00, 24446439.00, 24447429.78, 24456981.30, 24457576.00, -1.00 ,
154  -1.00 , 24458842.00, 24999972.00, 25007605.00, 25008238.11, 25013102.40,
155  25013407.00, -1.00 , -1.00 , -1.00 , -1.00 , 25014007.00},
156 /* ipCHLORINE=16;*/
157 {0.00, 22236180.00, 22390000.00, 22377820.00, 22381940.00, 22399100.00, 22500680.00,
158  26314360.00, 26355050.00, 26357324.44, 26382328.67, 26384530.00, 26387270.00,
159  27720900.00, 27738000.00, 27738966.67, 27749520.00, 27750400.00, 27757331.14,
160  27757178.00, 27751600.00, 28367700.00, 28376500.00, 28376977.78, 28382286.67,
161  28382800.00, -1.00 , -1.00 , -1.00 , -1.00 , 28383400.00},
162 /* ipARGON=17;*/
163 {0.00, 25038230.00, 25202480.00, 25189388.10, 25194588.99, 25216810.57, 25323950.00,
164  29634850.00, 29678210.00, 29681541.11, 29713920.00, 29715070.00, 29713740.00,
165  31221700.00, 31239280.00, 31241087.78, -1.00 , -1.00 , -1.00 ,
166  -1.00 , 31254280.00, 31951370.00, 31960150.00, 31961182.22, -1.00 ,
167  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 31967860.00},
168 /* ipPOTASSIUM=18;*/
169 {0.00, 28004980.00, 28180480.00, 28165880.00, 28172670.00, 28200800.00, 28312910.00,
170  33151930.00, 33198090.00, 33202622.22, -1.00 , -1.00 , 33237140.00,
171  -1.00 , 34948420.00, -1.00 , -1.00 , -1.00 , -1.00 ,
172  -1.00 , 34964920.00, 35747360.00, 35756712.00, 35758032.00, -1.00 ,
173  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 35765192.00},
174 /* ipCALCIUM=19;*/
175 {0.00, 31142150.00, 31328450.00, 31312818.51, 31320486.08, 31356326.72, 31473810.00,
176  36870940.00, 36919930.00, 36925900.00, -1.00 , -1.00 , 36962850.00,
177  38850670.00, 38870530.00, 38873536.67, -1.00 , -1.00 , -1.00 ,
178  -1.00 , 38888680.00, 39761380.00, 39771310.00, 39772968.89, -1.00 ,
179  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 39780630.00},
180 /* ipSCANDIUM=20;*/
181 {0.00, 34448120.00, 34645360.00, 34628770.00, 34638550.00, 34682810.00, 34805000.00,
182  40790620.00, 40842480.00, 40850158.89, -1.00 , -1.00 , 40889690.00,
183  42983370.00, 43004390.00, 43008165.56, -1.00 , -1.00 , -1.00 ,
184  -1.00 , 43024380.00, 43992240.00, 44002740.00, 44004803.33, -1.00 ,
185  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 44013010.00},
186 /* ipTITANIUM=21;*/
187 {0.00, 37923880.00, 38131640.00, 38114760.00, 38125260.00, 38180620.00, 38308340.00,
188  44911910.00, 44966970.00, 44976472.22, 45016028.67, 45021140.00, 45018670.00,
189  47328500.00, 47351600.00, 47355644.44, 47372326.67, 47374500.00, -1.00 ,
190  -1.00 , 47373500.00, 48440800.00, 48452600.00, 48454581.11, -1.00 ,
191  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 48463700.00},
192 /* ipVANADIUM=22;*/
193 {0.00, 41568880.00, 41787830.00, 41770130.00, 41782100.00, 41849950.00, 41982380.00,
194  49234710.00, 49292760.00, 49304574.44, 49347922.67, 49353910.00, 49349740.00,
195  51886600.00, 51910900.00, 51915955.56, 51934113.33, 51936800.00, -1.00 ,
196  -1.00 , 51935100.00, 53107300.00, 53119700.00, 53122217.78, -1.00 ,
197  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 53132000.00},
198 /* ipCHROMIUM=23;*/
199 {0.00, 45384110.00, 45614410.00, 45595910.00, 45609360.00, 45691820.00, 45828830.00,
200  53760100.00, 53821190.00, 53835660.00, 53883181.33, 53890160.00, 53884060.00,
201  56658500.00, 56684100.00, 56690288.89, 56710306.67, 56713200.00, -1.00 ,
202  -1.00 , 56710700.00, 57992700.00, 58005800.00, 58008904.44, -1.00 ,
203  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 58019400.00},
204 /* ipMANGANESE=24;*/
205 {0.00, 49370240.00, 49612040.00, 49592800.00, 49607700.00, 49707130.00, 49848620.00,
206  58488800.00, 58553000.00, 58570522.22, 58622620.00, 58630700.00, 58622500.00,
207  61644700.00, 61671800.00, 61679233.33, 61701013.33, 61704700.00, -1.00 ,
208  -1.00 , 61701200.00, 63097900.00, 63111600.00, 63115327.78, -1.00 ,
209  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 63126600.00},
210 /* ipIRON=25;*/
211 {0.00, 53527760.00, 53781230.00, 53761280.00, 53777570.00, 53896550.00, 54042490.00,
212  63421700.00, 63489000.00, 63509966.67, 63567120.00, 63576500.00, 63565800.00,
213  66846900.00, 66875000.00, 66884011.11, 66908120.00, 66912100.00, -1.00 ,
214  -1.00 , 66907600.00, 68423800.00, 68438100.00, 68442730.00, -1.00 ,
215  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 68454800.00},
216 /* ipCOBALT=26;*/
217 {0.00, 57857380.00, 58122700.00, 58102090.00, 58119680.00, 58261180.00, 58411430.00,
218  68560000.00, 68630600.00, 68655444.44, 68718160.00, 68728900.00, 68715500.00,
219  72266000.00, 72295500.00, 72306144.44, 72332586.67, 72337100.00, -1.00 ,
220  -1.00 , 72331500.00, 73972000.00, 73987000.00, 73992318.89, -1.00 ,
221  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 74005400.00},
222 /* ipNICKEL=27;*/
223 {0.00, 62358960.00, 62637200.00, 62615022.80, 62633778.00, 62800884.44, 62952670.00,
224  73903340.00, 73976370.00, 74005924.44, -1.00 , -1.00 , 74070580.00,
225  77900890.00, 77930480.00, 77943808.89, -1.00 , -1.00 , -1.00 ,
226  -1.00 , 77970500.00, 79740940.00, 79755710.00, 79762730.00, -1.00 ,
227  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 79776290.00},
228 /* ipCOPPER=28;*/
229 {0.00, 67035380.00, 67324970.00, 67303150.00, 67322950.00, 67519170.00, 67678080.00,
230  79453200.00, 79530300.00, 79564500.00, 79640046.67, 79654200.00, 79634300.00,
231  83754400.00, 83786500.00, 83801155.56, 83832993.33, 83838900.00, -1.00 ,
232  -1.00 , 83830600.00, 85734300.00, 85750700.00, 85759175.00, -1.00 ,
233  -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 85773200.00},
234 /* ipZINC=29;*/
235 {0.00, 71886300.00, 72188400.00, 72166200.00, 72186600.00, 72415600.00, 72579000.00,
236  85212700.00, 85293200.00, 85332955.56, 85415826.67, 85431900.00, 85408300.00,
237  89828600.00, 89862000.00, 89879022.22, 89913666.67, 89920800.00, -1.00 ,
238  -1.00 , 89910900.00, 91953400.00, 91970500.00, 91979222.22, 91995073.33,
239  92000500.00, -1.00 , -1.00 , -1.00 , -1.00 , 91994500.00}};
240 
241 /* helike_quantum_defect - calculate quantum defect for a given level and nuclear charge. */
242 double helike_quantum_defect( long int nelem, long int ipLo )
243 {
244  /* The quantum defect, and parameters a,b, and c */
245  double qd,a,b,c;
246 
247  /* These are values of quantum defects of Helium levels at n=10.
248  * First dimension is spin, second is angular momentum.
249  * The defects are assumed to be constant for all n>10 and
250  * equal to these values. */
251  double HeDefectAsymptotes[2][10] = {
252  {1.40005E-01,-1.20673E-02,2.08056E-03,4.21484E-04,1.14868E-04,
253  4.08648E-05,1.73548E-05,8.33891E-06,4.39680E-06,2.42075E-06},
254  {2.97063E-01,6.81567E-02,2.82381E-03,4.27703E-04,1.17319E-04,
255  4.25254E-05,1.85549E-05,9.24641E-06,5.30882E-06,3.02877E-06}
256  };
257 
258  /* Parameters for fits to quantum defects for */
259  /* P triplet and S orbitals. The dimensions are */
260  /* first: l */
261  /* second: n */
262  /* third: parameters a,b,and c. */
263  double param[3][4][3]=
264  {
265  {{0.6451941,0.3119437,-1.2722842}, /* ^3S */
266  {0.7664874,0.3455675,-1.3976462},
267  {0.8247101,0.3603131,-1.4520500},
268  {0.8878402,0.3714450,-1.4995732}},
269 
270  {{1.4203514,0.5311096,-2.6728087}, /* ^1S */
271  {1.5733513,0.5997339,-2.9253834},
272  {1.4531025,0.5924751,-2.8662756},
273  {1.6038999,0.6342552,-3.0298071}},
274 
275  {{-2.2323488,0.0890840,-0.5166053}, /* ^3P */
276  {-2.0463691,0.1222081,-0.6672983},
277  {-1.9904104,0.1328918,-0.7150879},
278  {-1.9500974,0.1452111,-0.7649031}}
279  };
280 
281  /* Because they cannot be fit to a funtion of the same form as the other orbitals,
282  * the P singlets are fit to a different function, with these parameters and dimensions */
283  /* first: n */
284  /* second: parameters a and b. */
285  double P1[4][2]=
286  {
287  {-56.65245,-3.661923},
288  {-52.03411,-4.941075},
289  {-50.43744,-5.525750},
290  {-49.45137,-5.908615}
291  };
292 
293  long int n = StatesElem[ipHE_LIKE][nelem][ipLo].n;
294  long int lqn = StatesElem[ipHE_LIKE][nelem][ipLo].l;
295  long int S = StatesElem[ipHE_LIKE][nelem][ipLo].S;
296  long int s;
297 
298  if( S==1 )
299  s = 0;
300  else if( S==3 )
301  s = 1;
302  else if( S < 0 )
303  {
304  ASSERT( n > iso.n_HighestResolved_max[ipHE_LIKE][nelem] );
305  s = S;
306  }
307  else
308  TotalInsanity();
309 
310  DEBUG_ENTRY( "helike_quantum_defect()" );
311 
312  ASSERT(n >= 1L);
313  ASSERT(lqn >= 0 || n > iso.n_HighestResolved_max[ipHE_LIKE][nelem]);
314  ASSERT(n > lqn);
315  /* Only Helium and up, and only those turned on. */
316  ASSERT((nelem >= ipHELIUM) && (nelem < LIMELM));
317 
318  if( n > iso.n_HighestResolved_max[ipHE_LIKE][nelem] )
319  {
320  /* collapsed levels are assumed to have zero quantum defect. */
321  qd = 0.;
322  }
323  else if( nelem == ipHELIUM )
324  {
325  if( ipLo<NHE1LEVELS && n<=iso.n_HighestResolved_max[ipHE_LIKE][nelem] )
326  {
327  /* defects are calculated from theoretical energies. */
328  qd = n-sqrt(0.999862926*RYD_INF/(EionWN[ipHELIUM] - He1Energies[ipLo]));
329  }
330  else if( lqn<=9 )
331  {
332  ASSERT( s >= 0 && lqn >= 0 );
333  /* defects are set equal to the values at n=10. */
334  qd = HeDefectAsymptotes[s][lqn];
335  }
336  else if( s == 0 )
337  {
338  /* a simple fit for singlet high-l defects. */
339  qd = 0.0497*pow((double)lqn, -4.4303);
340  }
341  else
342  {
343  /* a simple fit for triplet high-l defects. */
344  qd = 0.0656*pow((double)lqn, -4.5606);
345  }
346  }
347  else if( ipLo == ipHe1s1S )
348  {
349  /* Quantum defects for ground state are found from the rydberg
350  * equation, and the ionization potential of the ion.
351  * the lint needs to see assert and not ASSERT */
352  ASSERT(nelem>ipHYDROGEN && nelem<LIMELM );
353  qd = 1.0 - nelem * sqrt(1/EionRYD[nelem]);
354  }
355  else
356  {
357  /* For levels with n > 5, the quantum defect */
358  /* is approximately the same as if n equaled 5. */
359  if( n > 5L )
360  {
361  n = 5L;
362  }
363  /* For P singlets */
364  if( lqn==1L && s==0L )
365  {
366  qd = 1./(P1[n-2][0] + P1[n-2][1] * (nelem+1) * log((double)nelem+1.) );
367  }
368  /* Defects for orbitals with l>2 are approximately equal to zero. */
369  else if( lqn < 2L )
370  {
371  a = param[2*(lqn+1)-s-1][n-2][0];
372  b = param[2*(lqn+1)-s-1][n-2][1];
373  c = param[2*(lqn+1)-s-1][n-2][2];
374  qd = exp((a+c*(nelem+1))/(1.0+b*(nelem+1)));
375  }
376  /* This fit is a simplification of table 11.9 from
377  * >>refer Helike defects Drake, G.W.F., editor. Atomic, Molecular & Optical Physics Handbook.
378  * >>refercon Chapter 11, "High Precision Calculations for Helium", G.W.F. Drake.
379  * >>refercon AIP Press: Woodbury, New York, 1996
380  * This will give quasi-real energies for all transitions, allowing a reasonable
381  * determination of which decays are zeroed due to being below the plasma frequency.
382  * The 1/nelem dependence is arbitray. */
383  else
384  {
385  ASSERT( lqn >= 2L );
386  qd = ( ( 0.0612/(double)nelem ) / pow((double)lqn, 4.44) );
387  }
388  }
389  return qd;
390 }
391 
392 /*helike_energy calculates energy of a given level. */
393 double helike_energy(long int nelem, long int ipLev )
394 {
395  double Ef, Eff_n;
396  long ipISO=ipHE_LIKE;
397 
398  DEBUG_ENTRY( "helike_energy()" );
399 
400  if( N_(ipLev) > iso.n_HighestResolved_max[ipISO][nelem] )
401  {
402  /* \todo 2 make this number a constant in physconst.h */
403  /* The first term is the ratio of the helium finite mass rydberg
404  * to the infinite mass rydberg. */
405  Ef = 0.999862926* RYD_INF * POW2((double)nelem/(double)N_(ipLev));
406  }
407  else if( nelem==ipHELIUM && ipLev<NHE1LEVELS )
408  {
409  /* for atomic helium use experimental energies */
410  Ef = EionWN[ipHELIUM] - He1Energies[ipLev];
411  }
412  else if( nelem > ipHELIUM && nelem <= ipZINC &&
413  ipLev < NIONLEVELS && IonEnergies[nelem-2][ipLev] >= 0. )
414  {
415  Ef = EionWN[nelem] - IonEnergies[nelem-2][ipLev];
416  }
417  else
418  {
419  Eff_n = N_(ipLev) - helike_quantum_defect( nelem, ipLev );
420  /* quantum defect can only be negative for singlet P */
421  ASSERT( ( L_(ipLev)==1 && S_(ipLev)==1 ) || ( N_(ipLev) - Eff_n >= 0. ) );
422 
423  /* energies (in wavenumbers) that correspond to quantum defect */
424  Ef = 0.999862926 * RYD_INF * POW2((double)nelem/Eff_n);
425  Ef = 0.999862926 * RYD_INF * (nelem/Eff_n) * (nelem/Eff_n);
426  }
427 
428  ASSERT(Ef > 0.);
429 
430  return Ef;
431 }
432 

Generated for cloudy by doxygen 1.8.4