/home66/gary/public_html/cloudy/c08_branch/source/cool_sulf.cpp

Go to the documentation of this file.
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 }

Generated on Mon Feb 16 12:01:14 2009 for cloudy by  doxygen 1.4.7