00001
00002
00003
00004 #include "cddefines.h"
00005 #include "ionbal.h"
00006 #include "dense.h"
00007 #include "phycon.h"
00008 #include "punch.h"
00009 #include "atmdat.h"
00010
00011 void atmdat_DielSupres(void)
00012 {
00013 long int i;
00014 double effden;
00015
00016 DEBUG_ENTRY( "atmdat_DielSupres()" );
00017
00018
00019
00020 if( ionbal.lgSupDie[0] )
00021 {
00022 for( i=0; i < LIMELM; i++ )
00023 {
00024
00025
00026 effden = dense.eden/(phycon.sqrte/122.47);
00027
00028
00029 effden /= powi((float)(i+1)/3.,7);
00030
00031 ionbal.DielSupprs[0][i] = (float)(1.-0.092*log10(effden));
00032 ionbal.DielSupprs[0][i] = (float)MIN2(1.,ionbal.DielSupprs[0][i]);
00033 ionbal.DielSupprs[0][i] = (float)MAX2(0.08,ionbal.DielSupprs[0][i]);
00034 }
00035 }
00036
00037 else
00038 {
00039 for( i=0; i < LIMELM; i++ )
00040 {
00041 ionbal.DielSupprs[0][i] = 1.;
00042 }
00043 }
00044
00045
00046
00047 if( ionbal.lgSupDie[1] )
00048 {
00049 for( i=0; i < LIMELM; i++ )
00050 {
00051
00052 ionbal.DielSupprs[1][i] = ionbal.DielSupprs[0][i];
00053 }
00054 }
00055 else
00056 {
00057 for( i=0; i < LIMELM; i++ )
00058 {
00059 ionbal.DielSupprs[1][i] = 1.;
00060 }
00061 }
00062
00063
00064 if( punch.lgioRecom )
00065 {
00066 fprintf( punch.ioRecom, " atmdat_DielSupres finds following dielectronic recom suppression factors.\n" );
00067 fprintf( punch.ioRecom, " Z fac \n" );
00068 for( i=0; i < LIMELM; i++ )
00069 {
00070 fprintf( punch.ioRecom, "%3ld %10.3e %10.3e\n", i+1,
00071 ionbal.DielSupprs[0][i], ionbal.DielSupprs[1][i] );
00072 }
00073 fprintf( punch.ioRecom, "\n");
00074 }
00075
00076
00077 DEBUG_EXIT( "atmdat_DielSupres()" );
00078 return;
00079 }
00080