00001
00002
00003 #include "cddefines.h"
00004 #include "physconst.h"
00005 #include "iso.h"
00006 #include "helike.h"
00007 #include "taulines.h"
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 static double EionWN[LIMELM] =
00022
00023 {-DBL_MAX,
00024 198310.6679 ,610003.839889137,1241136.72201499,2091948.45665631,3162116.52584231,
00025 4452446.95015668,5962133.81875305,7692790.05069734,9645221.44709864,11814589.7994457,
00026 14209766.0528639,16822685.5022862,19661412.9625169,22717883.6187518,26000162.0663204,
00027 29508248.5246975,33234078.1790787,37185715.7345311,41363161.0813172,45766414.4389118,
00028 50395475.4781030,55258409.0136949,60339085.8550283,65653635.1927626,71202056.8074231,
00029 76976286.4328920,82984388.3352872,89194104.5722390,95726403.3055320};
00030
00031
00032
00033
00034 static double EionRYD[LIMELM] =
00035
00036 {-DBL_MAX,
00037 1.807387521,5.558764,11.310070,19.063237,28.815326,40.573682,54.330961,70.101861,
00038 87.893725,107.662464,129.488916,153.299590,179.167978,207.020588,236.930910,
00039 268.898946,302.851204,338.861175,376.928858,417.054255,459.237363,503.551674,
00040 549.850208,598.279945,648.840883,701.459535,756.209388,812.796486,872.323172};
00041
00042
00043 #define NHE1LEVELS 111
00044
00045 static double He1Energies[NHE1LEVELS] =
00046 {0.0 , 159855.9734, 166277.4390, 169087.8298, 169086.8417, 169086.7652, 171134.8957,
00047 183236.7908, 184864.8281, 185564.6657, 186101.5615, 186104.9656, 186209.3638, 190298.6619,
00048 190940.6075, 191217.0826, 191444.4868, 191446.4547, 191451.8805, 191451.8964, 191492.7108,
00049 193346.9900, 193663.5106, 193800.7280, 193917.1538, 193918.2888, 193921.1207, 193921.1298,
00050 193921.6166, 193921.6209, 193942.4612, 194936.1184, 195114.8672, 195192.7542, 195260.0724,
00051 195260.7694, 195262.4251, 195262.4307, 195262.7236, 195262.7261, 195262.7930, 195262.7947,
00052 195274.9074, 195868.2357, 195978.8938, 196027.3216, 196069.6730, 196070.1273, 196071.1763,
00053 196071.1800, 196071.3686, 196071.3702, 196071.4141, 196071.4151, 196071.4283, 196071.4290,
00054 196079.0865, 196461.3605, 196534.5628, 196566.7159, 196595.0620, 196595.3730, 196596.0785,
00055 196596.0810, 196596.2092, 196596.2103, 196596.2404, 196596.2411, 196596.2503, 196596.2508,
00056 196596.2541, 196596.2544, 196601.3992, 196861.9861, 196912.9014, 196935.3339, 196955.2261,
00057 196955.4477, 196955.9445, 196955.9463, 196956.0373, 196956.0380, 196956.0595, 196956.0600,
00058 196956.0666, 196956.0670, 196956.0693, 196956.0696, 196956.0705, 196956.0707, 196959.6917,
00059 197145.2320, 197182.0643, 197198.3343, 197212.8252, 197212.9885, 197213.3513, 197213.3527,
00060 197213.4194, 197213.4200, 197213.4358, 197213.4362, 197213.4411, 197213.4414, 197213.4431,
00061 197213.4433, 197213.4440, 197213.4442, 197213.4445, 197213.4446, 197216.0885};
00062
00063
00064
00065 #define NIONLEVELS 31
00066
00067
00068
00069
00070
00071 static double IonEnergies[LIMELM-2][NIONLEVELS] =
00072 {
00073
00074 {0.00, 476034.98, 491374.60, 494266.57, 494261.17, 494263.44, 501808.59,
00075 554754.45, 558777.88, 559501.16, 561243.67, 561273.62, 561752.82,
00076 579981.33, 581596.77, 581886.34, 582613.64, 582630.95, 582642.97,
00077 582644.04, 582830.11, 591184.26, 591989.55, 592134.36, 592504.32,
00078 592514.43, 592520.11, 592521.11, -1.00 , -1.00 , 592634.91},
00079
00080 {0.00, 956502.00, 981178.00, 983366.00, 983355.00, 983370.00, 997454.00,
00081 1121184.00, 1127705.00, 1128300.00, 1131383.00, 1131462.00, 1132390.00,
00082 1175295.00, 1178005.00, 1178174.00, 1179451.00, 1179495.00, 1179515.00,
00083 1179514.00, 1179830.00, 1199650.00, -1.00 , 1201060.00, 1201702.00,
00084 1201800.00, 1201730.00, 1201742.00, -1.00 , -1.00 , 1201894.00},
00085
00086 {0.00, 1601545.00, 1635720.00, 1636938.00, 1636922.00, 1636975.00, 1657980.00,
00087 1882740.00, 1891790.00, 1892221.00, 1896710.00, 1896836.00, 1898063.00,
00088 1976420.00, -1.00 , 1980291.11, 1982132.67, 1982220.00, 1982262.67,
00089 1982240.00, 1982762.00, -1.00 , -1.00 , 2020730.00, 2021700.00,
00090 -1.00 , 2021665.71, 2021760.00, 2021770.00, 2021770.00, 2022044.00},
00091
00092 {0.00, 2411262.00, 2455024.00, 2455162.74, 2455150.23, 2455286.01, 2483371.00,
00093 2839562.00, 2851180.00, 2851418.00, 2857309.67, 2857529.00, 2859375.00,
00094 2983541.00, -1.00 , 2988359.00, 2990776.00, 2990923.00, 2990923.40,
00095 2990923.40, 2991710.00, 3048927.00, -1.00 , 3051332.00, 3052589.00,
00096 3052656.00, 3052653.30, 3052653.30, 3052659.40, 3052659.40, 3053044.00},
00097
00098 {0.00, 3385890.00, 3439274.00, 3438312.46, 3438321.13, 3438612.15, 3473790.00,
00099 3991860.00, -1.00 , 4006160.00, 4013460.00, 4013770.00, 4016390.00,
00100 4196800.00, 4202520.00, 4202620.00, 4205820.00, 4205830.00, 4205810.00,
00101 4205820.00, 4206810.00, 4290150.00, 4293020.00, 4293080.00, 4294570.00,
00102 4294670.00, 4294700.00, 4294700.00, -1.00 , -1.00 , 4296090.00},
00103
00104 {0.00, 4524640.00, 4588380.00, 4585620.76, 4585679.58, 4586231.19, 4629201.00,
00105 5338820.00, 5356420.00, 5355670.00, 5364422.67, 5365470.00, 5368550.00,
00106 5616340.00, 5623100.00, 5622600.00, 5626225.33, 5626670.00, 5626210.00,
00107 5626840.00, 5628100.00, 5742610.00, -1.00 , 5745440.00, 5747509.33,
00108 5748230.00, 5747200.00, 5747820.00, -1.00 , -1.00 , 5748450.00},
00109
00110 {0.00, 5830040.00, 5903100.00, 5900600.00, 5900750.00, 5901700.00, 5949900.00,
00111 6885090.00, 6903270.00, 6902560.00, 6914073.33, 6915900.00, 6916590.00,
00112 7244270.00, -1.00 , 7250390.00, 7255960.00, 7254240.00, 7256750.00,
00113 7257260.00, 7256370.00, -1.00 , -1.00 , 7410270.00, 7413940.00,
00114 7412290.00, 7414760.00, 7415300.00, 7414780.00, -1.00 , 7414000.00},
00115
00116 {0.00, 7299940.00, 7382680.00, 7378205.53, 7378506.43, 7380050.00, 7436560.00,
00117 8623000.00, 8644880.00, 8644744.44, 8657128.67, 8662400.00, 8660530.00,
00118 9075200.00, 9084060.00, 9084141.11, 9090355.33, -1.00 , 9089800.00,
00119 9094400.00, 9090630.00, 9282200.00, 9286650.00, 9286713.33, 9288500.00,
00120 -1.00 , 9289800.00, 9294400.00, -1.00 , -1.00 , 9290000.00},
00121
00122 {0.00, 8935337.00, 9027981.00, 9022354.10, 9022876.10, 9025284.70, 9088700.00,
00123 10558946.00, 10583431.00, 10583323.56, 10596783.40, 10597475.00, 10601080.00,
00124 11115065.00, 11124986.00, 11125102.78, 11130639.00, 11131017.00, 11131051.00,
00125 11131056.00, 11132393.00, 11369887.00, 11374868.00, 11374959.89, 11377767.00,
00126 11377984.00, 11377987.00, 11377991.00, -1.00 , -1.00 , 11378646.00},
00127
00128 {0.00, 10736136.00, 10838778.00, 10831985.83, 10832819.18, 10836391.13, 10906612.00,
00129 12691170.00, 12718304.00, 12718286.89, 12733392.33, 12734298.00, 12738006.00,
00130 13361991.00, 13372977.00, 13373168.22, 13379472.60, 13379830.00, 13379893.00,
00131 13379898.00, 13381265.00, 13669618.00, 13675137.00, 13675269.22, 13678467.13,
00132 13678680.00, -1.00 , -1.00 , -1.00 , -1.00 , 13679363.00},
00133
00134 {0.00, 12703061.00, 12815760.00, 12807847.00, 12809088.00, 12814213.00, 12891081.00,
00135 15020463.00, 15050257.00, 15050434.00, 15067287.07, 15068371.00, 15072141.00,
00136 15816791.00, 15828851.00, 15829158.67, 15836125.13, 15836581.00, -1.00 ,
00137 -1.00 , 15838068.00, 16182216.00, 16188281.00, 16188471.33, 16192010.13,
00138 16192244.00, -1.00 , -1.00 , -1.00 , -1.00 , 16192975.00},
00139
00140 {0.00, 14835945.00, 14958753.00, 14949756.42, 14951532.63, 14958690.57, 15042040.00,
00141 17546734.00, 17579166.00, 17579686.44, 17598406.93, 17599605.00, 17603422.00,
00142 18479389.00, 18492532.00, 18493007.56, 18500821.00, 18501245.00, -1.00 ,
00143 -1.00 , 18502736.00, 18907613.00, 18914246.00, 18914502.78, 18918476.30,
00144 18918694.00, -1.00 , -1.00 , -1.00 , -1.00 , 18919421.00},
00145
00146 {0.00, 17135768.00, 17268828.00, 17258746.00, 17261164.00, 17270908.00, 17360546.00,
00147 20271100.00, 20306284.00, 20307209.11, 20327865.87, 20329412.00, 20332952.00,
00148 21350958.00, 21365192.00, 21365892.89, 21374428.00, 21375044.00, 21375302.00,
00149 21375302.00, 21376454.00, 21846994.00, 21854144.00, 21854552.89, 21858894.80,
00150 21859210.00, 21859340.00, 21859340.00, -1.00 , -1.00 , 21859464.00},
00151
00152 {0.00, 19602076.00, 19745473.00, 19734297.61, 19737518.84, 19750576.04, 19846285.00,
00153 23193163.00, 23231087.00, 23232596.56, 23255347.53, 23257195.00, 23260416.00,
00154 24431101.00, 24446439.00, 24447429.78, 24456981.30, 24457576.00, -1.00 ,
00155 -1.00 , 24458842.00, 24999972.00, 25007605.00, 25008238.11, 25013102.40,
00156 25013407.00, -1.00 , -1.00 , -1.00 , -1.00 , 25014007.00},
00157
00158 {0.00, 22236180.00, 22390000.00, 22377820.00, 22381940.00, 22399100.00, 22500680.00,
00159 26314360.00, 26355050.00, 26357324.44, 26382328.67, 26384530.00, 26387270.00,
00160 27720900.00, 27738000.00, 27738966.67, 27749520.00, 27750400.00, 27757331.14,
00161 27757178.00, 27751600.00, 28367700.00, 28376500.00, 28376977.78, 28382286.67,
00162 28382800.00, -1.00 , -1.00 , -1.00 , -1.00 , 28383400.00},
00163
00164 {0.00, 25038230.00, 25202480.00, 25189388.10, 25194588.99, 25216810.57, 25323950.00,
00165 29634850.00, 29678210.00, 29681541.11, 29713920.00, 29715070.00, 29713740.00,
00166 31221700.00, 31239280.00, 31241087.78, -1.00 , -1.00 , -1.00 ,
00167 -1.00 , 31254280.00, 31951370.00, 31960150.00, 31961182.22, -1.00 ,
00168 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 31967860.00},
00169
00170 {0.00, 28004980.00, 28180480.00, 28165880.00, 28172670.00, 28200800.00, 28312910.00,
00171 33151930.00, 33198090.00, 33202622.22, -1.00 , -1.00 , 33237140.00,
00172 -1.00 , 34948420.00, -1.00 , -1.00 , -1.00 , -1.00 ,
00173 -1.00 , 34964920.00, 35747360.00, 35756712.00, 35758032.00, -1.00 ,
00174 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 35765192.00},
00175
00176 {0.00, 31142150.00, 31328450.00, 31312818.51, 31320486.08, 31356326.72, 31473810.00,
00177 36870940.00, 36919930.00, 36925900.00, -1.00 , -1.00 , 36962850.00,
00178 38850670.00, 38870530.00, 38873536.67, -1.00 , -1.00 , -1.00 ,
00179 -1.00 , 38888680.00, 39761380.00, 39771310.00, 39772968.89, -1.00 ,
00180 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 39780630.00},
00181
00182 {0.00, 34448120.00, 34645360.00, 34628770.00, 34638550.00, 34682810.00, 34805000.00,
00183 40790620.00, 40842480.00, 40850158.89, -1.00 , -1.00 , 40889690.00,
00184 42983370.00, 43004390.00, 43008165.56, -1.00 , -1.00 , -1.00 ,
00185 -1.00 , 43024380.00, 43992240.00, 44002740.00, 44004803.33, -1.00 ,
00186 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 44013010.00},
00187
00188 {0.00, 37923880.00, 38131640.00, 38114760.00, 38125260.00, 38180620.00, 38308340.00,
00189 44911910.00, 44966970.00, 44976472.22, 45016028.67, 45021140.00, 45018670.00,
00190 47328500.00, 47351600.00, 47355644.44, 47372326.67, 47374500.00, -1.00 ,
00191 -1.00 , 47373500.00, 48440800.00, 48452600.00, 48454581.11, -1.00 ,
00192 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 48463700.00},
00193
00194 {0.00, 41568880.00, 41787830.00, 41770130.00, 41782100.00, 41849950.00, 41982380.00,
00195 49234710.00, 49292760.00, 49304574.44, 49347922.67, 49353910.00, 49349740.00,
00196 51886600.00, 51910900.00, 51915955.56, 51934113.33, 51936800.00, -1.00 ,
00197 -1.00 , 51935100.00, 53107300.00, 53119700.00, 53122217.78, -1.00 ,
00198 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 53132000.00},
00199
00200 {0.00, 45384110.00, 45614410.00, 45595910.00, 45609360.00, 45691820.00, 45828830.00,
00201 53760100.00, 53821190.00, 53835660.00, 53883181.33, 53890160.00, 53884060.00,
00202 56658500.00, 56684100.00, 56690288.89, 56710306.67, 56713200.00, -1.00 ,
00203 -1.00 , 56710700.00, 57992700.00, 58005800.00, 58008904.44, -1.00 ,
00204 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 58019400.00},
00205
00206 {0.00, 49370240.00, 49612040.00, 49592800.00, 49607700.00, 49707130.00, 49848620.00,
00207 58488800.00, 58553000.00, 58570522.22, 58622620.00, 58630700.00, 58622500.00,
00208 61644700.00, 61671800.00, 61679233.33, 61701013.33, 61704700.00, -1.00 ,
00209 -1.00 , 61701200.00, 63097900.00, 63111600.00, 63115327.78, -1.00 ,
00210 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 63126600.00},
00211
00212 {0.00, 53527760.00, 53781230.00, 53761280.00, 53777570.00, 53896550.00, 54042490.00,
00213 63421700.00, 63489000.00, 63509966.67, 63567120.00, 63576500.00, 63565800.00,
00214 66846900.00, 66875000.00, 66884011.11, 66908120.00, 66912100.00, -1.00 ,
00215 -1.00 , 66907600.00, 68423800.00, 68438100.00, 68442730.00, -1.00 ,
00216 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 68454800.00},
00217
00218 {0.00, 57857380.00, 58122700.00, 58102090.00, 58119680.00, 58261180.00, 58411430.00,
00219 68560000.00, 68630600.00, 68655444.44, 68718160.00, 68728900.00, 68715500.00,
00220 72266000.00, 72295500.00, 72306144.44, 72332586.67, 72337100.00, -1.00 ,
00221 -1.00 , 72331500.00, 73972000.00, 73987000.00, 73992318.89, -1.00 ,
00222 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 74005400.00},
00223
00224 {0.00, 62358960.00, 62637200.00, 62615022.80, 62633778.00, 62800884.44, 62952670.00,
00225 73903340.00, 73976370.00, 74005924.44, -1.00 , -1.00 , 74070580.00,
00226 77900890.00, 77930480.00, 77943808.89, -1.00 , -1.00 , -1.00 ,
00227 -1.00 , 77970500.00, 79740940.00, 79755710.00, 79762730.00, -1.00 ,
00228 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 79776290.00},
00229
00230 {0.00, 67035380.00, 67324970.00, 67303150.00, 67322950.00, 67519170.00, 67678080.00,
00231 79453200.00, 79530300.00, 79564500.00, 79640046.67, 79654200.00, 79634300.00,
00232 83754400.00, 83786500.00, 83801155.56, 83832993.33, 83838900.00, -1.00 ,
00233 -1.00 , 83830600.00, 85734300.00, 85750700.00, 85759175.00, -1.00 ,
00234 -1.00 , -1.00 , -1.00 , -1.00 , -1.00 , 85773200.00},
00235
00236 {0.00, 71886300.00, 72188400.00, 72166200.00, 72186600.00, 72415600.00, 72579000.00,
00237 85212700.00, 85293200.00, 85332955.56, 85415826.67, 85431900.00, 85408300.00,
00238 89828600.00, 89862000.00, 89879022.22, 89913666.67, 89920800.00, -1.00 ,
00239 -1.00 , 89910900.00, 91953400.00, 91970500.00, 91979222.22, 91995073.33,
00240 92000500.00, -1.00 , -1.00 , -1.00 , -1.00 , 91994500.00}};
00241
00242
00243 double helike_quantum_defect( long int nelem, long int ipLo )
00244 {
00245
00246 double qd,a,b,c;
00247
00248
00249
00250
00251
00252 double HeDefectAsymptotes[2][10] = {
00253 {1.40005E-01,-1.20673E-02,2.08056E-03,4.21484E-04,1.14868E-04,
00254 4.08648E-05,1.73548E-05,8.33891E-06,4.39680E-06,2.42075E-06},
00255 {2.97063E-01,6.81567E-02,2.82381E-03,4.27703E-04,1.17319E-04,
00256 4.25254E-05,1.85549E-05,9.24641E-06,5.30882E-06,3.02877E-06}
00257 };
00258
00259
00260
00261
00262
00263
00264 double param[3][4][3]=
00265 {
00266 {{0.6451941,0.3119437,-1.2722842},
00267 {0.7664874,0.3455675,-1.3976462},
00268 {0.8247101,0.3603131,-1.4520500},
00269 {0.8878402,0.3714450,-1.4995732}},
00270
00271 {{1.4203514,0.5311096,-2.6728087},
00272 {1.5733513,0.5997339,-2.9253834},
00273 {1.4531025,0.5924751,-2.8662756},
00274 {1.6038999,0.6342552,-3.0298071}},
00275
00276 {{-2.2323488,0.0890840,-0.5166053},
00277 {-2.0463691,0.1222081,-0.6672983},
00278 {-1.9904104,0.1328918,-0.7150879},
00279 {-1.9500974,0.1452111,-0.7649031}}
00280 };
00281
00282
00283
00284
00285
00286 double P1[4][2]=
00287 {
00288 {-56.65245,-3.661923},
00289 {-52.03411,-4.941075},
00290 {-50.43744,-5.525750},
00291 {-49.45137,-5.908615}
00292 };
00293
00294 long int n = iso_sp[ipHE_LIKE][nelem].st[ipLo].n();
00295 long int lqn = iso_sp[ipHE_LIKE][nelem].st[ipLo].l();
00296 long int S = iso_sp[ipHE_LIKE][nelem].st[ipLo].S();
00297 long int s;
00298
00299 if( S==1 )
00300 s = 0;
00301 else if( S==3 )
00302 s = 1;
00303 else if( S < 0 )
00304 {
00305 ASSERT( n > iso_sp[ipHE_LIKE][nelem].n_HighestResolved_max );
00306 s = S;
00307 }
00308 else
00309 TotalInsanity();
00310
00311 DEBUG_ENTRY( "helike_quantum_defect()" );
00312
00313 ASSERT(n >= 1L);
00314 ASSERT(lqn >= 0 || n > iso_sp[ipHE_LIKE][nelem].n_HighestResolved_max);
00315 ASSERT(n > lqn);
00316
00317 ASSERT((nelem >= ipHELIUM) && (nelem < LIMELM));
00318
00319 if( n > iso_sp[ipHE_LIKE][nelem].n_HighestResolved_max )
00320 {
00321
00322 qd = 0.;
00323 }
00324 else if( nelem == ipHELIUM )
00325 {
00326 if( ipLo<NHE1LEVELS && n<=iso_sp[ipHE_LIKE][nelem].n_HighestResolved_max )
00327 {
00328
00329 qd = n-sqrt(0.999862926*RYD_INF/(EionWN[ipHELIUM] - He1Energies[ipLo]));
00330 }
00331 else if( lqn<=9 )
00332 {
00333 ASSERT( s >= 0 && lqn >= 0 );
00334
00335 qd = HeDefectAsymptotes[s][lqn];
00336 }
00337 else if( s == 0 )
00338 {
00339
00340 qd = 0.0497*pow((double)lqn, -4.4303);
00341 }
00342 else
00343 {
00344
00345 qd = 0.0656*pow((double)lqn, -4.5606);
00346 }
00347 }
00348 else if( ipLo == ipHe1s1S )
00349 {
00350
00351
00352
00353 ASSERT(nelem>ipHYDROGEN && nelem<LIMELM );
00354 qd = 1.0 - nelem * sqrt(1/EionRYD[nelem]);
00355 }
00356 else
00357 {
00358
00359
00360 if( n > 5L )
00361 {
00362 n = 5L;
00363 }
00364
00365 if( lqn==1L && s==0L )
00366 {
00367 qd = 1./(P1[n-2][0] + P1[n-2][1] * (nelem+1) * log((double)nelem+1.) );
00368 }
00369
00370 else if( lqn < 2L )
00371 {
00372 a = param[2*(lqn+1)-s-1][n-2][0];
00373 b = param[2*(lqn+1)-s-1][n-2][1];
00374 c = param[2*(lqn+1)-s-1][n-2][2];
00375 qd = exp((a+c*(nelem+1))/(1.0+b*(nelem+1)));
00376 }
00377
00378
00379
00380
00381
00382
00383
00384 else
00385 {
00386 ASSERT( lqn >= 2L );
00387 qd = ( ( 0.0612/(double)nelem ) / pow((double)lqn, 4.44) );
00388 }
00389 }
00390 return qd;
00391 }
00392
00393
00394 double helike_energy(long int nelem, long int ipLev )
00395 {
00396 double Ef, Eff_n;
00397 long ipISO=ipHE_LIKE;
00398
00399 DEBUG_ENTRY( "helike_energy()" );
00400
00401 if( N_(ipLev) > iso_sp[ipISO][nelem].n_HighestResolved_max )
00402 {
00403
00404
00405
00406 Ef = 0.999862926* RYD_INF * POW2((double)nelem/(double)N_(ipLev));
00407 }
00408 else if( nelem==ipHELIUM && ipLev<NHE1LEVELS )
00409 {
00410
00411 Ef = EionWN[ipHELIUM] - He1Energies[ipLev];
00412 }
00413 else if( nelem > ipHELIUM && nelem <= ipZINC &&
00414 ipLev < NIONLEVELS && IonEnergies[nelem-2][ipLev] >= 0. )
00415 {
00416 Ef = EionWN[nelem] - IonEnergies[nelem-2][ipLev];
00417 }
00418 else
00419 {
00420 Eff_n = N_(ipLev) - helike_quantum_defect( nelem, ipLev );
00421
00422 ASSERT( ( L_(ipLev)==1 && S_(ipLev)==1 ) || ( N_(ipLev) - Eff_n >= 0. ) );
00423
00424
00425 Ef = 0.999862926 * RYD_INF * POW2((double)nelem/Eff_n);
00426 Ef = 0.999862926 * RYD_INF * (nelem/Eff_n) * (nelem/Eff_n);
00427 }
00428
00429 ASSERT(Ef > 0.);
00430
00431 return Ef;
00432 }
00433