Changeset 2153

Show
Ignore:
Timestamp:
07/04/08 02:36:14 (5 months ago)
Author:
gary
Message:

revert changes in last rev

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/source/radius_increment.cpp

    r2151 r2153  
    186186                { 
    187187                        fprintf( ioQQQ, "%6ld%10.2e%10.2e%10.2e", i, rfield.anu[i],  
    188                           rfield.flux[0][i] + rfield.outlin[0][i] + rfield.ConInterOut[i],  
     188                          rfield.flux[i] + rfield.outlin[i] + rfield.ConInterOut[i],  
    189189                          rfield.otscon[i] + rfield.otslin[i] + rfield.outlin_noplot[i]); 
    190190                } 
     
    202202        for( i=0; i < rfield.nflux; i++ ) 
    203203        { 
    204                 if( rfield.flux[0][i] < 0. ) 
     204                if( rfield.flux[i] < 0. ) 
    205205                { 
    206206                        fprintf( ioQQQ, " radius_increment finds negative intensity in flux.\n" ); 
    207207                        fprintf( ioQQQ, " Intensity, frequency, pointer=%11.3e%11.3e%6ld\n",  
    208                           rfield.flux[0][i], rfield.anu[i], i ); 
     208                          rfield.flux[i], rfield.anu[i], i ); 
    209209                        lgFlxNeg = true; 
    210210                } 
     
    230230                        lgFlxNeg = true; 
    231231                } 
    232                 if( rfield.outlin[0][i] < 0. ) 
     232                if( rfield.outlin[i] < 0. ) 
    233233                { 
    234234                        fprintf( ioQQQ, " radius_increment finds negative intensity in outlin.\n" ); 
    235235                        fprintf( ioQQQ, " Intensity, frequency, pointer=%11.3e%11.3e%6ld %4.4s\n",  
    236                           rfield.outlin[0][i], rfield.anu[i], i, rfield.chLineLabel[i]  ); 
     236                          rfield.outlin[i], rfield.anu[i], i, rfield.chLineLabel[i]  ); 
    237237                        lgFlxNeg = true; 
    238238                } 
     
    346346                 * drNext was set by NEXTDR and will be next dr */ 
    347347                /* compute both total and Thomson scat rad acceleration */ 
    348                 rforce += (rfield.flux[0][i] + rfield.outlin[0][i] + rfield.outlin_noplot[i]+  
     348                rforce += (rfield.flux[i] + rfield.outlin[i] + rfield.outlin_noplot[i]+  
    349349                        rfield.ConInterOut[i])* rfield.anu[i]*(opac.opacity_abs[i] +  
    350350                  opac.opacity_sct[i]); 
    351351 
    352                 relec += ((rfield.flux[0][i] + rfield.outlin[0][i] + rfield.outlin_noplot[i]+  
     352                relec += ((rfield.flux[i] + rfield.outlin[i] + rfield.outlin_noplot[i]+  
    353353                        rfield.ConInterOut[i])* escatc)*rfield.anu[i]; 
    354354 
     
    383383                rfield.flux_beam_time[i] *= (realnum)opfac; 
    384384                rfield.flux_isotropic[i] *= (realnum)opfac; 
    385                 rfield.flux[0][i] = rfield.flux_beam_const[i] + rfield.flux_beam_time[i] + 
     385                rfield.flux[i] = rfield.flux_beam_const[i] + rfield.flux_beam_time[i] + 
    386386                        rfield.flux_isotropic[i]; 
    387387 
    388388                /* update SummedCon here since flux changed */ 
    389                 rfield.SummedCon[i] = rfield.flux[0][i] + rfield.SummedDif[i]; 
     389                rfield.SummedCon[i] = rfield.flux[i] + rfield.SummedDif[i]; 
    390390 
    391391                /* outward lines and continua */ 
    392392                rfield.ConInterOut[i] *= (realnum)opfac; 
    393                 rfield.outlin[0][i] *= (realnum)opfac; 
     393                rfield.outlin[i] *= (realnum)opfac; 
    394394                rfield.outlin_noplot[i] *= (realnum)opfac; 
    395395 
    396                 rfield.ConEmitOut[0][i] *= (realnum)opfac; 
    397                 rfield.ConEmitOut[0][i] += rfield.ConEmitLocal[nzone][i]*(realnum)radius.dVolOutwrd*opac.tmn[i]/**/; 
     396                rfield.ConEmitOut[i] *= (realnum)opfac; 
     397                rfield.ConEmitOut[i] += rfield.ConEmitLocal[nzone][i]*(realnum)radius.dVolOutwrd*opac.tmn[i]/**/; 
    398398 
    399399                /* set occupation numbers, first attenuated incident continuum */ 
    400                 rfield.OccNumbIncidCont[i] = rfield.flux[0][i]*rfield.convoc[i]; 
     400                rfield.OccNumbIncidCont[i] = rfield.flux[i]*rfield.convoc[i]; 
    401401 
    402402                /* >>chng 00 oct 03, add diffuse continua */ 
     
    405405 
    406406                /* >>chng 05 feb 16, occupation number of outward diffuse continuum */ 
    407                 rfield.OccNumbContEmitOut[i] = rfield.ConEmitOut[0][i]*rfield.convoc[i]; 
     407                rfield.OccNumbContEmitOut[i] = rfield.ConEmitOut[i]*rfield.convoc[i]; 
    408408        } 
    409409 
     
    416416        /* >>chng 02 dec 05, add test for small float, protect against models  
    417417         * where we have gone below smallfloat, and so float is ragged */ 
    418         if( rfield.flux[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]>SMALLFLOAT && 
    419                 (rfield.flux[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]/ 
    420                 SDIV(rfield.flux_total_incident[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]) ) > SMALLFLOAT &&  
     418        if( rfield.flux[iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]>SMALLFLOAT && 
     419                (rfield.flux[iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]/ 
     420                SDIV(rfield.flux_total_incident[iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]) ) > SMALLFLOAT &&  
    421421                !opac.lgScatON && 
    422422                radius.depth/radius.Radius < 1e-4 ) 
     
    427427                 * and here convert to double. 
    428428                 * error found by Peter van Hoof */ 
    429                 double tau_effec = -log((double)rfield.flux[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]/ 
     429                double tau_effec = -log((double)rfield.flux[iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]/ 
    430430                        (double)opac.tmn[iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]/ 
    431                         (double)rfield.flux_total_incident[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]); 
     431                        (double)rfield.flux_total_incident[iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][0]-1]); 
    432432 
    433433                /* this is computed absorption optical depth to illuminated face */ 
     
    472472                        rfield.flux_beam_time[i] *= (realnum)opfac; 
    473473                        rfield.flux_isotropic[i] *= (realnum)opfac; 
    474                         rfield.flux[0][i] = rfield.flux_beam_const[i] + rfield.flux_beam_time[i] + 
     474                        rfield.flux[i] = rfield.flux_beam_const[i] + rfield.flux_beam_time[i] + 
    475475                                rfield.flux_isotropic[i]; 
    476476 
    477477                        rfield.ConInterOut[i] *= (realnum)opfac; 
    478                         rfield.ConEmitOut[0][i] *= (realnum)opfac; 
    479                         rfield.outlin[0][i] *= (realnum)opfac; 
     478                        rfield.ConEmitOut[i] *= (realnum)opfac; 
     479                        rfield.outlin[i] *= (realnum)opfac; 
    480480                        rfield.outlin_noplot[i] *= (realnum)opfac; 
    481481                } 
     
    485485        cmshft(); 
    486486 
     487        relec *= EN1RYD; 
     488 
     489#       if 0 
     490        /* this is all evaluated in pressure_total */ 
     491        /* radiative acceleration; xMassDensity is gm per cc, evaluated when PTOT called */ 
     492        t = 1./SPEEDLIGHT/dense.xMassDensity; 
     493        /* >>chng 03 feb 01, lgLineRadPresOn was missing */ 
     494        wind.AccelLine = (realnum)(RT_line_driving()*t)*pressure.lgLineRadPresOn; 
     495        /* >>chng 01 aug 03, add lgConPress to kill AccelCont here */ 
     496        wind.AccelCont = (realnum)(rforce*EN1RYD*t)*pressure.lgContRadPresOn; 
     497        /* this is numerically unstable */ 
     498        wind.AccelPres = 0.; 
     499        /* total acceleration */ 
     500        wind.AccelTot = wind.AccelCont + wind.AccelLine + wind.AccelPres; 
     501#       endif 
    487502        /* remember the largest value */ 
    488503        wind.AccelMax = (realnum)MAX2(wind.AccelMax,wind.AccelTot); 
    489504 
    490         /* force multiplier; relec can be zero for very low densities - so use double 
    491          * form of safe_div - fmul is of order unity - wind.AccelLine and wind.AccelCont  
    492          * are both floats to will underflow long before relec will - fmul is only use 
    493          * in output, not in any physics */ 
    494         relec *= (EN1RYD/SPEEDLIGHT/dense.xMassDensity); 
    495         wind.fmul = (realnum)safe_div( (double)(wind.AccelLine + wind.AccelCont) ,  
    496                 relec ); 
     505        /* force multiplier; RELEC*T can be zero for very low densities */ 
     506        if( relec*t > SMALLFLOAT ) 
     507        { 
     508                wind.fmul = (realnum)((wind.AccelLine + wind.AccelCont)/(relec*t)); 
     509        } 
     510        else 
     511        { 
     512                wind.fmul = 0.; 
     513        } 
    497514 
    498515        /* keep track of average acceleration */ 
     
    541558 
    542559                                /* ConEmitReflec - reflected diffuse continuum */ 
    543                                 rfield.ConEmitReflec[0][i] += (realnum)(Reflec_Diffuse_Cont); 
     560                                rfield.ConEmitReflec[i] += (realnum)(Reflec_Diffuse_Cont); 
    544561 
    545562                                /* the reflected part of the incident continuum */ 
    546                                 rfield.ConRefIncid[0][i] += (realnum)(rfield.flux[0][i]*opac.opacity_sct[i]* 
     563                                rfield.ConRefIncid[i] += (realnum)(rfield.flux[i]*opac.opacity_sct[i]* 
    547564                                  radius.drad_x_fillfac*opac.E2TauAbsFace[i]*radius.r1r0sq); 
    548565 
    549566                                /* reflected line emission */ 
    550                                 rfield.reflin[0][i] += (realnum)(rfield.outlin[0][i]*opac.opacity_sct[i]* 
     567                                rfield.reflin[i] += (realnum)(rfield.outlin[i]*opac.opacity_sct[i]* 
    551568                                  radius.drad_x_fillfac*opac.E2TauAbsFace[i]*radius.r1r0sq); 
    552569                        }