Changeset 2083

Show
Ignore:
Timestamp:
05/19/08 04:23:41 (6 months ago)
Author:
rporter
Message:

trunk/source/iso_create.cpp - slight changes to lifetimes, branching ratios, and cascade probabilities. Only affects case B, prevents underflow reported by Peter, and still gets effective branching ratios correct.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/source/iso_create.cpp

    r1986 r2083  
    331331                                        StatesElem[ipISO][nelem][ipHi].lifetime = SMALLFLOAT; 
    332332                                         
    333                                         long ipLoStart = 0; 
    334                                         if( opac.lgCaseB && L_(ipHi)==1 && (ipISO==ipH_LIKE || S_(ipHi)==1) ) 
    335                                                 ipLoStart = 1; 
    336  
    337                                         for( ipLo=ipLoStart; ipLo < ipHi; ipLo++ )   
     333                                        for( ipLo=0; ipLo < ipHi; ipLo++ )   
    338334                                        { 
    339335                                                if( Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul <= iso.SmallA ) 
     
    12721268        for( ipHi=1; ipHi<iso.numLevels_max[ipISO][nelem]; ipHi++ ) 
    12731269        { 
     1270                double SumAs = 0.; 
     1271 
    12741272                /** Cascade probabilities are as defined in Robbins 68, 
    12751273                 * generalized here for cascade probability for any iso sequence.        
     
    12941292                for( ipLo=ipLoStart; ipLo<ipHi; ipLo++ ) 
    12951293                { 
     1294                        SumAs += Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul; 
     1295                } 
     1296 
     1297                for( ipLo=ipLoStart; ipLo<ipHi; ipLo++ ) 
     1298                { 
    12961299                        if( Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul <= iso.SmallA ) 
    12971300                        { 
     
    13031306                        iso.CascadeProb[ipISO][nelem][ipHi][ipLo] = 0.; 
    13041307                        iso.BranchRatio[ipISO][nelem][ipHi][ipLo] =  
    1305                                 Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul * 
    1306                                 StatesElem[ipISO][nelem][ipHi].lifetime; 
     1308                                Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul / SumAs; 
    13071309 
    13081310                        ASSERT( iso.BranchRatio[ipISO][nelem][ipHi][ipLo] <= 1.0000001 ); 
     
    19651967                StatesElem[ipISO][nelem][ipHi].lifetime = SMALLFLOAT; 
    19661968 
    1967                 long ipLoStart=0; 
    1968                 if( opac.lgCaseB && L_(ipHi)==1 && (ipISO==ipH_LIKE || S_(ipHi)==1) ) 
    1969                         ipLoStart=1; 
    1970  
    1971                 for( long ipLo=ipLoStart; ipLo < ipHi; ipLo++ )   
     1969                for( long ipLo=0; ipLo < ipHi; ipLo++ )   
    19721970                { 
    19731971                        if( Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul <= iso.SmallA )