Changeset 1712 for branches/newmole/source
- Timestamp:
- 12/22/07 06:26:02 (11 months ago)
- Location:
- branches/newmole/source
- Files:
-
- 6 modified
-
dense.cpp (modified) (2 diffs)
-
mole_eval_balance.cpp (modified) (2 diffs)
-
mole_h2_io.cpp (modified) (2 diffs)
-
mole_newton_step.cpp (modified) (1 diff)
-
mole_solve.cpp (modified) (3 diffs)
-
mole_species.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/newmole/source/dense.cpp
r1680 r1712 18 18 /* this sum of over the molecules did not include the atom and first 19 19 * ion that is calculated in the molecular solver */ 20 double sum = dense.xMolecules[nelem];20 double sum = 0.; 21 21 for( ion=0; ion<nelem+2; ++ion ) 22 22 { 23 23 sum += dense.xIonDense[nelem][ion]; 24 24 } 25 if (sum <= SMALLFLOAT && dense.gas_phase[nelem] > SMALLFLOAT) 25 if (sum+dense.xMolecules[nelem] <= SMALLFLOAT && 26 dense.gas_phase[nelem] > SMALLFLOAT) 26 27 { 27 fprintf(ioQQQ,"Problem total density %g of %g nelem %ld(%s)\n", 28 sum,dense.gas_phase[nelem],nelem, 28 fprintf(ioQQQ,"Problem ions %g moles %g error %g of %g nelem %ld(%s)\n", 29 sum,dense.xMolecules[nelem], 30 sum+dense.xMolecules[nelem]-dense.gas_phase[nelem], 31 dense.gas_phase[nelem],nelem, 29 32 elementnames.chElementSym[nelem]); 30 33 lgOK=false; … … 41 44 /* >>chng 04 jul 23, needed to increase to 2e-2 from 1e-2 to get conserve.in to work, 42 45 * not clear what caused increase in error */ 43 if( fabs(sum-dense.gas_phase[nelem])/sum > 2e-5 ) 46 if( fabs(sum+dense.xMolecules[nelem]-dense.gas_phase[nelem]) > 47 2e-5*dense.gas_phase[nelem] ) 44 48 { 49 fprintf(ioQQQ,"Problem ions %g moles %g error %g of %g nelem %ld(%s)\n", 50 sum,dense.xMolecules[nelem], 51 sum+dense.xMolecules[nelem]-dense.gas_phase[nelem], 52 dense.gas_phase[nelem],nelem, 53 elementnames.chElementSym[nelem]); 45 54 fprintf(ioQQQ,"DEBUG non-conv nelem\t%li\tsum\t%e\ttot gas\t%e\trel err\t%.3e\n", 46 55 nelem, -
branches/newmole/source/mole_eval_balance.cpp
r1693 r1712 29 29 /*=================================================================*/ 30 30 31 #define FABSSWITCH(a) (a)32 33 31 void mole_eval_balance(long int num_total, double *b, double **c) 34 32 { … … 91 89 if(i!=j) 92 90 { 93 rate_deriv[i] *= FABSSWITCH(rate->reactants[j]->hevmol);94 } 95 } 96 } 97 98 rate_tot = rate_deriv[0]* FABSSWITCH(rate->reactants[0]->hevmol);91 rate_deriv[i] *= rate->reactants[j]->hevmol; 92 } 93 } 94 } 95 96 rate_tot = rate_deriv[0]*rate->reactants[0]->hevmol; 99 97 100 98 for(i=0;i<rate->nreactants;i++) -
branches/newmole/source/mole_h2_io.cpp
r1701 r1712 1818 1818 mole_findrate("H2,OH=>H2O,H") / hmi.H2_rate_destroy / hmi.H2_total, 1819 1819 mole_findrate("H2,O=>OH,H") / hmi.H2_rate_destroy / hmi.H2_total, 1820 mole_findrate("H2*,CH=>CH2,H") *hmi.lgLeiden_Keep_ipMH2s/ hmi.H2_rate_destroy / hmi.H2_total,1821 mole_findrate("H2*,O=>OH,H") *hmi.lgLeiden_Keep_ipMH2s/ hmi.H2_rate_destroy / hmi.H2_total,1822 mole_findrate("H2*,OH=>H2O,H") *hmi.lgLeiden_Keep_ipMH2s/ hmi.H2_rate_destroy / hmi.H2_total,1823 mole_findrate("H2*,C=>CH,H") *hmi.lgLeiden_Keep_ipMH2s/ hmi.H2_rate_destroy / hmi.H2_total,1824 mole_findrate("H2*,C+=>CH+,H") *hmi.lgLeiden_Keep_ipMH2s/ hmi.H2_rate_destroy / hmi.H2_total,1820 mole_findrate("H2*,CH=>CH2,H") / hmi.H2_rate_destroy / hmi.H2_total, 1821 mole_findrate("H2*,O=>OH,H") / hmi.H2_rate_destroy / hmi.H2_total, 1822 mole_findrate("H2*,OH=>H2O,H") / hmi.H2_rate_destroy / hmi.H2_total, 1823 mole_findrate("H2*,C=>CH,H") / hmi.H2_rate_destroy / hmi.H2_total, 1824 mole_findrate("H2*,C+=>CH+,H") / hmi.H2_rate_destroy / hmi.H2_total, 1825 1825 mole_findrate("H2,CH2=>CH3,H") / hmi.H2_rate_destroy / hmi.H2_total, 1826 1826 mole_findrate("H2,CH3=>CH4,H") / hmi.H2_rate_destroy / hmi.H2_total, 1827 1827 mole_findrate("H2,CH4+=>CH5+,H") / hmi.H2_rate_destroy / hmi.H2_total, 1828 mole_findrate("H2*,CH2=>CH3,H") *hmi.lgLeiden_Keep_ipMH2s/ hmi.H2_rate_destroy / hmi.H2_total,1829 mole_findrate("H2*,CH3=>CH4,H") *hmi.lgLeiden_Keep_ipMH2s/ hmi.H2_rate_destroy / hmi.H2_total,1828 mole_findrate("H2*,CH2=>CH3,H") / hmi.H2_rate_destroy / hmi.H2_total, 1829 mole_findrate("H2*,CH3=>CH4,H") / hmi.H2_rate_destroy / hmi.H2_total, 1830 1830 mole_findrate("H2*,O+=>OH+,H") / hmi.H2_rate_destroy / hmi.H2_total, 1831 1831 /*heavy elements*/ … … 1846 1846 mole_findrate("H2,HCN+=>HCNH+,H") / hmi.H2_rate_destroy / hmi.H2_total 1847 1847 ); 1848 1849 if (hmi.lgLeiden_Keep_ipMH2s == false) 1850 ASSERT(mole_findrate("H2*,CH=>CH2,H") == 0 && 1851 mole_findrate("H2*,O=>OH,H") == 0 && 1852 mole_findrate("H2*,OH=>H2O,H") == 0 && 1853 mole_findrate("H2*,C=>CH,H") == 0 && 1854 mole_findrate("H2*,C+=>CH+,H") == 0 && 1855 mole_findrate("H2*,CH2=>CH3,H") == 0 && 1856 mole_findrate("H2*,CH3=>CH4,H") == 0 && 1857 mole_findrate("H2*,O+=>OH+,H") == 0 ); 1848 1858 fprintf(io,"\t%.4e\t%.4e\n", 1849 1859 /*H2g/Htot, H2s/Htot chemical network and from big molecule model*/ -
branches/newmole/source/mole_newton_step.cpp
r1706 r1712 491 491 *error = (realnum) MIN2(error0,1e30); 492 492 493 mole_return_cached_species();494 495 493 return; 496 494 } -
branches/newmole/source/mole_solve.cpp
r1706 r1712 91 91 92 92 //fprintf(stdout,"Mole zone %ld -- %7.2f loop %d error %15.8g nBad %d\n",nzone,fnzone,i,error,nBad); 93 94 { 95 /* option to print deduced abundances */ 96 /*@-redef@*/ 97 enum {DEBUG_LOC=false}; 98 /*@+redef@*/ 99 if( DEBUG_LOC /*&& (nzone>68)*/ ) 100 { 101 fprintf(ioQQQ,"DEBUG mole out\t%i\t%.2f\t%.5e\t%.5e", 102 i, 103 fnzone, 104 phycon.te, 105 dense.eden); 106 fprintf(ioQQQ, 107 "\terror\t%.4e\tH0\t%.4e\tH+\t%.4e\tsink\t%.4e\t%.4e\tsour\t%.4e\t%.4e\tion\t%.4e\trec\t%.4e", 108 error, 109 dense.xIonDense[ipHYDROGEN][0], 110 dense.xIonDense[ipHYDROGEN][1], 111 mole.sink[ipHYDROGEN][0], 112 mole.sink[ipHYDROGEN][1], 113 mole.source[ipHYDROGEN][0] , 114 mole.source[ipHYDROGEN][1] , 115 ionbal.RateIonizTot[ipHYDROGEN][0], 116 ionbal.RateRecomTot[ipHYDROGEN][0]); 117 118 /*for( j=0; j<mole.num_calc; j++ ) 119 fprintf(ioQQQ,"\t%.4e", HMOLEC(j) );*/ 120 fprintf(ioQQQ,"\n" ); 121 } 122 } 123 93 124 94 if (error < BIGERROR && nBad == 0 && nPrevBad == 0) /* Stop early if good enough */ 125 95 break; … … 144 114 } 145 115 146 ASSERT(lgElemsConserved());147 116 mole_return_cached_species(); 117 148 118 check_co_ion_converge(); 149 119 … … 169 139 } 170 140 141 { 142 /* option to print deduced abundances */ 143 /*@-redef@*/ 144 enum {DEBUG_LOC=false}; 145 /*@+redef@*/ 146 if( DEBUG_LOC /*&& (nzone>68)*/ ) 147 { 148 fprintf(ioQQQ,"DEBUG mole out\t%i\t%.2f\t%.5e\t%.5e", 149 i, 150 fnzone, 151 phycon.te, 152 dense.eden); 153 fprintf(ioQQQ, 154 "\terror\t%.4e\tH0\t%.4e\tH+\t%.4e\tsink\t%.4e\t%.4e\tsour\t%.4e\t%.4e\tion\t%.4e\trec\t%.4e", 155 error, 156 dense.xIonDense[ipHYDROGEN][0], 157 dense.xIonDense[ipHYDROGEN][1], 158 mole.sink[ipHYDROGEN][0], 159 mole.sink[ipHYDROGEN][1], 160 mole.source[ipHYDROGEN][0] , 161 mole.source[ipHYDROGEN][1] , 162 ionbal.RateIonizTot[ipHYDROGEN][0], 163 ionbal.RateRecomTot[ipHYDROGEN][0]); 164 165 /*for( j=0; j<mole.num_calc; j++ ) 166 fprintf(ioQQQ,"\t%.4e", HMOLEC(j) );*/ 167 fprintf(ioQQQ,"\n" ); 168 } 169 } 170 171 171 return error; 172 172 -
branches/newmole/source/mole_species.cpp
r1706 r1712 212 212 sp = newspecies("H2Ogrn",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, -238.9f); 213 213 sp = newspecies("OHgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 38.4f); 214 sp = newspecies("Cgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 711.2f); 215 sp = newspecies("Ogrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 246.8f); 216 sp = newspecies("Ngrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 470.8f); 217 sp = newspecies("Sgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 274.7f); 218 sp = newspecies("Hgrn ",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 216.0f); 219 sp = newspecies("Sigrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 446.0f); 220 sp = newspecies("SiHgrn",MOLECULE,MOLE_ACTIVE,NULL,1.80e-14, 374.9f); 221 sp = newspecies("SiOgrn",MOLECULE,MOLE_ACTIVE,NULL,3.89e-14, -101.6f); 222 sp = newspecies("CHgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.10e-06, 592.5f); 223 sp = newspecies("O2grn ",MOLECULE,MOLE_ACTIVE,NULL,1.91e-07, 0.0f); 224 sp = newspecies("CH2grn",MOLECULE,MOLE_ACTIVE,NULL,8.59e-13, 390.0f); 225 sp = newspecies("CH3grn",MOLECULE,MOLE_ACTIVE,NULL,4.59e-19, 149.0f); 226 sp = newspecies("CH4grn",MOLECULE,MOLE_ACTIVE,NULL,9.12e-28, -66.8f); 227 sp = newspecies("N2grn ",MOLECULE,MOLE_ACTIVE,NULL,2.46e-17, 0.0f); 228 sp = newspecies("NOgrn ",MOLECULE,MOLE_ACTIVE,NULL,5.99e-12, 89.8f); 229 sp = newspecies("S2grn ",MOLECULE,MOLE_ACTIVE,NULL,1.21e-11, 128.3f); 230 sp = newspecies("OCNgrn",MOLECULE,MOLE_ACTIVE,NULL,3.86e-11, 556.0f); 231 sp = newspecies("NHgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.30e-09, 376.5f); 232 sp = newspecies("NH2grn",MOLECULE,MOLE_ACTIVE,NULL,6.78e-20, 191.6f); 233 sp = newspecies("NH3grn",MOLECULE,MOLE_ACTIVE,NULL,1.25e-29, -38.9f); 234 sp = newspecies("CNgrn ",MOLECULE,MOLE_ACTIVE,NULL,3.38e-11, 436.8f); 235 sp = newspecies("HCNgrn",MOLECULE,MOLE_ACTIVE,NULL,1.07e-17, 135.5f); 236 sp = newspecies("HNOgrn",MOLECULE,MOLE_ACTIVE,NULL,9.09e-21, 100.0f); 237 sp = newspecies("HSgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.71e-14, 136.5f); 238 sp = newspecies("CSgrn ",MOLECULE,MOLE_ACTIVE,NULL,6.69e-18, 277.1f); 239 sp = newspecies("NSgrn ",MOLECULE,MOLE_ACTIVE,NULL,3.12e-11, 263.0f); 240 sp = newspecies("SOgrn ",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 5.0f); 241 sp = newspecies("OCSgrn",MOLECULE,MOLE_ACTIVE,NULL,8.83e-24, -142.0f); 242 sp = newspecies("HNCgrn",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 201.0f); 243 sp = newspecies("C2grn ",MOLECULE,MOLE_ACTIVE,NULL,3.71e-09, 817.0f); 244 sp = newspecies("C2Hgrn",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 560.0f); 245 sp = newspecies("C3grn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 831.0f); 246 sp = newspecies("C3Hgrn",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 602.5f); 247 sp = newspecies("H2grn ",MOLECULE,MOLE_ACTIVE,NULL,4.00E-08, 0.0f); 214 if (0) 215 { 216 sp = newspecies("Cgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 711.2f); 217 sp = newspecies("Ogrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 246.8f); 218 sp = newspecies("Ngrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 470.8f); 219 sp = newspecies("Sgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 274.7f); 220 sp = newspecies("Hgrn ",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 216.0f); 221 sp = newspecies("Sigrn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 446.0f); 222 sp = newspecies("SiHgrn",MOLECULE,MOLE_ACTIVE,NULL,1.80e-14, 374.9f); 223 sp = newspecies("SiOgrn",MOLECULE,MOLE_ACTIVE,NULL,3.89e-14, -101.6f); 224 sp = newspecies("CHgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.10e-06, 592.5f); 225 sp = newspecies("O2grn ",MOLECULE,MOLE_ACTIVE,NULL,1.91e-07, 0.0f); 226 sp = newspecies("CH2grn",MOLECULE,MOLE_ACTIVE,NULL,8.59e-13, 390.0f); 227 sp = newspecies("CH3grn",MOLECULE,MOLE_ACTIVE,NULL,4.59e-19, 149.0f); 228 sp = newspecies("CH4grn",MOLECULE,MOLE_ACTIVE,NULL,9.12e-28, -66.8f); 229 sp = newspecies("N2grn ",MOLECULE,MOLE_ACTIVE,NULL,2.46e-17, 0.0f); 230 sp = newspecies("NOgrn ",MOLECULE,MOLE_ACTIVE,NULL,5.99e-12, 89.8f); 231 sp = newspecies("S2grn ",MOLECULE,MOLE_ACTIVE,NULL,1.21e-11, 128.3f); 232 sp = newspecies("OCNgrn",MOLECULE,MOLE_ACTIVE,NULL,3.86e-11, 556.0f); 233 sp = newspecies("NHgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.30e-09, 376.5f); 234 sp = newspecies("NH2grn",MOLECULE,MOLE_ACTIVE,NULL,6.78e-20, 191.6f); 235 sp = newspecies("NH3grn",MOLECULE,MOLE_ACTIVE,NULL,1.25e-29, -38.9f); 236 sp = newspecies("CNgrn ",MOLECULE,MOLE_ACTIVE,NULL,3.38e-11, 436.8f); 237 sp = newspecies("HCNgrn",MOLECULE,MOLE_ACTIVE,NULL,1.07e-17, 135.5f); 238 sp = newspecies("HNOgrn",MOLECULE,MOLE_ACTIVE,NULL,9.09e-21, 100.0f); 239 sp = newspecies("HSgrn ",MOLECULE,MOLE_ACTIVE,NULL,1.71e-14, 136.5f); 240 sp = newspecies("CSgrn ",MOLECULE,MOLE_ACTIVE,NULL,6.69e-18, 277.1f); 241 sp = newspecies("NSgrn ",MOLECULE,MOLE_ACTIVE,NULL,3.12e-11, 263.0f); 242 sp = newspecies("SOgrn ",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 5.0f); 243 sp = newspecies("OCSgrn",MOLECULE,MOLE_ACTIVE,NULL,8.83e-24, -142.0f); 244 sp = newspecies("HNCgrn",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 201.0f); 245 sp = newspecies("C2grn ",MOLECULE,MOLE_ACTIVE,NULL,3.71e-09, 817.0f); 246 sp = newspecies("C2Hgrn",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 560.0f); 247 sp = newspecies("C3grn ",MOLECULE,MOLE_ACTIVE,NULL,1.00e-15, 831.0f); 248 sp = newspecies("C3Hgrn",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 602.5f); 249 sp = newspecies("H2grn ",MOLECULE,MOLE_ACTIVE,NULL,4.00E-08, 0.0f); 250 } 248 251 } 249 252 sp = newspecies("C2H ",MOLECULE,MOLE_ACTIVE,NULL,4.00e-15, 560.0f);
