/home66/gary/public_html/cloudy/c08_branch/source/cool_chlo.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 /*CoolChlo compute chlorine cooling */
00004 #include "cddefines.h"
00005 #include "taulines.h"
00006 #include "coolheavy.h"
00007 #include "dense.h"
00008 #include "phycon.h"
00009 #include "thermal.h"
00010 #include "lines_service.h"
00011 #include "atoms.h"
00012 #include "cooling.h"
00013 
00014 void CoolChlo(void)
00015 {
00016         double a21, 
00017           a31, 
00018           a32, 
00019           a41, 
00020           a42, 
00021           a43, 
00022           a51, 
00023           a52, 
00024           a53, 
00025           a54, 
00026           cs, 
00027           cs01,
00028           cs02,
00029           cs12, 
00030           cs13, 
00031           cs14, 
00032           cs15, 
00033           cs23, 
00034           cs24, 
00035           cs25, 
00036           cs34, 
00037           cs35, 
00038           cs45, 
00039           p[5], 
00040           p3,
00041           tused;
00042         realnum
00043           p2, 
00044           pop2,
00045           rate;
00046         static double gcl3[5]={4.,4.,6.,2.,4.};
00047         static double excl3[4]={18053.,66.,11693.,95.};
00048 
00049         DEBUG_ENTRY( "CoolChlo()" );
00050 
00051         /* >>chng >>03 nov 09, add this line, from
00052          * >>refer      Cl1     cs      Hollenbach, D. & McKee, C.F. 1989, ApJ, 342, 306 */
00053         /* rates are said to be ok over range 30 - 3000K */
00054         tused = MAX2( 30. , phycon.te );
00055         tused = MIN2( 3000. , phycon.te  );
00056         tused /= 100.;
00057 
00058         /* HM89 give deexcitation rates, must convert into electron collision strength, as expected
00059          * by the code's infrastructure */
00060         /* electron collision strength */
00061         rate = (realnum)( 4.7e-8 * dense.eden + 
00062                 /* >>chng 05 jul 05, eden to cdsqte */
00063                 /*8.3e-10*pow( tused , 0.17 ) * dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
00064                 8.3e-10*pow( tused , 0.17 ) * dense.xIonDense[ipHYDROGEN][0] );
00065         /* possible for atomic hydrogen density to be vary small, causing zero rate coef,
00066          * which triggers thrown assert - guard against this */
00067         LineConvRate2CS( &TauLines[ipCl1_11m]  , SDIV(rate) );
00068         atom_level2(&TauLines[ipCl1_11m]);
00069 
00070         /* [Cl II] 14.3678 mic, 33.281 mic*/
00071         /* >>refer      cl2     as      Mendoza, C., & Zeippen, C.J. 1983, MNRAS, 202, 981*/
00072         /* the following cs were about 2x smaller */
00073         /* >>referold   cl2     cs      Krueger, T.K., & Czyzak, S.J. 1970, Pro Roy Soc Lond, 318, 531 */
00074         /* >>chgn 03 feb 24, change to following collision strengths */
00075         /* >>refer      cl2     cs      Wilson, N.J., & Bell, K.L. 2002, MNRAS, 331, 389 */
00076         /* order of 3P ground term, 2, 1, 0 from lowest to highest */
00077 
00078         /* this is the 3P J=1 -> 2, 14.4 micron line */
00079         cs12 = 17.5 / (phycon.te10*phycon.te04 );
00080         /*PutCS(2.17,&TauLines[ipfsCl214]);*/
00081         PutCS( cs12 , &TauLines[ipfsCl214] );
00082 
00083         /* this is the 3P J=0 -> 1, 33.3 micron line */
00084         cs01 = 4.85 / (phycon.te10*phycon.te02 );
00085         PutCS( cs01 , &TauLines[ipfsCl233] );
00086         /*PutCS(0.93,&TauLines[ipfsCl233]);*/
00087 
00088         /* the 0 - 2 transition */
00089         cs02 = 4.51 / (phycon.te10*phycon.te04 );
00090         PutCS( cs02 , &TauDummy );
00091         /*PutCS(1.00,&TauDummy);*/
00092 
00093         /* atom_level3(  t10,t21,t20) */
00094         atom_level3(&TauLines[ipfsCl214],&TauLines[ipfsCl233],&TauDummy);
00095 
00096         /* [Cl II] 8578.7, 9123.6, 6161.8, 3677.9 */
00097         /* >>refer      Cl2     As      Mendoza, C., & Zeippen, C.J. 1983, MNRAS, 202, 981 */
00098         /* following numbering in terms of level position, 1, 2, then 3 */
00099         a21 = 0.133;
00100         a31 = 1.33;
00101         a32 = 2.06;
00102         cs13 = 1.01;
00103         /* this is 10x what is in the paper, as per comment made in 
00104          * >>refer      Cl2     cs      Keenan, F.P., Aller, L.H., Exter, K.M., Hyung, S., & 
00105          * >>refercon   Pollacco, D.L. 2003, ApJ, 584, 385 */
00106         cs23 = 1.49;
00107         cs12 = 8.389;
00108         /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
00109         p3 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,a21,a31,a32,1.576e4,23344.,
00110           &p2,dense.xIonDense[ipCHLORINE][1],0.,0.,0.);
00111         /*p3 = atom_pop3(9.,5.,1.,3.86,0.456,1.15,a21,a31,a32,1.576e4,23344.,
00112           &p2,dense.xIonDense[ipCHLORINE][1],0.);*/
00113 
00114         /* [Cl II] 8578.7, 9123.6 doublet, both together */
00115         CoolHeavy.c8579 = p2*a21*2.32e-12;
00116         CoolAdd("Cl 2",8579,CoolHeavy.c8579);
00117 
00118         /* [Cl II] 6161.8 auroral line */
00119         CoolHeavy.c6164 = p3*a32*3.23e-12;
00120         CoolAdd("Cl 2",6164,CoolHeavy.c6164);
00121 
00122         /* [Cl II] 3677.9 */
00123         CoolHeavy.c3679 = p3*a31*5.41e-12;
00124         CoolAdd("Cl 2",3679,CoolHeavy.c3679);
00125 
00126         /* [Cl III] this is a [SII] - like doublet, vac lam=5519, 5539
00127          * all data from 
00128          * >>refer      cl3     all     Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
00129          * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143 */
00130         cs12 = 1.26;
00131         a21 = 4.83e-3;
00132 
00133         cs13 = 1.88;
00134         a31 = 7.04e-4;
00135 
00136         cs14 = 0.627;
00137         a41 = 0.305;
00138 
00139         cs15 = 1.26;
00140         a51 = 0.754;
00141 
00142         cs23 = 3.19;
00143         a32 = 3.22e-6;
00144 
00145         cs24 = 1.24;
00146         a42 = 0.303;
00147 
00148         cs25 = 1.91;
00149         a52 = 0.323;
00150 
00151         cs34 = 1.38;
00152         a43 = 0.100;
00153 
00154         cs35 = 3.33;
00155         a53 = 0.316;
00156 
00157         cs45 = 1.34;
00158         a54 = 7.65e-6;
00159 
00160         atom_pop5(gcl3,excl3,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
00161           cs45,a21,a31,a41,a51,a32,a42,a52,a43,a53,a54,p,dense.xIonDense[ipCHLORINE][2]);
00162 
00163         CoolHeavy.Cl5539 = p[1]*a21*3.59e-12;
00164         CoolHeavy.Cl5519 = p[2]*a31*3.61e-12;
00165         CoolHeavy.Cl3354 = p[3]*a41*5.93e-12;
00166         CoolHeavy.Cl3344 = p[4]*a51*5.95e-12;
00167         CoolHeavy.Cl8504 = p[3]*a42*2.34e-12;
00168         CoolHeavy.Cl8436 = p[4]*a42*2.36e-12;
00169         CoolHeavy.Cl8552 = p[3]*a43*2.33e-12;
00170         CoolHeavy.Cl8483 = p[4]*a53*2.35e-12;
00171 
00172         /* following are whole multiplets */
00173         CoolHeavy.c5525 = CoolHeavy.Cl5539 + CoolHeavy.Cl5519;
00174         CoolHeavy.c3350 = CoolHeavy.Cl3354 + CoolHeavy.Cl3344;
00175         CoolHeavy.c8494 = CoolHeavy.Cl8504 + CoolHeavy.Cl8436 + CoolHeavy.Cl8552 + 
00176           CoolHeavy.Cl8483;
00177         thermal.dCooldT += CoolHeavy.c5525*(2.14e4*thermal.tsq1 - thermal.halfte);
00178         CoolAdd("Cl 3",5525,CoolHeavy.c5525);
00179         CoolAdd("Cl 3",3354,CoolHeavy.c3350);
00180         CoolAdd("Cl 3",8494,CoolHeavy.c8494);
00181 
00182         /* [CL IV], like [OIII]
00183          * cs from 
00184          * >>refer      cl4     cs      Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 */
00185         a21 = 0.251;
00186         cs12 = 6.437;
00187         a32 = 2.80;
00188         cs23 = MIN2(2.1,0.0450*phycon.te30*phycon.te03*phycon.te03);
00189         a31 = 2.50;
00190         cs13 = 1.922;
00191         /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
00192         p3 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,a21,a31,a32,2.24e4,3.11e4,&pop2,
00193           dense.xIonDense[ipCHLORINE][2],0.,0.,0.);
00194         /* whole 2-1 transition */
00195         CoolHeavy.c8047 = pop2*a21*2.48e-12;
00196         CoolAdd("Cl 4",8047,CoolHeavy.c8047);
00197         thermal.dCooldT += CoolHeavy.c8047*(2.24e4*thermal.tsq1 - thermal.halfte);
00198         /* 3-1 transition */
00199         CoolHeavy.c3119 = p3*a31*6.38e-12;
00200         CoolAdd("Cl 4",3119,CoolHeavy.c3119);
00201         /* 3-2 transition */
00202         CoolHeavy.c5324 = p3*a32*3.74e-12;
00203         CoolAdd("Cl 4",5324,CoolHeavy.c5324);
00204 
00205         /* [Cl IV] fine structure lines, 20.354, 11.741 microns */
00206         cs = MIN2(2.7,6.637/(phycon.te10*phycon.te03*phycon.te01));
00207         cs = MAX2(1.6,cs);
00208         PutCS(cs,&TauLines[ipCl04203]);
00209 
00210         cs = MIN2(8.0,15.65/phycon.te10);
00211         PutCS(cs,&TauLines[ipCl04117]);
00212 
00213         cs = MIN2(2.0,5.805/(phycon.te10*phycon.te03));
00214         PutCS(cs,&TauDummy);
00215 
00216         /* atom_level3(  t10,t21,t20) */
00217         atom_level3(&TauLines[ipCl04203],&TauLines[ipCl04117],&TauDummy);
00218 
00219         /* fixit - add Cl V 6.71 micron using cs from
00220          * >>refer      cl5     cs      Saraph, H.E., & Storey, P.J., 1999, A&AS, 134, 369 */
00221 
00222         /* [Cl IX] 7335 A, 
00223          * >>referold   cl9     as      Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
00224         /* >>refer      cl9     as      Berrington,K.A.,Saraph, H.E. & Tully, J.A. 1998, A&AS, 129, 161 */
00225         /*>>chng 06 jul 18 Changes made-Humeshkar Nemala*/
00226         if(phycon.te < 2.03E5)
00227         {
00228                 cs = (realnum)(0.1175*phycon.te07*phycon.te004*phycon.te0001);
00229         }
00230         else if(phycon.te < 5.11E5)
00231         {
00232                 cs = (realnum)((60.7989E-02)/(phycon.te05*phycon.te01*phycon.te0004));
00233         }
00234         else if(phycon.te < 1.284E6)
00235         {
00236                 cs = (realnum)(0.274857); 
00237         }
00238         else
00239         {
00240                 cs = (realnum)(27.327963/(phycon.te30*phycon.te02*phycon.te007));
00241         }
00242         /*PutCS(0.28,&TauLines[ipCl973]);*/
00243         PutCS(cs,&TauLines[ipCl973]);
00244         atom_level2(&TauLines[ipCl973]);
00245 
00246         /* [Cl X] 3.05m, 9223A */
00247         cs = MIN2(0.187,6.686e-3*phycon.te30/phycon.te001);
00248         cs = MAX2(0.096,cs);
00249         PutCS(cs,&TauLines[ipCl1030]);
00250 
00251         cs = MIN2(0.568,9.432e-3*phycon.te30*phycon.te03*
00252           phycon.te03/phycon.te003/phycon.te001);
00253         cs = MAX2(0.229,cs);
00254         PutCS(cs,&TauLines[ipCl1092]);
00255 
00256         cs = MIN2(0.148,7.088e-4*phycon.sqrte/phycon.te03/
00257           phycon.te003/phycon.te003);
00258         cs = MAX2(0.048,cs);
00259         PutCS(cs,&TauDummy);
00260 
00261         atom_level3(&TauLines[ipCl1092],&TauLines[ipCl1030],&TauDummy);
00262         return;
00263 }

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