Show
Ignore:
Timestamp:
03/17/08 08:09:50 (10 months ago)
Author:
rporter
Message:

A series of changes aimed at treating line overlap automatically. In iso sequences make PopOpc? use poplo of lower level rather than poplo corresponding to sum of all degenerate levels. TauIn? was being incremented with only single line tau, now total tau at line center. RadiationPressure? is basically just a canning of a dozen or so individual radiation pressure calculations. RadiationPressure?2 has an additional term to squelch pressure in lines that by themselves are optically thin, but lie at optically thick energies, which essentially means PopOpc? is effectively much larger than the case for the line alone because other species are contributing to the opacity. This tends to be most important for HeII 1216 because of the strong overlap with LyA. OI - LyB overlap was done manually, now automatically (but this required a revision to the average OI multiplet energy in levels1.dat. There was a small bug in prt_comment.cpp that caused a false positive on LyA radiation pressure changing by large amount in last iteration.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/source/prt_comment.cpp

    r1789 r1854  
    25432543                if( dense.lgElmtOn[nelem] ) 
    25442544                { 
    2545                         if( Transitions[ipH_LIKE][nelem][3][ipH2p].Emis->TauIn > 0.2 ) 
     2545                        if( Transitions[ipH_LIKE][nelem][ipH3p][ipH2s].Emis->TauIn > 0.2 ) 
    25462546                        { 
    2547                                 differ = fabs(1.-Transitions[ipH_LIKE][nelem][3][ipH2p].Emis->TauIn* 
    2548                                   rt.DoubleTau/Transitions[ipH_LIKE][nelem][3][ipH2p].Emis->TauTot)*100.; 
     2547                                differ = fabs(1.-Transitions[ipH_LIKE][nelem][ipH3p][ipH2s].Emis->TauIn* 
     2548                                  rt.DoubleTau/Transitions[ipH_LIKE][nelem][ipH3p][ipH2s].Emis->TauTot)*100.; 
    25492549 
    25502550                                /* check whether H-alpha optical depth changed by much on last iteration 
    25512551                                 * no tolerance can be finer than autocv, the tolerance on the 
    25522552                                 * iterate to convergence command.  It is 15% */ 
    2553                                 if( ((iterations.lgLastIt && Transitions[ipH_LIKE][nelem][3][ipH2p].Emis->TauIn > 0.8) &&  
     2553                                if( ((iterations.lgLastIt && Transitions[ipH_LIKE][nelem][ipH3p][ipH2s].Emis->TauIn > 0.8) &&  
    25542554                                        differ > 20.) && wind.windv == 0. ) 
    25552555                                { 
     
    25592559                                          elementnames.chElementSym[nelem],  
    25602560                                          nelem+1, differ,  
    2561                                           Transitions[ipH_LIKE][nelem][3][ipH2p].Emis->TauTot ); 
     2561                                          Transitions[ipH_LIKE][nelem][ipH3p][ipH2s].Emis->TauTot ); 
    25622562                                        caunin(chLine); 
    25632563                                        iterations.lgIterAgain = true; 
     
    27172717        /* say if rad pressure caused by la and la optical depth changed too much */ 
    27182718        differ = fabs(1.-Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].Emis->TauIn/ 
    2719           SDIV(Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].Emis->TauTot)*100.); 
     2719          SDIV(Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].Emis->TauTot))*100.; 
    27202720 
    27212721        if( iterations.lgLastIt && (pressure.RadBetaMax > 0.1) &&