Changeset 1708 for branches/newmole/source
- Timestamp:
- 12/21/07 12:00:45 (11 months ago)
- Files:
-
- 1 modified
-
branches/newmole/source/mole_reactions.cpp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/newmole/source/mole_reactions.cpp
r1706 r1708 932 932 * activ_barrier provides information on how well two atoms on the surface of a grain 933 933 * can actually interact to form a new molecule. The formalism below is taken from 934 * the Hasegawa, Herbst, and Leun epaper from 1992 (referenced above)*/934 * the Hasegawa, Herbst, and Leung paper from 1992 (referenced above)*/ 935 935 936 936 double E_i, E_j, quant_barrier, 937 vib_freq_i, vib_freq_j, surface_density_of_sites, activ_barrier,938 diff_i, diff_j, Exp_i, Exp_j,dust_density,total_sites;937 vib_freq_i, vib_freq_j, surface_density_of_sites, activ_barrier, 938 diff_i, diff_j, Exp_i, Exp_j,dust_density, scale, total_sites; 939 939 940 940 int nd; … … 945 945 surface_density_of_sites = 1.5e15; /* number of sites available for adsorption */ 946 946 total_sites = 1.0e6; /* total number of sites */ 947 fixit(); // rate->a is _always_ overall scaling factor 947 948 E_i = rate->a; /* adsorption energy barrier (w/ grain) for first reactant */ 948 949 E_j = rate->b; /* adsorption energy barrier (w/ grain)for second reactant */ … … 950 951 951 952 /* Each species has a vibrational frequency, dependent on its adsorption energy barrier */ 952 fixit(); /* Ordering of reactants may have switched , is rate->reduced_mass better??*/953 fixit(); /* Ordering of reactants may have switched */ 953 954 vib_freq_i = sqrt(2*surface_density_of_sites*(0.3*BOLTZMANN)*E_i/(PI*PI*rate->reactants[0]->mole_mass)); 954 vib_freq_j = sqrt(2*surface_density_of_sites*(0.3*BOLTZMANN)*E_j/(PI*PI*rate->reactants[ 0]->mole_mass));955 vib_freq_j = sqrt(2*surface_density_of_sites*(0.3*BOLTZMANN)*E_j/(PI*PI*rate->reactants[1]->mole_mass)); 955 956 956 957 Exp_i = 0.0; … … 959 960 960 961 /* Compute thermal evaporation terms along with total dust number density */ 962 fixit(); // should there be an area weighting to exponential terms? 961 963 if( conv.nTotalIoniz > 1 || iteration > 1 ) 962 964 { … … 975 977 /* Exponential term models the likelyhood that two species, once they meet on the surface, will interact. Larger the barrier, the smaller 976 978 * the chance of a new molecule */ 977 activ_barrier= exp(-2*(quant_barrier/(HBAReV*EN1EV))*sqrt(2*rate->reduced_mass*0.3*BOLTZMANN*activ_barrier));979 scale = exp(-2*(quant_barrier/(HBAReV*EN1EV))*sqrt(2*rate->reduced_mass*0.3*BOLTZMANN*activ_barrier)); 978 980 979 981 /* Total Rate */ 980 return activ_barrier*(diff_i + diff_j)/SDIV(dust_density);982 return scale*(diff_i + diff_j)/SDIV(dust_density); 981 983 } 982 984 … … 988 990 * The following treatment uses their equation 3 */ 989 991 990 double yield,grain_area;992 double grain_area; 991 993 int nd; 992 994 … … 995 997 grain_area = 0.; 996 998 for( nd=0; nd < gv.nBin; nd++ ) 997 {998 grain_area += gv.bin[nd]->AvArea;999 }999 { 1000 grain_area += gv.bin[nd]->AvArea; 1001 } 1000 1002 1001 1003 /* This is the number of molecules removed from the grain per incident photon 1002 1004 * use same value of 1e-4 as used in Bergin */ 1003 1005 1004 yield = rate->a; 1005 1006 return yield*grain_area* hmi.UV_Cont_rel2_Draine_DB96_depth; 1006 return grain_area* hmi.UV_Cont_rel2_Draine_DB96_depth; 1007 1007 } 1008 1008 … … 1923 1923 { 1924 1924 rate = p->second; 1925 if(rate->fun != NULL) { 1926 rate->rk = rate->a*rate->fun(rate); 1927 } 1925 ASSERT(rate->fun != NULL); 1926 rate->rk = rate->a*rate->fun(rate); 1928 1927 } 1929 1928 }
