00001
00002
00003
00004
00005 #include "cddefines.h"
00006 #include "dense.h"
00007 #include "elementnames.h"
00008 #include "physconst.h"
00009 #include "mole.h"
00010 #include "trace.h"
00011 #include "radius.h"
00012 #include "thermal.h"
00013 #include "heavy.h"
00014 #include "wind.h"
00015 #include "init.h"
00016 #include "iso.h"
00017
00018
00019
00020 void InitSimPostparse( void )
00021 {
00022 DEBUG_ENTRY( "InitSimPostparse()" );
00023
00024
00025 thermal.thist = 0.;
00026 thermal.tlowst = 1e20f;
00027 thermal.nUnstable = 0;
00028 thermal.lgUnstable = false;
00029
00030 CO_Init();
00031 CO_zero();
00032
00033
00034 CO_create_react();
00035
00036
00037 for( long nelem=ipHYDROGEN; nelem<LIMELM; ++nelem )
00038 for( long ion=0; ion<=nelem; ++ion )
00039 Heavy.xLyaHeavy[nelem][ion] = 0;
00040
00041
00042 wind.DiskRadius = 0;
00043 if( wind.lgDisk )
00044 wind.DiskRadius = radius.Radius;
00045
00046
00047 wind.AccelGravity = (realnum)(GRAV_CONST*wind.comass*SOLAR_MASS/POW2(radius.Radius)*
00048 (1.-wind.DiskRadius/radius.Radius) );
00049 if( trace.lgTrace && trace.lgWind )
00050 {
00051 fprintf(ioQQQ," InitSimPostparse sets AccelGravity %.3e lgDisk?%c\n",
00052 wind.AccelGravity ,
00053 TorF(wind.lgDisk) );
00054 }
00055
00056
00057 for( long ipISO=ipH_LIKE; ipISO<NISO; ++ipISO )
00058 {
00059 for( long nelem=ipISO; nelem < LIMELM; ++nelem )
00060 {
00061
00062 if( nelem>ipHELIUM && !dense.lgElmtOn[nelem] )
00063 {
00064 iso.numLevels_max[ipISO][nelem] = 0;
00065 iso.nCollapsed_max[ipISO][nelem] = 0;
00066 iso.n_HighestResolved_max[ipISO][nelem] = 0;
00067
00068 iso.numLevels_local[ipISO][nelem] = 0;
00069 iso.nCollapsed_local[ipISO][nelem] = 0;
00070 iso.n_HighestResolved_local[ipISO][nelem] = 0;
00071 }
00072 else
00073 {
00074 iso_update_num_levels( ipISO, nelem );
00075
00076 ASSERT( iso.nCollapsed_max[ipISO][nelem] > 0 || iso.lgCompileRecomb[ipISO] );
00077 }
00078 }
00079 }
00080
00081 if( iso.lgPrintNumberOfLevels )
00082 {
00083 fprintf(ioQQQ,"\n\n Number of levels in ions treated by iso sequences.\n");
00084 fprintf(ioQQQ," ISO Element hi-n(l-resolved) #(l-resolved) n(collapsed)\n");
00085
00086 for( long ipISO=ipH_LIKE; ipISO<NISO; ++ipISO )
00087 {
00088 for( long nelem=ipISO; nelem<LIMELM; ++nelem )
00089 {
00090
00091 fprintf(ioQQQ," %s %s %4li %4li %4li \n",
00092 iso.chISO[ipISO] ,
00093 elementnames.chElementSym[nelem],
00094 iso.n_HighestResolved_max[ipISO][nelem],
00095 iso.numLevels_max[ipISO][nelem]-iso.nCollapsed_max[ipISO][nelem],
00096 iso.nCollapsed_max[ipISO][nelem]);
00097 }
00098 }
00099 }
00100
00101 return;
00102 }