22 long int atomic_number,
24 long int ionic_charge,
33 const double A = 12.4479;
34 const double mu = 0.46665;
35 const double w = 4.96916;
36 const double y_c0 = 0.5498;
41 const double T_0 = 1.e5;
42 const double q_0 = 3.;
50 double s, snew, y_c, E_c, E_c0, x, g_x;
51 long int iso_sequence;
54 iso_sequence = atomic_number - ionic_charge;
56 y_c = y_c0 + log10( pow( (ionic_charge/q_0), 7. ) * sqrt( T/T_0 ) );
61 s = (A/(
PI*w)) * ( mu/( 1. + pow((eden-y_c)/w, 2.) ) +
63 pow((eden-y_c)/w, 2.) ) );
67 s = (A/(
PI*w)) * ( mu + (1.- mu) * sqrt(
PI*
LN_TWO) );
79 if( iso_sequence == 3 )
81 E_c = 2.08338 + 19.1356*(ionic_charge/10.) + 0.974 *
82 pow( ionic_charge/10., 2. ) - 0.309032*pow( ionic_charge/10., 3. ) +
83 0.419951*pow( ionic_charge/10., 4. );
85 else if( iso_sequence == 4 )
87 E_c = 5.56828 + 34.6774*(ionic_charge/10.) + 1.005 *
88 pow( ionic_charge/10., 2. ) - 0.994177*pow( ionic_charge/10., 3. ) +
89 0.726053*pow( ionic_charge/10., 4. );
91 else if( iso_sequence == 7 )
93 E_c = 10.88361 + 39.7851*(ionic_charge/10.) + 0.423 *
94 pow( ionic_charge/10., 2. ) - 0.310368*pow( ionic_charge/10., 3. ) +
95 0.937186*pow( ionic_charge/10., 4. );
97 else if( iso_sequence == 11 )
99 E_c = 2.17262 + 22.5038*(ionic_charge/10.) - 1.227*pow( ionic_charge/10., 2. ) +
100 0.801291*pow( ionic_charge/10., 3. ) +
101 0.0434168*pow( ionic_charge/10., 4. );
103 else if( iso_sequence == 1 || iso_sequence == 2 || iso_sequence == 10 )
118 E_c0 = 2.08338 + 19.1356*(q_0/10.) + 0.974 *
119 pow( (q_0/10.), 2. ) - 0.309032 *
120 pow( (q_0/10.), 3. ) + 0.419951 *
121 pow( (q_0/10.), 4. );
130 else if( x >= 0 && x <= 1 )
142 snew = 1. + (s-1.)*exp(-g_x);
145 ASSERT( snew >=0. && snew <= 1. );
158 for( i=0; i <
LIMELM; i++ )
179 for( i=0; i <
LIMELM; i++ )
189 for( i=0; i <
LIMELM; i++ )
197 for( i=0; i <
LIMELM; i++ )
207 fprintf(
punch.
ioRecom,
" atmdat_DielSupres finds following dielectronic"
208 " recom suppression factors.\n" );
210 for( i=0; i <
LIMELM; i++ )