/home66/gary/public_html/cloudy/c08_branch/source/cool_alum.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 /*CoolAlum compute aluminum cooling */
00004 #include "cddefines.h"
00005 #include "embesq.h"
00006 #include "taulines.h"
00007 #include "phycon.h"
00008 #include "coolheavy.h"
00009 #include "dense.h"
00010 #include "ligbar.h"
00011 #include "lines_service.h"
00012 #include "atoms.h"
00013 #include "cooling.h"
00014 
00015 void CoolAlum(void)
00016 {
00017         double cs ,
00018           cs2s2p, 
00019          cs2s3p;
00020         realnum p2;
00021 
00022         DEBUG_ENTRY( "CoolAlum()" );
00023 
00024         /* Al I 3957 */
00025         MakeCS( &TauLines[ipAlI3957] );
00026         atom_level2( &TauLines[ipAlI3957]);
00027 
00028         /* Al I 3090 */
00029         MakeCS(&TauLines[ipAlI3090]);
00030         atom_level2(&TauLines[ipAlI3090]);
00031 
00032         /* AlII  1670.787
00033          * >>chng 96 may 09 put back into level 2 for array processor speed up
00034          * cs from 
00035          * >>refer      al2     cs      Tayal, S.S., Burke, P.G., Kingston, A.E. 1985, J.Phys. B, 18, 4321
00036          * >>refer      al2     cs      Tayal, S.S., Burke, P.G., Kingston, A.E. 1984, J.Phys. B, 17, 3847
00037          * cs = MIN( 5.0 , 0.0125 * sqrte*te10*te003 )
00038          * call PutCS( cs , al1671 )
00039          * call atom_level2( al1671 )
00040          *
00041          * Al 2, 3P in 
00042          * >>refer      al2     cs      Keenan, F.P., Harra, L.K., Aggarwal, K.M., Feibelman, W.A. 1992,
00043          * >>refercon   ApJ, 385, 375
00044          * doublet at 2660, 2669 */
00045         /* >>chng 01 sep 09, AtomSeqBeryllium will reset this to 1/3 so critical density correct */
00046         PutCS(3.56,&TauLines[ipT2670]);
00047 
00048         /* C2670 = AtomSeqBeryllium( 1.67,2.00,6.54, T2670 , 3.67E-3 )  * 7.45E-12 */
00049         AtomSeqBeryllium(1.67,2.00,6.54,&TauLines[ipT2670],3.67e-3);
00050         embesq.em2669 = (realnum)(atoms.PopLevels[3]*3.67e-3*7.45e-12);
00051 
00052         /* Aluminum al 3, 1854, 1862 doublet, 3s ^2 S gnd, ^2P^o 1/2 3/5 exc
00053          * f=0.854 from 
00054          * >>refer      al3     as      Dufton, P.L., Brown, P.J.F., Lennon, D.J., Lynas-Gray, A.E. 1986,
00055          * >>refercon   MNRAS, 222, 713
00056          * cs from 
00057          * >>refer      al3     cs      Dufton, P.L., & Kingston, A.E. 1987, J.Phys. B, 20, 3899 */
00058         cs = 4.407*phycon.te10*phycon.te03*phycon.te01;
00059         cs = MIN2(25.0,cs);
00060         PutCS(cs*0.667,&TauLines[ipT1855]);
00061         PutCS(cs*0.333,&TauLines[ipT1863]);
00062         PutCS(1.0,&TauDummy);
00063         atom_level3(&TauLines[ipT1863],&TauDummy,&TauLines[ipT1855]);
00064 
00065         /* Al V 2.905mm, cs 
00066          * >>referold   al5     cs      Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
00067         /*cs = MIN2(0.524,1.113/(phycon.te10/phycon.te02/phycon.te003));*/
00068         /* >>refer      al5     cs      Berrington, K.A., Saraph, H.E. & Tully, J.A. 1998, A&AS, 129,161 */
00069         /* >>chng 06 jul 11 - Humeshkar Nemala*/
00070         if(phycon.te < 1.58E5)
00071         {
00072                 cs = (realnum)(0.893/(phycon.te05*phycon.te005*phycon.te001*phycon.te0002));
00073         }
00074         else
00075         {
00076                 cs = (realnum)(3.1991/((phycon.te20/phycon.te04)*(phycon.te003/phycon.te0002)));
00077         }
00078 
00079         PutCS(cs,&TauLines[ipAl529]);
00080 
00081         atom_level2(&TauLines[ipAl529]);
00082 
00083         /* Al VI 3.66, 9.12 microns */
00084         cs = 639.1/(phycon.sqrte*pow(phycon.te03,phycon.te003)*phycon.te001);
00085         cs = MIN2(5.5 , cs);
00086         PutCS(cs,&TauLines[ipAl6366]);
00087 
00088         cs = MIN2(1.10,49.37/(phycon.sqrte/phycon.te10*phycon.te02/
00089           phycon.te001));
00090         PutCS(cs,&TauLines[ipAl6912]);
00091 
00092         cs = MIN2(2.0,319.11/(phycon.sqrte*phycon.te10/phycon.te02/
00093           phycon.te001));
00094         PutCS(cs,&TauDummy);
00095 
00096         atom_level3(&TauLines[ipAl6366],&TauLines[ipAl6912],&TauDummy);
00097 
00098         /* [Al VI] 2428.4, 2601, 1169.8, 2124.9
00099          * POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2)
00100          * cs from 
00101          * >>refer      al6     cs      Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1
00102          */
00103         CoolHeavy.c1170 = atom_pop3(9.,5.,1.,1.044,0.145,0.463,6.63,72.9,7.79,
00104           5.92e4,6.767e4,&p2,dense.xIonDense[ipALUMINIUM][5],0.,0.,0.)*72.9*1.70e-11;
00105 
00106         CoolHeavy.c2428 = p2*6.63*8.19e-12;
00107         CoolHeavy.c2125 = CoolHeavy.c1170*(7.79/72.9)*(1169.5/2124.9);
00108         CoolAdd("Al 6",1170,CoolHeavy.c1170);
00109         CoolAdd("Al 6",2428,CoolHeavy.c2428);
00110         CoolAdd("Al 6",2125,CoolHeavy.c2125);
00111 
00112         /* Al VIII 5.85, 3.72 microns
00113          * collision strength 
00114          * >>refer      al8     cs      Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273 */
00115         cs = MIN2(0.39,0.0459*phycon.te20/phycon.te003/phycon.te003);
00116         PutCS(cs,&TauLines[ipAl8575]);
00117         cs = MIN2(1.062,0.0407*phycon.te30/phycon.te003/phycon.te003);
00118         PutCS(cs,&TauLines[ipAl8370]);
00119         cs = MIN2(0.27,2.694e-3*phycon.te20*phycon.te20*phycon.te01*
00120           phycon.te003);
00121         PutCS(cs,&TauDummy);
00122         atom_level3(&TauLines[ipAl8575],&TauLines[ipAl8370],&TauDummy);
00123 
00124         /* [Al IX] 2.04 micron, no collision strength, A NIST */
00125         PutCS(1.,&TauLines[ipAl09204]);
00126         atom_level2(&TauLines[ipAl09204]);
00127 
00128         /* Al 10 639, CS 
00129          * >>refer      al10    cs      Keenan, F.P. Berrington, K.A., Burke, P.G., Dufton, P.L.,
00130          * >>refercon   Kingston, A.E. 1986, PhyS 34, 216
00131          * A is extrapolation along iso seq */
00132         cs = 0.73492 - 0.16964*phycon.alogte + 0.0096631*POW2(phycon.alogte);
00133         cs = MAX2(0.01,cs);
00134         PutCS(cs,&TauLines[ipT639]);
00135         atom_level2(&TauLines[ipT639]);
00136 
00137         /* Al 11 Li seq 2s2p 556
00138          * >>refer      al11    cs      Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */
00139         ligbar(13,&TauLines[ipTAl550],&TauLines[ipTAl48],&cs2s2p,&cs2s3p);
00140         PutCS(cs2s2p,&TauLines[ipTAl550]);
00141         PutCS(cs2s2p*0.5,&TauLines[ipTAl568]);
00142         PutCS(1.0,&TauDummy);
00143         atom_level3(&TauLines[ipTAl568],&TauDummy,&TauLines[ipTAl550]);
00144 
00145         PutCS(cs2s3p,&TauLines[ipTAl48]);
00146         atom_level2(&TauLines[ipTAl48]);
00147         return;
00148 }

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