23 static const double aNI[
N1_SIZE] = {2.755e-5,4.123e-5,7.536e-6,1.486e-5,4.516e-5,
24 -2.935e-6,4.000e-6,3.751e-6,-2.176e-6,1.024e-5};
25 static const double bNI[
N1_SIZE] = {-8.150e-8,-1.220e-7,-2.226e-8,-4.390e-8,-1.130e-7,
26 8.000e-9,-1.1447e-8,-1.061e-8,5.610e-9,-3.227e-8};
27 static const double cNI[
N1_SIZE] = {2.140e-4,3.272e-4,-4.944e-6,3.473e-6,-8.772e-4,
28 1.654e-3,1.675e-3,1.123e-3,3.867e-3,3.376e-4};
30 static double NI[6][6][3];
43 int ipLoTayal=-1, ipHiTayal=-1;
50 if(ipLo < 1 || ipHi > 5)
53 int ipTayalOrder[6]={0,1,3,2,4,5};
54 ipLoTayal = ipTayalOrder[ipLo];
55 ipHiTayal = ipTayalOrder[ipHi];
57 if( ipLo==2 && ipHi==3 )
63 static bool lgMustInit =
true;
68 for(
long i=0; i<6; i++)
70 for(
long j=0; j<6; j++)
81 for(
int i=1; i<6; i++)
83 for(
int j=i+1; j<6; j++)
85 NI[i][j][0] =
aNI[index];
86 NI[i][j][1] =
bNI[index];
87 NI[i][j][2] =
cNI[index];
95 for(
long i=1; i<6; i++)
97 for(
long j=i+1; j<6; j++)
99 printf(
"NI %i%i a:%e ", i, j,
NI[i][j][0]);
100 printf(
"%i%i b:%e\n", i, j,
NI[i][j][1]);
106 double temp_max = 50e3;
109 temp =
MAX2(temp, temp_min);
110 temp =
MIN2(temp, temp_max);
159 static const double gN1[5]={4.,6.,4.,2.,4.};
160 static const double exN1[4]={19224.464,8.713,9605.74,0.386};
228 static const double csN1_a[
NI_NDP] = {
229 -12.3982, -9.4523, -12.5580, -10.8813, -13.6532, -9.9035, -11.4470, -5.4776, -6.3304
231 static const double csN1_b[
NI_NDP] = {
232 0.7458, 0.3865, 0.7330, 0.6853, 0.7712, 0.3919, 0.6734, 0.1789, 0.1966
235 for( i=0; i <
NI_NDP; ++i )
255 double beta = 0.7955;
258 RPI *= (1.-beta)/(1.-beta*(1.-Premove));
262 RPD0 *= (1.-beta)/(1.-beta*(1.-Premove));
266 double pump14 = 0.0113*RPI + 0.0239*RPD0 + 0.0090*RPD1 + 0.1617*RPD2 + 0.0167*RPD3 + 0.4404*RPD4;
267 double pump15 = 0.0112*RPI + 0.0265*RPD0 + 0.6253*RPD1 + 0.5108*RPD2 + 0.0824*RPD3 + 0.2588*RPD4;
268 double pump13 = 0.3441*RPI + 0.8621*RPD0 + 0.0233*RPD1 + 0.0895*RPD2 + 0.1068*RPD3 + 0.1644*RPD4;
269 double pump12 = 0.0417*RPI + 0.0468*RPD0 + 0.3408*RPD1 + 0.2328*RPD2 + 0.7937*RPD3 + 0.1338*RPD4;
271 pump14 += 0.4881*RPD5 + 0.0876*RPD6 + 0.0450*RPD7 + 0.1777*RPD8;
272 pump15 += 0.1569*RPD5 + 0.0484*RPD6 + 0.2240*RPD7 + 0.0854*RPD8;
273 pump13 += 0.2908*RPD5 + 0.8397*RPD6 + 0.0694*RPD7 + 0.7369*RPD8;
274 pump12 += 0.0623*RPD5 + 0.0238*RPD6 + 0.6615*RPD7 + 0.0000*RPD8;
283 double eff_recrate_2D = 1.108e-13 * pow(
phycon.
te*1e-4, -0.6085) /
284 (1. - 0.0041 * pow(
phycon.
te*1e-4, -0.3975) );
285 double eff_recrate_2P = 0.659e-13 * pow(
phycon.
te*1e-4, -0.6158);
293 double rec14 = eff_recrate_2P * fac_n1 * 2./6.;
294 double rec15 = eff_recrate_2P * fac_n1 * 4./6.;
295 double rec13 = eff_recrate_2D * fac_n1 * 4./10.;
296 double rec12 = eff_recrate_2D * fac_n1 * 6./10.;
307 double Cooling , CoolingDeriv;
308 atom_pop5(gN1,exN1,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
309 cs45,a12Tot,a13Tot,a14,a15,a23,a24,a25,a34,a35,a45,pop,
311 pump12 , pump13 , pump14 , pump15 );
362 p3 =
atom_pop3( 9.,5.,1., cs21, cs31, cs32, a21, a31, a32 ,
416 static vector< pair<TransitionList::iterator,double> > N3Pump;
424 N3Pump.push_back( ppa );
426 N3Pump.push_back( ppb );
428 N3Pump.push_back( ppc );
430 N3Pump.push_back( ppd );
432 N3Pump.push_back( ppe );
446 branch_ratio = 2./3.;
448 branch_ratio = 1./2.;
450 branch_ratio = 1./6.;
453 pair<TransitionList::iterator,double> pp2(
TauLine2.
begin()+i, branch_ratio );
454 N3Pump.push_back( pp2 );
460 double pump_rate = 0.;
461 vector< pair<TransitionList::iterator,double> >::const_iterator n3p;
462 for( n3p=N3Pump.begin(); n3p != N3Pump.end(); ++n3p )
465 double branch_ratio = n3p->second;
466 pump_rate += (*t).Emis().pump()*branch_ratio;
469 (*t).WLAng , (*t).Emis().pump()*branch_ratio );
482 0.201 , 1.088 , 0.668 , 2.044 , pump_rate,
"N 3");