/home66/gary/public_html/cloudy/c08_branch/source/cool_magn.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 /*CoolMagn compute magnesium cooling */
00004 #include "cddefines.h"
00005 #include "coolheavy.h"
00006 #include "taulines.h"
00007 #include "phycon.h"
00008 #include "dense.h"
00009 #include "ligbar.h"
00010 #include "lines_service.h"
00011 #include "atoms.h"
00012 #include "cooling.h"
00013 
00014 void CoolMagn(void)
00015 {
00016         realnum cs, 
00017           csdum, 
00018           csoi;
00019         double cs2s2p, 
00020           cs2s3p;
00021 
00022         DEBUG_ENTRY( "CoolMagn()" );
00023 
00024         /* Mg I 2853 
00025          * fit to Dima's  integration of
00026          * >>refer      mg1     cs      Leep, D., & Gallagher, A. 1976, Phys Rev A, 13, 148 */
00027         cs = (realnum)(5.21e-4*phycon.te/phycon.te10);
00028         PutCS(cs,&TauLines[ipMgI2853]);
00029         atom_level2(&TauLines[ipMgI2853]);
00030 
00031         /* Mg I 2026,  */
00032         MakeCS(&TauLines[ipMgI2026]);
00033         atom_level2(&TauLines[ipMgI2026]);
00034 
00035         /* Mg 1 4571, data from Mendoza
00036          * >>refer      mg1     as      Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
00037          * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
00038          * cs set to O I */
00039         csoi = (realnum)(2.68e-5*phycon.te*(1. + 1.67e-6*phycon.te - 2.95e-10*phycon.te*
00040           phycon.te));
00041         csoi = (realnum)MAX2(0.1,csoi);
00042         PutCS(csoi/9.,&TauLines[ipT4561]);
00043         atom_level2(&TauLines[ipT4561]);
00044 
00045         /* Mg II 2798
00046          * cs from 
00047          * >>refer      mg2     cs      Sigut, A., & Pradhan, A.K., 1994, J Phys B sub
00048          * refer not publ as of '97, cs agrees fairly well with Harrington et al.
00049          * previous reference (~'82) */
00050         cs2s2p = 4.50*phycon.te10;
00051         PutCS(cs2s2p,&TauLines[ipT2796]);
00052         PutCS(cs2s2p*0.5,&TauLines[ipT2804]);
00053         PutCS(1.0,&TauDummy);
00054         atom_level3(&TauLines[ipT2804],&TauDummy,&TauLines[ipT2796]);
00055         /* call PutCS( cs , t2800 )
00056          * call atom_level2( t2800 )
00057          *
00058          * following used in MAGNES for photo destruction rate */
00059         if( atoms.PopLevels[0] > 0. )
00060         {
00061                 atoms.popmg2 = (realnum)((atoms.PopLevels[2] + atoms.PopLevels[1])/
00062                   atoms.PopLevels[0]);
00063         }
00064         else
00065         {
00066                 atoms.popmg2 = 0.;
00067         }
00068 
00069         /* MG IV 4.487 MIC 
00070          * cs 
00071          * >>referold   mg4     cs      Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
00072         /*cs = (realnum)MIN2(0.425,0.180*phycon.te05*phycon.te02);
00073         cs = (realnum)MAX2(0.356,cs);*/
00074         /* >>chng 06 jul 06-Humeshkar Nemala*/
00075         /*>> refer Mg IV cs Berrington,K.A., Saraph,H. E., & Tully, J.A. 1998,A&AS,129,161 */
00076         /*This is the cs of the transition between the levels of 2P^o term(J=1/2 - J=3/2)*/
00077         if(phycon.te < 4E5)
00078         {
00079                 cs = (realnum)(0.155*phycon.te07*phycon.te01*
00080                         phycon.te003*phycon.te0005*phycon.te0001);
00081         }
00082         else
00083         {
00084                 cs = (realnum)(5.124/((phycon.te20/phycon.te02)*
00085                         phycon.te007*phycon.te0005*phycon.te0001));
00086         }
00087         PutCS(cs,&TauLines[ipTMg4]);
00088 
00089         atom_level2(&TauLines[ipTMg4]);
00090 
00091         /* MG V 5.61, 13.54 micron, 
00092          * >>refer      mg5     cs      Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1
00093          * >>chng 96 jul 16 had been constant 0.3 */
00094         cs = (realnum)MIN2(0.311,0.11*phycon.te10);
00095         PutCS(cs,&TauLines[ipTMg14]);
00096 
00097         cs = (realnum)MIN2(1.06,0.339*phycon.te10);
00098         PutCS(cs,&TauLines[ipTMg6]);
00099         /* >>chng 96 jul 16 had been constant 0.3 */
00100         cs = (realnum)MIN2(0.297,0.0745*phycon.te10*phycon.te02);
00101         PutCS(cs,&TauDummy);
00102         atom_level3(&TauLines[ipTMg6],&TauLines[ipTMg14],&TauDummy);
00103 
00104         /* [Mg V] 2751+2893- Ne III-like, cs 
00105          * >>refer      mg5     as      Mendoza, C., & Zeippen, C.J. 1987, MNRAS, 224, 7p
00106          * >>chng 96 aug 5 to three level atom
00107          * c2751 = atom_pop2(1.33,9.,5.,2.4,5.14e4,xmg(5))*7.11e-12
00108          * dCooldT = dCooldT + c2751*5.14e4*tsq1
00109          * call CoolAdd( 'Mg 5' , 2751 , C2751 )
00110          *
00111          * following is 2-1 transition, both 2928 and 2783, 
00112          * >>refer      mg5     cs      Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1 */
00113         PutCS(1.187,&TauLines[ipxMg52855]);
00114 
00115         cs = (realnum)MIN2(0.278,0.0171*phycon.te20*phycon.te05/
00116           phycon.te005/phycon.te003);
00117         cs = (realnum)MAX2(0.182,cs);
00118 
00119         /* 3-2 transition, 2417.5 */
00120         PutCS(cs,&TauLines[ipxMg52417]);
00121 
00122         /* 3-1 transition, 1324.58 */
00123         PutCS(0.153,&TauLines[ipxMg51325]);
00124 
00125         atom_level3(&TauLines[ipxMg52855],&TauLines[ipxMg52417],&TauLines[ipxMg51325]);
00126 
00127         /* Mg VI, 1806- OII like, data 
00128          * >>refer      mg6     all     Kafatos, M., & Lynch, J.P. 1980, ApJS, 42, 611 */
00129         /* >>refer      mg6     as      Becker, Butler, Zeippen, 1989, A&A 221, 375 
00130          * >>refer      mg6     cs      Ramsbottom & Bell 1997, A&AS 125, 543 */
00131         CoolHeavy.c1806 = atom_pop2(0.6,4.,10.,0.1,7.974e4,dense.xIonDense[ipMAGNESIUM][5])*
00132           1.11e-11;
00133         CoolAdd("Mg 6",1806,CoolHeavy.c1806);
00134 
00135         /* [Mg VII] IR lines at 5.517 and 9.03 microns, 
00136          * carbon-like, 
00137          * >>refer      mg7     cs      Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273 */
00138         if( phycon.alogte < 4.4 )
00139         {
00140                 cs = (realnum)(0.027*phycon.te30/phycon.te03*phycon.te003*phycon.te001);
00141         }
00142         else
00143         {
00144                 cs = 0.44f;
00145         }
00146         PutCS(cs,&TauLines[ipfsMg790]);
00147         if( phycon.alogte < 4.6 )
00148         {
00149                 cs = (realnum)(MIN2(1.456,0.0577*phycon.te30*phycon.te02/phycon.te001/
00150                   phycon.te001));
00151                 csdum = (realnum)(8.275e-3*phycon.sqrte/phycon.te10/phycon.te001);
00152         }
00153         else
00154         {
00155                 cs = (realnum)(3.257/(phycon.te05*phycon.te02*phycon.te003*phycon.te003));
00156                 csdum = (realnum)(1.456/(phycon.te10*phycon.te01*phycon.te005));
00157         }
00158         PutCS(cs,&TauLines[ipfsMg755]);
00159         PutCS(csdum,&TauDummy);
00160         /* atom_level3(  t10,t21,t20) */
00161         atom_level3(&TauLines[ipfsMg790],&TauLines[ipfsMg755],&TauDummy);
00162 
00163         /* [mg vii] 2510, 2629
00164          * c2596 = atom_pop2( 1.7,9.,5.,10.,5.76e4,dense.xIonDense(12,7))*7.96e-12
00165          * dCooldT = dCooldT + c2596 * 5.76e4*tsq1
00166          * call CoolAdd( 'Mg 7' , 2596 , C2596 )
00167          *
00168          * >>chng 96 aug 5, converted to 3 level atom */
00169         cs = (realnum)MIN2(0.22,0.3622/(phycon.te05*phycon.te02*phycon.te003));
00170         PutCS(cs,&TauLines[ipxMg71190]);
00171 
00172         /* 2-1 transitions, 2509.2A+2629.1A together */
00173         cs = (realnum)MIN2(1.067,0.247*phycon.te10*phycon.te03*phycon.te005);
00174         PutCS(cs,&TauLines[ipxMg72569]);
00175 
00176         /* 3-2 transition, 2261.5A */
00177         cs = (realnum)MIN2(0.542,3.863/(phycon.te20*phycon.te03*
00178           phycon.te01/phycon.te003));
00179         cs = (realnum)MAX2(0.3735,cs);
00180         PutCS(cs,&TauLines[ipxMg72261]);
00181 
00182         atom_level3(&TauLines[ipxMg72569],&TauLines[ipxMg72261],&TauLines[ipxMg71190]);
00183         /* atom_level3(  t10,t21,t20)
00184          *
00185          * Mg VIII 3.03 micron, data from 
00186          * >>refer      mg8     as      Chandra, S. 1982, SoPh, 75, 133
00187          * cs from 
00188          * >>refer      mg8     cs      Zhang, H.L., Graziani, M., Pradhan, A.K. 1994, A&A, 283, 319 */
00189         PutCS(1.0,&TauLines[ipxMg08303]);
00190         atom_level2(&TauLines[ipxMg08303]);
00191         /* fs303 = atom_pop2(0.26,2.,4.,0.324,4752.,xmg(8))*6.58E-13
00192          * call CoolAdd( 'Mg 8' , 303 , FS303 )
00193          *
00194          * Mg IX 704.5, 1909-like, A from
00195          * >>refer      mg9     as      Muhlethaler, H.P., & Nussbaumer, H. 1976, A&A 48, 109
00196          * AtomSeqBeryllium line, cs data from 
00197          * >>refer      mg9     cs      Keenan, F.P. Berrington, K.A., Burke, P.G., Dufton, P.L.,
00198          * >>refercon Kingston, A.E. 1986, PhyS 34, 216
00199          * A's 
00200          * >>refer      mg9     as      Fleming, J., Bell, K.L, Hibbert, A., Vaeck, N., Godefroid, M.R.
00201          * >>refercon 1996, MNRAS, 279, 1289 */
00203         cs = (realnum)(0.98288 - 0.23766*phycon.alogte + 0.014334*POW2(phycon.alogte));
00204         cs = (realnum)MAX2(0.01,cs);
00205         PutCS(cs,&TauLines[ipT705]);
00206         atom_level2(&TauLines[ipT705]);
00207 
00208         /* Mg X 610
00209          * >>refer      mg10    cs      Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */
00210         ligbar(12,&TauLines[ipTMg610],&TauLines[ipT58],&cs2s2p,&cs2s3p);
00211         PutCS(cs2s2p,&TauLines[ipTMg610]);
00212         PutCS(cs2s2p*0.5,&TauLines[ipTMg625]);
00213         PutCS(1.0,&TauDummy);
00214         atom_level3(&TauLines[ipTMg625],&TauDummy,&TauLines[ipTMg610]);
00215 
00216         /* Mg X 58A */
00217         PutCS(cs2s3p,&TauLines[ipT58]);
00218         atom_level2(&TauLines[ipT58]);
00219         return;
00220 }

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