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