Show
Ignore:
Timestamp:
03/22/08 04:44:42 (10 months ago)
Author:
rporter
Message:

trunk/source/helike_einsta.cpp - change treatment for he-like deltan=0 yrare Auls. These were largely overpredicted. It has little effect on low-lying lines, but caused unphysically large masers in models with moderately large number of levels are strong radiation field. It also seems to have been the cause of the problem I've been having with high turbulence models. Six test suite asserts were adjusted, including those in close.txt.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/source/helike_einsta.cpp

    r1856 r1875  
    663663                        { 
    664664                                /* Do same-n transitions. */ 
    665                                 if( nLo == nHi ) 
     665                                if( nLo==nHi && lHi<=2 && lLo<=2 ) 
    666666                                { 
    667667                                        /* These are 2p3Pj to 2s3S fits to (low Z) Porquet & Dubau (2000) &  
     
    708708                                                        Aul = 6.646E7 * pow((double)nelem,1.5) / pow((double)nHi, 5.077); 
    709709                                                } 
    710                                                 else /*if( (lHi == 2) && (sHi == 3)  && (lLo == 1) ) */ 
     710                                                else  
    711711                                                { 
     712                                                        ASSERT( (lHi == 2) && (sHi == 3)  && (lLo == 1) ); 
    712713                                                        Aul = 3.9E6 * pow((double)nelem,1.6) / pow((double)nHi, 4.9); 
    713714                                                        if( (lHi >2) || (lLo > 2) ) 
     
    721722 
    722723                                /* assume transitions involving F and higher orbitals are hydrogenic.   */ 
    723                                 else if( ((lHi > 2) || (lLo > 2)) ) 
     724                                else if( (nHi > nLo) && ((lHi > 2) || (lLo > 2)) ) 
    724725                                { 
    725                                         ASSERT( nHi > nLo ); 
    726726                                        /*lint -e790 integral to float */ 
    727727                                        Aul = H_Einstein_A(nHi ,lHi , nLo , lLo , nelem);