cloudy trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 /*CoolSulf compute sulphur cooling */ 00004 /*S2cs compute [CoolHeavy] collision strengths 00005 * compute collision strengths for [SII] transitions 00006 * w/in S II ground term. From 00007 *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, At. Data Nucl. Data Tables, 63, 57 */ 00008 #include "cddefines.h" 00009 #include "coolheavy.h" 00010 #include "taulines.h" 00011 #include "dense.h" 00012 #include "phycon.h" 00013 #include "embesq.h" 00014 #include "ligbar.h" 00015 #include "thermal.h" 00016 #include "lines_service.h" 00017 #include "atoms.h" 00018 #include "cooling.h" 00019 00020 /*S2cs compute [CoolHeavy] collision strengths 00021 * compute collision strengths for [SII] transitions 00022 * w/in S II ground term. From 00023 *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, At. Data Nucl. Data Tables, 63, 57 */ 00024 STATIC void S2cs(double telog, 00025 double *cs12, 00026 double *cs13, 00027 double *cs14, 00028 double *cs15, 00029 double *cs23, 00030 double *cs24, 00031 double *cs25, 00032 double *cs34, 00033 double *cs35, 00034 double *cs45); 00035 00036 void CoolSulf(void) 00037 { 00038 double cs, 00039 cs2s2p, 00040 cs2s3p, 00041 cs01, 00042 cs02, 00043 cs12, 00044 cs13, 00045 cs14, 00046 cs15, 00047 cs23, 00048 cs24, 00049 cs25, 00050 cs34, 00051 cs35, 00052 cs45, 00053 p[5], 00054 tused, 00055 pump_rate; 00056 realnum 00057 pop2, 00058 rate; 00059 static double gS2[5]={4.,4.,6.,2.,4.}; 00060 static double exS2[4]={14851.9,31.5,9640.8,48.6}; 00061 00062 static bool lgFirst=true; 00063 long int i; 00064 static long int *ipS4Pump=NULL, 00065 nS4Pump=0; 00066 00067 DEBUG_ENTRY( "CoolSulf()" ); 00068 00069 /*>>refer S1 cs Hollenbach, D. & McKee, C.F. 1989, ApJ, 342, 306 */ 00070 /* >>chng 03 nov 15, add these lines */ 00071 /* rates are said to be ok over range 30 - 3000K */ 00072 tused = MAX2( 30. , phycon.te ); 00073 tused = MIN2( 3000. , phycon.te ); 00074 tused /= 100.; 00075 00076 /* the 25.2 micron line */ 00077 rate = (realnum)(3.3e-8 * dense.eden + 00078 /* >>chng 05 jul 05, eden to cdsqte */ 00079 /*7.5e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/ 00080 7.5e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] ); 00081 LineConvRate2CS( &TauLines[ipS1_25m] , rate ); 00082 00083 /* the 56.6 micron line */ 00084 rate = (realnum)(1.2e-8 * dense.eden + 00085 /* >>chng 05 jul 05, eden to cdsqte */ 00086 /*4.2e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/ 00087 4.2e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] ); 00088 LineConvRate2CS( &TauLines[ipS1_56m] , rate ); 00089 00090 rate = (realnum)(3.3e-8 * dense.eden + 00091 /* >>chng 05 jul 05, eden to cdsqte */ 00092 /*7.1e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/ 00093 7.1e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] ); 00094 TauDummy.Hi->g = TauLines[ipS1_56m].Hi->g; 00095 LineConvRate2CS( &TauDummy , rate ); 00096 /* this says that line is a dummy, not real one */ 00097 TauDummy.Hi->g = 0.; 00098 00099 atom_level3(&TauLines[ipS1_25m],&TauLines[ipS1_56m],&TauDummy); 00100 00101 /* Sulphur II [S II] 6731 + 6716, A 00102 * >>refer s2 as trans Mendoza, C., & Zeippen, C.J., 1982, MNRAS, 198, 127 00103 * collision strength from 00104 *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, 00105 *>>refercon At. Data Nucl. Data Tables, 63, 57 00106 * this agrees very well with 00107 * >>refer s2 cs Tayal, S., 1997, ApJS, 111, 459 00108 * */ 00109 S2cs(phycon.alogte,&cs12,&cs13,&cs14,&cs15,&cs23,&cs24,&cs25,&cs34, 00110 &cs35,&cs45); 00111 /* cs13 = MIN(4.95 , 3.2640828 + 1.9369099*sexp(te/30337.498) ) 00112 * cs12 = cs13 / 1.5 00113 * cs15 = MIN( 1.59 , 0.10*te10*te10*te10/te01/te003/te001/te001) 00114 * cs14 = cs15 * 0.5 00115 * FIVEL( G(1-5) , ex(wn,1-5), cs12,cs13,14,15,23,24,25,34,35,45, 00116 * A21,31,41,51,32,42,52,43,53,54, pop(1-5), abund) */ 00117 atom_pop5(gS2,exS2,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,cs45, 00118 8.82e-4,2.60e-4,9.06e-2,0.225,3.35e-7,0.163,0.133,0.078,0.179, 00119 1.03e-6,p,dense.xIonDense[ipSULPHUR][1]); 00120 CoolHeavy.S6733 = (realnum)(p[1]*8.82e-4*2.96e-12); 00121 CoolHeavy.S6718 = (realnum)(p[2]*2.60e-4*2.962e-12); 00122 CoolHeavy.S4070 = (realnum)(p[4]*0.225*4.89e-12); 00123 CoolHeavy.S4078 = (realnum)(p[3]*0.0906*4.88e-12); 00124 CoolHeavy.S10323 = (realnum)(p[4]*0.179*1.93e-12); 00125 CoolHeavy.S10289 = (realnum)(p[4]*0.133*1.93e-12); 00126 CoolHeavy.S10373 = (realnum)(p[3]*0.078*1.92e-12); 00127 CoolHeavy.S10339 = (realnum)(p[3]*0.163*1.92e-12); 00128 CoolHeavy.c6731 = CoolHeavy.S6733 + CoolHeavy.S6718; 00129 CoolHeavy.c10330 = CoolHeavy.S10323 + CoolHeavy.S10289 + CoolHeavy.S10373 + CoolHeavy.S10339; 00130 thermal.dCooldT += CoolHeavy.c6731*(2.14e4*thermal.tsq1 - thermal.halfte); 00131 thermal.dCooldT += CoolHeavy.c10330*2.58*(3.53e4*thermal.tsq1 - thermal.halfte); 00132 CoolAdd("S 2",6731,CoolHeavy.c6731); 00133 CoolAdd("S 2",10330,CoolHeavy.c10330); 00134 CoolAdd("S 2",4070,CoolHeavy.c10330*1.58); 00135 00136 /* SII 1256 */ 00137 cs = MIN2(8.46,-4.9416304+47.01064/phycon.alogte); 00138 cs = MAX2(4.466,cs); 00139 PutCS(cs,&TauLines[ipT1256]); 00140 atom_level2(&TauLines[ipT1256]); 00141 00142 /* S III 18.7M, 33.6M, A 00143 * >>refer s3 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103, 00144 * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143 00145 * 00146 * >>refer s3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 00147 * >>chng 99 dec 22, cs changed from above to 00148 * >>refer s3 cs Tayal, S.S., and Gupta, G.P. 1999 ApJ 526, 544 */ 00149 /* the 1-2 transition */ 00150 if( phycon.te < 5000. ) 00151 { 00152 cs12 = 4.44; 00153 cs13 = 1.41; 00154 cs14 = 0.802; 00155 cs15 = 0.129; 00156 cs23 = 8.72; 00157 cs24 = 2.41; 00158 cs25 = 0.388; 00159 cs34 = 4.01; 00160 cs35 = 0.646; 00161 cs45 = 1.31; 00162 } 00163 else if( phycon.te > 1e5 ) 00164 { 00165 cs12 = 1.9; 00166 cs13 = 1.24; 00167 cs14 = 0.664; 00168 cs15 = 0.136; 00169 cs23 = 5.13; 00170 cs24 = 1.99; 00171 cs25 = 0.407; 00172 cs34 = 3.32; 00173 cs35 = 0.679; 00174 cs45 = 1.84; 00175 } 00176 else 00177 { 00178 cs12 = 52.47/(phycon.te30/phycon.te02); 00179 cs13 = 1.894/(phycon.te02*phycon.te02); 00180 cs14 = 1.34/(phycon.te05*phycon.te01); 00181 cs15 = 0.109*phycon.te02; 00182 cs23 = 41.3/(phycon.te20/phycon.te02); 00183 cs24 = 4.03/(phycon.te05*phycon.te01); 00184 cs25 = 0.327*phycon.te02; 00185 cs34 = 6.708/(phycon.te05*phycon.te01); 00186 cs35 = 0.545*phycon.te02; 00187 cs45 = 0.501*phycon.te10*phycon.te01; 00188 } 00189 /*cs = MIN2(2.331,7.935*phycon.te/(phycon.te10*phycon.te03*phycon.te003));*/ 00190 PutCS(cs12,&TauLines[ipTS34]); 00191 00192 /* the 2-3 transition 00193 if( phycon.te <= 39811. ) 00194 { 00195 cs = MIN2(5.78,3.114*phycon.te03*phycon.te03); 00196 } 00197 else 00198 { 00199 cs = 24.93/(phycon.te10*phycon.te03*phycon.te01/phycon.te001/ 00200 phycon.te001); 00201 }*/ 00202 PutCS(cs23,&TauLines[ipTS19]); 00203 /* the 1-3 transition 00204 cs = MIN2(1.413,0.221*phycon.te*phycon.te20/phycon.te03*phycon.te005);*/ 00205 PutCS(cs13,&TauDummy); 00206 atom_level3(&TauLines[ipTS34],&TauLines[ipTS19],&TauDummy); 00207 00208 /* S III O III-like lines, A from 00209 * >>refer s3 as Mendoza, C., & Zeippen, C.J. 1982, MNRAS, 199, 1025 00210 * CS from 00211 * >>refer s3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 00212 * >>chng 00 Sep 11, cs changed from above to 00213 * >>refer s3 cs Tayal, S.S., and Gupta, G.P. 1999 ApJ 526, 544 */ 00214 /*cs = MIN2(2.05,0.0821*phycon.te30);*/ 00215 /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */ 00216 /*CoolHeavy.c6312 = atom_pop3(9.,5.,1.,7.98,1.14,cs,7.97e-2,0.807,2.22,*/ 00217 CoolHeavy.c6312 = atom_pop3(9.,5.,1.,cs14+cs24+cs34,cs15+cs25+cs35,cs45,7.97e-2,0.807,2.22, 00218 1.55e4,2.28e4,&pop2,dense.xIonDense[ipSULPHUR][2],0.,0.,0.)*2.22*3.15e-12; 00219 /* folowing is 9532 + 9069 together (OIII-like) */ 00220 CoolHeavy.c9532 = pop2*7.93e-2*2.11e-12; 00221 CoolAdd("S 3",6312,CoolHeavy.c6312); 00222 CoolAdd("S 3",9532,CoolHeavy.c9532); 00223 CoolAdd("S 3",3722,CoolHeavy.c6312*0.59); 00224 00225 /* S III 1194, data from 00226 * >>refer s3 cs Ho, Y.K., & Henry,R.J.W. 1984, ApJ, 282, 816 00227 * >>chng 97 may 17, to, about 2x larger than above 00228 * >>refer s3 cs Tayal, S.S. 1997, ApJ 481, 550 */ 00229 if( phycon.te <= 3e4 ) 00230 { 00231 cs = 12.04/(phycon.te02*phycon.te02); 00232 } 00233 else if( phycon.te > 3e4 && phycon.te <= 4e4 ) 00234 { 00235 cs = 7.97; 00236 } 00237 else 00238 { 00239 cs = 55.42/(phycon.te20/phycon.te02*phycon.te003); 00240 } 00241 PutCS(cs,&TauLines[ipT1194]); 00242 atom_level2(&TauLines[ipT1194]); 00243 00244 /* S III] 1713.12, 1728.94, cs from 00245 * >>refer s3 cs Hayes, M.A., 1986, J Phys B 19, 1853. 00246 * cs = MIN( 4.0 , 7.794 / (te10/te02/te001/te001) ) 00247 * >>chng 97 may 17, about 20% smaller than before 00248 * >>refer s3 cs Tayal, S.S. 1997, ApJ 481, 550 */ 00249 if( phycon.te <= 3e4 ) 00250 { 00251 cs = 1.786*phycon.te05*phycon.te01*phycon.te001; 00252 } 00253 else 00254 { 00255 cs = 9.392/phycon.te10; 00256 } 00257 PutCS(cs,&TauLines[ipTS1720]); 00258 atom_level2(&TauLines[ipTS1720]); 00259 00260 /* S IV 1062 */ 00261 /*>>refer S4 As Hibbert, A., Brage, T., Fleming, J. 2002, MNRAS 333, 885, 00262 * typo noted in Chianti data file */ 00263 /*>>refer S4 cs Tayal S.S., 2000, ApJ, 530, 1091 */ 00264 00265 /* S IV 10.5MI, 00266 * >>refer s4 as Johnson, C.T., Kingston, A.E., Dufton, P.L. 1986, 220, 155 00267 * >>referold s4 cs Johnson, C.T., Kingston, A.E., Dufton, P.L. 1986, MNRAS, 220, 155 00268 * >>chng 97 feb 14, error in cs below t = 10,000K 00269 * >>chng 96 dec 19, to CS from 00270 * >>referold s4 cs Saraph, H.E., Storey, P.J., & Tully, J.A. 1995, 5th International 00271 * >>referoldcon Colloquium on Atomic Spectra and Oscillator Strengths, ed. by 00272 * >>referoldcon W.-U L. Tchang-Brillet, J.-F. Wyart, C.J. Zeippen, 00273 * >>referoldcon (Meudon: Publications de l'Observaroire de Paris), p.110 00274 * above said to be A&A in press */ 00275 /* >>refer s4 cs Tayal, S.S., 2000, ApJ, 530, 1091 00276 */ 00277 if( phycon.te < 1e4 ) 00278 { 00279 cs = 3.71*phycon.te10/phycon.te01; 00280 } 00281 else 00282 { 00283 cs = MIN2(8.5,19.472/(phycon.te10/phycon.te01)); 00284 } 00285 PutCS(cs,&TauLines[ipTS11]); 00286 /*atom_level2(&TauLines[ipTS11]);*/ 00287 00288 /* one time initialization if first call, and level 2 lines are on */ 00289 if( lgFirst && nWindLine ) 00290 { 00291 lgFirst = false; 00292 nS4Pump = 0; 00293 for( i=0; i<nWindLine; ++i ) 00294 { 00295 /* don't test on nelem==ipIRON since lines on physics, not C, scale */ 00296 if( TauLine2[i].Hi->nelem ==16 && TauLine2[i].Hi->IonStg==4 ) 00297 { 00298 ++nS4Pump; 00299 } 00300 } 00301 if( nS4Pump<0 ) 00302 TotalInsanity(); 00303 else if( nS4Pump > 0 ) 00304 /* create the space - can't malloc 0 bytes */ 00305 ipS4Pump = (long *)MALLOC((unsigned)(nS4Pump)*sizeof(long) ); 00306 nS4Pump = 0; 00307 for( i=0; i<nWindLine; ++i ) 00308 { 00309 /* don't test on nelem==ipIRON since lines on physics, not C, scale */ 00310 if( TauLine2[i].Hi->nelem ==16 && TauLine2[i].Hi->IonStg==4 ) 00311 { 00312 # if 0 00313 DumpLine( &TauLine2[i] ); 00314 # endif 00315 ipS4Pump[nS4Pump] = i; 00316 ++nS4Pump; 00317 } 00318 } 00319 } 00320 else 00321 /* level 2 lines are not enabled */ 00322 nS4Pump = 0; 00323 00324 /* now sum pump rates */ 00325 pump_rate = 0.; 00326 for( i=0; i<nS4Pump; ++i ) 00327 { 00328 pump_rate += TauLine2[ipS4Pump[i]].Emis->pump; 00329 # if 0 00330 fprintf(ioQQQ,"DEBUG C %li %.3e %.3e\n", 00331 i, 00332 TauLine2[ipS4Pump[i]].WLAng , TauLine2[ipS4Pump[i]].pump ); 00333 # endif 00334 } 00335 00336 /* S IV 1404.8, 1398.05, 1423.8, 1416.9, 1406.0 */ 00337 /*AtomSeqBoron compute cooling from 5-level boron sequence model atom */ 00338 /* >>refer s4 cs Tayal, S.S., 2000, ApJ 530, 1091*/ 00339 AtomSeqBoron(&TauLines[ipTS11], 00340 &TauLines[ipS4_1405], 00341 &TauLines[ipS4_1398], 00342 &TauLines[ipS4_1424], 00343 &TauLines[ipS4_1417], 00344 &TauLines[ipS4_1407], 00345 1.168 , 3.366 , 2.924 , 7.233 , 00346 pump_rate , "S 4"); 00347 00348 /* S V Be-seq line, A= 00349 * >>refer s5 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103, 00350 * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143 00351 * all cs 00352 * >>refer s5 as Dufton, P.L., Hibbert, A., Keenan, F.P, Kingston, A.E., & 00353 * >>refercon Doschek, G.A. 1986, ApJ, 300, 448 00354 * and 00355 * >>refer s5 cs Dufton, P.L., & Kingston, A.E. 1984, J.Phys. B, 17, 3321 */ 00356 /* >>chng 01 sep 09, AtomSeqBeryllium will reset this to 1/3 so critical density correct */ 00357 cs = MIN2(1.58,35.372/(phycon.te10*phycon.te10*phycon.te10)); 00358 PutCS(cs,&TauLines[ipT1198]); 00359 /* cs01 = MIN(1.98, 29.625/(T**0.25)) */ 00360 cs01 = MIN2(1.98,29.625/(phycon.te20*phycon.te05)); 00361 /* cs02 = MIN(2.26, 13.477/(T**0.165)) */ 00362 cs02 = MIN2(2.26,13.477/(phycon.te10*phycon.te03*phycon.te03* 00363 phycon.te005)); 00364 /* cs12 = MIN(7.59, 63.994/(T**0.197)) */ 00365 cs12 = MIN2(7.59,63.994/(phycon.te20/phycon.te003)); 00366 /* AtomSeqBeryllium(cs23,cs24,cs34,tarray,a41) 00367 * call AtomSeqBeryllium( 1.98 , 2.26 , 7.59, t1198 ,.066) */ 00368 AtomSeqBeryllium(cs01,cs02,cs12,&TauLines[ipT1198],.066); 00369 embesq.em1198 = (realnum)(atoms.PopLevels[3]*0.066*1.66e-11); 00370 00371 /* S V 786 00372 * cs from 00373 * >>refer s5 cs Dufton, P.L., & Kingston, A.E. 1984, J.Phys. B, 17, 3321 */ 00377 PutCS(8.3,&TauLines[ipT786]); 00378 atom_level2(&TauLines[ipT786]); 00379 00380 /* S VI, Li sequence, A from 00381 * >>refer s6 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103, 00382 * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143 00383 * CS from 00384 * >>refer s6 cs Dufton, P.L., & Kingston, A.E. 1987, J.Phys. B, 20, 3899 */ 00385 cs = 11.9; 00386 PutCS(cs*0.667,&TauLines[ipT933]); 00387 PutCS(cs*0.333,&TauLines[ipT944]); 00388 PutCS(1.0,&TauDummy); 00389 00390 atom_level3(&TauLines[ipT944],&TauDummy,&TauLines[ipT933]); 00391 00392 /* S VIII 9913 00393 * >>referold s8 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */ 00394 /*cs = MIN2(0.291,0.0289*phycon.te20/phycon.te01* phycon.te001); 00395 cs = MAX2(0.192,cs);*/ 00396 /* >>refer s8 cs Berrington,K.A.,Saraph, H.E. & Tully, J.A. 1998, A&AS, 129,161 */ 00397 /*>>chng 06 jul 18 Changes made-Humeshkar Nemala*/ 00398 if(phycon.te < 6.4E5) 00399 { 00400 cs = (realnum)(0.0943*(phycon.te10/(phycon.te01*phycon.te001))*phycon.te0004); 00401 } 00402 else 00403 { 00404 cs = (realnum) (8.1555/(phycon.te20*phycon.te04*phycon.te004*phycon.te0002)); 00405 } 00406 00407 PutCS(cs,&TauLines[ipfsS810]); 00408 00409 atom_level2(&TauLines[ipfsS810]); 00410 00411 /* S IX 1715, 1987, 00412 * >>refer s9 all Kafatos, M., & Lynch, J.P. 1980, ApJS, 42, 611 */ 00413 CoolHeavy.c1715 = atom_pop2(0.4,9.,5.,80.,8.39e4,dense.xIonDense[ipSULPHUR][8])* 00414 1.16e-11; 00415 CoolAdd("S 9",1715,CoolHeavy.c1715); 00416 00417 /* S IX 1.25, 3.78 microns 00418 * cs 00419 * >>refer s9 cs Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1 */ 00420 cs = MIN2(3.10,277.2/(phycon.sqrte/phycon.te003)); 00421 PutCS(cs,&TauLines[ipfsS912]); 00422 00423 cs = MIN2(.50,7.940/(phycon.te10*phycon.te10*phycon.te10)); 00424 PutCS(cs,&TauLines[ipfsS938]); 00425 00426 cs = MIN2(1.1,195.72/(phycon.sqrte*phycon.te03*phycon.te03* 00427 phycon.te01*phycon.te003*phycon.te001)); 00428 PutCS(cs,&TauDummy); 00429 00430 atom_level3(&TauLines[ipfsS912],&TauLines[ipfsS938],&TauDummy); 00431 00432 /* S X 1213, 1197, 00433 * >>refer si10 cs Bell, K.L., & Ramsbottom, C.A., 2000, ADNDT, 76, 176-190 */ 00434 CoolHeavy.c1213 = atom_pop2(0.131,4.,6.,6.,1.19e5,dense.xIonDense[ipSULPHUR][10-1])* 00435 1.64e-11; 00436 CoolAdd("S 10",1213,CoolHeavy.c1213); 00437 00438 /* S XI 1.91, 1.40 microns, cs 00439 * >>refer si11 cs Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273 */ 00440 cs = MIN2(0.22,0.0151*phycon.te20*phycon.te03*phycon.te001* 00441 phycon.te001); 00442 PutCS(cs,&TauLines[ipfsS1119]); 00443 cs = MIN2(0.6,0.0168*phycon.te10*phycon.te10*phycon.te10* 00444 phycon.te01); 00445 PutCS(cs,&TauLines[ipfsS1114]); 00446 cs = MIN2(0.15,1.5e-3*phycon.te30*phycon.te10*phycon.te005); 00447 PutCS(cs,&TauDummy); 00448 atom_level3(&TauLines[ipfsS1119],&TauLines[ipfsS1114],&TauDummy); 00449 00450 /* S XI 1615, 1826, 00451 * >>refer si11 cs Kafatos, M., & Lynch, J.P. 1980, ApJS, 42, 611 */ 00452 CoolHeavy.c1826 = atom_pop2(0.3,9.,5.,100.,8.92e4,dense.xIonDense[ipSULPHUR][11-1])* 00453 1.23e-11; 00454 CoolAdd("S 11",1615,CoolHeavy.c1826); 00455 00456 /* S XII 7611.2, cs from 00457 * >>refer s12 cs Oliva, E., Pasquali, A., & Reconditi, M. 1996, A&A, 305, 210 00458 * >>refer s12 as Froese Fischer, C. 1983, J.Phys. B, 16, 157 00459 * >>refer s12 as Saha, H.P., & Trefftz, E. 1983, SoPh, 87, 233 */ 00460 PutCS(0.135,&TauLines[ipfsS1207]); 00461 atom_level2(&TauLines[ipfsS1207]); 00462 00463 /* S XII 520, actually group of four intercombination lines 00464 * all atomic data from 00465 * >>refer s12 all Saha, H.P., & Trefftz, E. 1983, SoPh, 87, 233 00466 CoolHeavy.c520 = 0.03*1.65e-16*expion(2.8e5,dense.xIonDense[ipSULPHUR][12-1]); 00467 CoolAdd("S 12",520,CoolHeavy.c520); */ 00468 /* >>chng 03 sep 27, move to simple two level atom */ 00469 PutCS(0.03,&TauLines[ipS12_520]); 00470 atom_level2(&TauLines[ipS12_520]); 00471 00472 /* S XIII 488.4, 1909-like */ 00473 CoolHeavy.c488 = atom_pop2(0.11,1.,9.,3.3e5,2.948e5,dense.xIonDense[ipSULPHUR][13-1])* 00474 4.07e-11; 00475 CoolAdd("S 13",488,CoolHeavy.c488); 00476 00477 /* li seq 2s2p and 2s3p, S XIV 418, 446 00478 * >>refer s14 cs Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */ 00479 ligbar(16,&TauLines[ipTSu418],&TauLines[ipTSu30],&cs2s2p,&cs2s3p); 00480 PutCS(cs2s2p,&TauLines[ipTSu418]); 00481 PutCS(cs2s2p*0.5,&TauLines[ipTSu446]); 00482 PutCS(1.0,&TauDummy); 00483 atom_level3(&TauLines[ipTSu446],&TauDummy,&TauLines[ipTSu418]); 00484 00485 PutCS(cs2s3p,&TauLines[ipTSu30]); 00486 atom_level2(&TauLines[ipTSu30]); 00487 return; 00488 } 00489 00490 /*S2cs compute [CoolHeavy] collision strengths 00491 * compute collision strengths for [SII] transitions 00492 * w/in S II ground term. From 00493 *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, ADNDT, 63, 57 */ 00494 STATIC void S2cs(double telog, 00495 double *cs12, 00496 double *cs13, 00497 double *cs14, 00498 double *cs15, 00499 double *cs23, 00500 double *cs24, 00501 double *cs25, 00502 double *cs34, 00503 double *cs35, 00504 double *cs45) 00505 { 00506 /* written by Kirk Korista */ 00507 double a, 00508 b, 00509 c, 00510 telogn1; 00511 00512 DEBUG_ENTRY( "S2cs()" ); 00513 00514 /* limit to stop exceeding bounds */ 00515 telogn1 = MAX2(3.5,telog); 00516 telogn1 = MIN2(telogn1,5.0); 00517 00518 /* 2D5/2 - 2P3/2 S II 10320.4 A=0.179 (3-->5) */ 00519 a = 18.335524; 00520 b = -5.1180248; 00521 c = 0.44482438; 00522 *cs35 = MIN2(5.82,a+b*telogn1+c*telogn1*telogn1); 00523 *cs35 = MAX2(3.87,*cs35); 00524 00525 /* 2D3/2 - 2P3/2 10286.7 A=0.1335 (2-->5) */ 00526 a = 6.690242; 00527 b = -1.061514; 00528 c = 0.034535506; 00529 *cs25 = MIN2(3.38,a+b*telogn1+c*telogn1*telogn1); 00530 *cs25 = MAX2(2.24,*cs25); 00531 00532 /* 2D5/2 - 2P1/2 10373.3 A=0.0779 (3-->4) */ 00533 a = 4.2250081; 00534 b = -0.46549935; 00535 c = -0.010172139; 00536 *cs34 = MIN2(2.46,a+b*telogn1+c*telogn1*telogn1); 00537 *cs34 = MAX2(1.64,*cs34); 00538 00539 /* 2D3/2 - 2P1/2 10336.3 A=0.1626 (2-->4) */ 00540 a = 8.274085; 00541 b = -2.6223732; 00542 c = 0.2502924; 00543 *cs24 = MIN2(2.14,a+b*telogn1+c*telogn1*telogn1); 00544 *cs24 = MAX2(1.42,*cs24); 00545 00546 /* 2P1/2 - 2P3/2 */ 00547 a = -5.1994665; 00548 b = 49.334586; 00549 c = -70.93344; 00550 *cs45 = MIN2(3.07,a+b/telogn1+c/(telogn1*telogn1)); 00551 *cs45 = MAX2(1.85,*cs45); 00552 00553 /* 2D3/2 - 2D5/2 */ 00554 a = -27.497273; 00555 b = 247.27405; 00556 c = -429.9142; 00557 *cs23 = MIN2(8.01,a+b/telogn1+c/(telogn1*telogn1)); 00558 *cs23 = MAX2(4.79,*cs23); 00559 00560 /* 4S3/2 - 2P3/2 4068.6 A=0.220 */ 00561 a = 2.6106784; 00562 b = -3.2766908e-05; 00563 c = 6.5105436; 00564 *cs15 = a+b*pow(telogn1,c); 00565 *cs15 = MIN2(2.46,*cs15); 00566 *cs15 = MAX2(1.45,*cs15); 00567 00568 /* 4S3/2 - 2P1/2 4076.4 A=0.091 */ 00569 *cs14 = 0.5**cs15; 00570 00571 /* 4S3/2 - 2D5/2 6716.5 A=2.601e-04 */ 00572 a = 8.1458628; 00573 b = -0.5389108; 00574 c = 1.4486586; 00575 *cs13 = a+b*pow(telogn1,c); 00576 *cs13 = MIN2(4.77,*cs13); 00577 *cs13 = MAX2(2.54,*cs13); 00578 00579 /* 4S3/2 - 2D3/2 6730.8 A=8.82e-04 */ 00580 *cs12 = *cs13/1.5; 00581 00582 /* option to print values, usually commented out 00583 * write(6,*) 10.**telog 00584 * write(6,*) cs12 00585 * write(6,*) cs13 00586 * write(6,*) cs14 00587 * write(6,*) cs15 00588 * write(6,*) cs23 00589 * write(6,*) cs24 00590 * write(6,*) cs25 00591 * write(6,*) cs34 00592 * write(6,*) cs35 00593 * write(6,*) cs45 00594 * stop 00595 * */ 00596 return; 00597 }