Show
Ignore:
Timestamp:
06/11/08 02:41:14 (5 months ago)
Author:
gary
Message:

iso_level.cpp - use difference in ionization / recombination rates in source/sink for exchange with next resolved atoms in next lower ionization stage. At high densities excited states have very large ion/rec rates which cancel one another when level is in LTE. Using the differences is more stable fur such densities.

trivial changes in comments
ion_solver.cpp
iso.h
iso_ionize_recombine.cpp

with this change in iso_level.cpp test suite has following issues:
blr_hizqso.out: crashed
blr_n09_p20_Z20.out: crashed
limit_conserve.out: crashed
all crashes are due to radius_increment finds inconsistent populations
radius_increment.cpp at line number 152

following have asserts thrown;
may be serious, should look at:
orion_hii_pdr - molecular ions changes, esp HeH+

trivial changes;
pdr_coolbb
blr_n13_p18_Z20 - took more iterations per zone
blr_n12_p19 slight change in 1640

known problem unrelated to this:
grains_conserve

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/source/iso_ionize_recombine.cpp

    r1937 r2107  
    241241        } 
    242242 
    243         /* fraction of total recombs due to three body - when most are due to this 
    244          * small changes in temperature can produce large changes in rec coef, 
     243        /* fraction of total recombinations due to three body - when most are due to this 
     244         * small changes in temperature can produce large changes in recombination coefficient, 
    245245         * and so in ionization */ 
    246246        iso.RecomCollisFrac[ipISO][nelem] = Recom3Body* dense.eden / ionbal.RateRecomTot[nelem][nelem-ipISO]; 
    247247 
    248         /* get simple estimate of level of ionization */ 
     248        /* get simple estimate of atom to ion ratio */ 
    249249        if( ionbal.RateRecomTot[nelem][nelem-ipISO] > 0. ) 
    250250        {