Show
Ignore:
Timestamp:
03/09/08 10:35:33 (9 months ago)
Author:
rjrw
Message:

Move molecular source and sink copy to mole_effects routine.

Increase tolerance for negative density solutions somewhat.

Location:
branches/newmole/source
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • branches/newmole/source/ion_solver.cpp

    r1805 r1835  
    6666        if ( abund_total < 0  )  
    6767        { 
    68                 if (abund_total < -10.0*FLT_EPSILON*dense.gas_phase[nelem]) 
     68                if (abund_total < -100.0*FLT_EPSILON*dense.gas_phase[nelem]) 
    6969                { 
    7070                        double sum; 
  • branches/newmole/source/mole_drive.cpp

    r1800 r1835  
    250250 
    251251        mole_eval_balance(mole.num_total,b,c);   
     252 
     253        for (long int nelem=ipHYDROGEN;nelem<LIMELM;nelem++) 
     254        { 
     255                for (long int ion=0;ion<N_MOLE_ION;ion++)  
     256                { 
     257                        if (element_list[nelem]->ipMl[ion] != -1) 
     258                        { 
     259                                mole.source[nelem][ion] = mole.zone[element_list[nelem]->ipMl[ion]].src; 
     260                                mole.sink[nelem][ion] = mole.zone[element_list[nelem]->ipMl[ion]].snk; 
     261                                if (dense.IonLow[nelem] > ion) 
     262                                        dense.IonLow[nelem] = ion; 
     263                                if (dense.IonHigh[nelem] < ion) 
     264                                        dense.IonHigh[nelem] = ion;                                      
     265                        } 
     266                        else 
     267                        { 
     268                                mole.source[nelem][ion] = 0.0; 
     269                                mole.sink[nelem][ion] = 0.0; 
     270                        } 
     271                } 
     272        } 
    252273 
    253274        co.CODissHeat = (realnum)(mole_findrate("PHOTON,CO=>C,O")*1e-12); 
  • branches/newmole/source/mole_eval_balance.cpp

    r1797 r1835  
    5656                for( ion=0; ion<nelem+2; ++ion ) 
    5757                { 
    58                         /* zero out the source and sink arrays */ 
    59                         mole.source[nelem][ion] = 0.; 
    60                         mole.sink[nelem][ion] = 0.; 
     58                        /* zero out the transfer array */ 
    6159                        for( ion2=0; ion2<nelem+2; ++ion2 ) 
    6260                        { 
  • branches/newmole/source/mole_solve.cpp

    r1770 r1835  
    3939double mole_solve() 
    4040{ 
    41         long int nelem; 
    4241        int nBad, nPrevBad, i; 
    4342        realnum 
     
    121120         
    122121        check_co_ion_converge(); 
    123  
    124         for (nelem=ipHYDROGEN;nelem<LIMELM;nelem++) 
    125         { 
    126                 for (long int ion=0;ion<N_MOLE_ION;ion++)  
    127                 { 
    128                         if (element_list[nelem]->ipMl[ion] != -1) 
    129                         { 
    130                                 mole.source[nelem][ion] = mole.zone[element_list[nelem]->ipMl[ion]].src; 
    131                                 mole.sink[nelem][ion] = mole.zone[element_list[nelem]->ipMl[ion]].snk; 
    132                                 if (dense.IonLow[nelem] > ion) 
    133                                         dense.IonLow[nelem] = ion; 
    134                                 if (dense.IonHigh[nelem] < ion) 
    135                                         dense.IonHigh[nelem] = ion;                                      
    136                         } 
    137                         else 
    138                         { 
    139                                 mole.source[nelem][ion] = 0.0; 
    140                                 mole.sink[nelem][ion] = 0.0; 
    141                         } 
    142                 } 
    143         } 
    144122 
    145123        {