00001 
00002 
00003 
00004 #include "cddefines.h"
00005 #include "taulines.h"
00006 #include "phycon.h"
00007 #include "lines_service.h"
00008 #include "dense.h"
00009 #include "atoms.h"
00010 #include "cooling.h"
00011 
00012 void CoolNick(void)
00013 {
00014         double cs,
00015                 tused;
00016         realnum rate;
00017 
00018         DEBUG_ENTRY( "CoolNick()" );
00019 
00020         
00021         
00022         tused = MAX2( 30. , phycon.te );
00023         tused = MIN2( 3000. , phycon.te  );
00024         tused /= 100.;
00025 
00026         
00027         
00028         rate = (realnum)(1.2e-7 * dense.eden + 
00029                 
00030                 
00031                 8.0e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
00032         LineConvRate2CS( &TauLines[ipNi1_7m]  , rate );
00033 
00034         
00035         rate = (realnum)(9.3e-8 * dense.eden + 
00036                 
00037                 
00038                 5.3e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
00039         LineConvRate2CS( &TauLines[ipNi1_11m]  , rate );
00040 
00041         rate = (realnum)(1.2e-7 * dense.eden + 
00042                 
00043                 
00044                 6.9e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
00045         TauDummy.Hi->g = TauLines[ipNi1_11m].Hi->g;
00046         LineConvRate2CS( &TauDummy  , rate );
00047         
00048         TauDummy.Hi->g = 0.;
00049 
00050         atom_level3(&TauLines[ipNi1_7m],&TauLines[ipNi1_11m],&TauDummy);
00051 
00052         
00053 
00054 
00055 
00056 
00057 
00058 
00059         if( phycon.alogte < 5.4 )
00060         {
00061                 cs = MAX2(0.6,0.6+0.8182*(phycon.alogte-3.2));
00062         }
00063         else
00064         {
00065                 cs = MAX2(0.6,2.4-1.5*(phycon.alogte-5.4));
00066         }
00067         PutCS(cs,&TauLines[ipxNi1242]);
00068         atom_level2(&TauLines[ipxNi1242]);
00069         return;
00070 }