/home66/gary/public_html/cloudy/c08_branch/source/mole.h

Go to the documentation of this file.
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and
00002  * others.  For conditions of distribution and use see copyright notice in license.txt */
00003 
00004 #ifndef _MOLE_H_
00005 #define _MOLE_H_
00006 
00007 /* mole.h */
00008 
00010 extern void CO_drive(void);
00011 
00013 extern void CO_zero(void);
00014 
00016 extern void CO_create_react(void);
00017 
00019 extern void CO_Init(void);
00021 extern void CO_update_rks( void );
00022 
00023 extern void CO_update_species_cache(void);
00024 
00025 extern double CO_sink_rate(const char chSpecies[]);
00026 
00027 extern double CO_source_rate(const char chSpecies[]);
00028 
00029 extern double CO_dissoc_rate(const char chSpecies[]);
00030 
00031 struct COmole_rate_s *CO_findrate_s(const char buf[]);
00032 
00033 extern double CO_findrk(const char buf[]);
00034 
00035 extern double CO_findrate(const char buf[]);
00036 
00069 extern struct molecule null_mole;
00070 
00071 EXTERN struct t_co {
00072 
00074         realnum CODissHeat, 
00076           codfrc, 
00078           codtot;
00079 
00081         double COCoolBigFrac;
00082 
00084         bool lgCOCoolCaped;
00085 
00087         bool lgNoCOMole;
00088 
00090         bool lgCODoCalc;
00091 
00096         realnum 
00099           hydro_sink[8],
00100           hydro_source[8]; 
00101 
00107         double hmole_mass[N_H_MOLEC+1];
00108 
00111         realnum C12_C13_isotope_ratio;
00112 
00114         bool lgH2Ozer;
00115 
00117         bool lgUMISTrates;
00118 
00119         bool lgFederman;
00120 
00124         bool lgNonEquilChem;
00125 
00129         bool lgProtElim;
00130 
00134         bool lgNeutrals;
00135 
00136         double h2lim;
00137 
00138         long co_nzone , iteration_co;
00139 
00141         double comole_eden;
00142 
00143 #       if 0
00144 
00145         bool lgElem_in_CO_chem[LIMELM];
00146 #       endif
00147 
00148 
00149         realnum nitro_dissoc_rate;
00150 
00153         double H_CH_C_H_H;
00154         double H_OH_O_H_H       ;
00155         double H_H2O_OH_H_H;
00156         double H_COP_CO_HP;     
00157         double H_CH_C_H2;
00158         double H_CHP_CP_H2;
00159         double H_CH2_CH_H2;
00160         double H_CH3P_CH2P_H2;
00161         double H_OH_O_H2;
00162         double H_H2O_OH_H2;
00163         double Hminus_HCOP_CO_H2;
00164         double Hminus_H3OP_H2O_H2;
00165         double Hminus_H3OP_OH_H2_H;
00166         double HP_CH_CHP_H;
00167         double HP_CH2_CH2P_H;
00168         double HP_H2O_H2OP_H;
00169         double HP_O2_O2P_H;
00170         double HP_OH_OHP_H;
00171         double HP_SiO_SiOP_H;
00172         double HP_CH2_CHP_H2;
00173         double HP_SiH_SiP_H2;
00174         double H2_CHP_CH2P_H;
00175         double H2_CH2P_CH3P_H;
00176         double H2_OHP_H2OP_H;
00177         double H2_H2OP_H3OP_H;
00178         double H2_COP_HCOP_H;
00179         double H2_OP_OHP_H;
00180         double H2_SiOP_SiOHP_H;
00181         double H2_C_CH_H;
00182         double H2_CP_CHP_H;
00183         double H2_CH_CH2_H;
00184         double H2_OH_H2O_H;
00185         double H2_O_OH_H;
00186         double H2_CH_C_H2_H;
00187         double H2_OH_O_H2_H;
00188         double H2_H2O_OH_H2_H;
00189         double H2_O2_O_O_H2;
00190         double H2_O2_OH_OH;
00191         double H2s_CH_C_H2_H;
00192         double H2s_OH_O_H2_H;
00193         double H2s_H2O_OH_H2_H;
00194         double H2s_O2_O_O_H2;
00195         double H2P_C_CHP_H;
00196         double H2P_CH_CH2P_H;   
00197         double H2P_CH2_CH3P_H;
00198         double H2P_OH_H2OP_H;
00199         double H2P_H2O_H3OP_H;
00200         double H2P_CO_HCOP_H;
00201         double H2P_O_OHP_H;     
00202         double H2P_CH_CHP_H2;
00203         double H2P_CH2_CH2P_H2;
00204         double H2P_CO_COP_H2;
00205         double H2P_H2O_H2OP_H2;
00206         double H2P_O2_O2P_H2;
00207         double H2P_OH_OHP_H2;
00208         double H3P_C_CHP_H2;
00209         double H3P_CH_CH2P_H2;
00210         double H3P_CH2_CH3P_H2;
00211         double H3P_OH_H2OP_H2;
00212         double H3P_H2O_H3OP_H2;
00213         double H3P_CO_HCOP_H2;
00214         double H3P_O_OHP_H2;
00215         double H3P_SiH_SiH2P_H2;
00216         double H3P_SiO_SiOHP_H2;
00217         double H2s_CH_CH2_H;
00218         double H2s_O_OH_H;
00219         double H2s_OH_H2O_H;
00220         double H2s_C_CH_H;
00221         double H2s_CP_CHP_H;
00222         double H_CH3_CH2_H2;
00223         double H_CH4P_CH3P_H2;
00224         double H_CH5P_CH4P_H2;
00225         double H2_CH2_CH3_H;
00226         double H2_CH3_CH4_H;
00227         double H2_CH4P_CH5P_H;
00228         double H2s_CH2_CH3_H;
00229         double H2s_CH3_CH4_H;
00230         double H2P_CH4_CH3P_H2;
00231         double H2P_CH4_CH4P_H2;
00232         double H2P_CH4_CH5P_H;
00233         double H3P_CH3_CH4P_H2;
00234         double H3P_CH4_CH5P_H2;
00235         double HP_CH3_CH3P_H;
00236         double HP_CH4_CH3P_H2;
00237         double HP_CH4_CH4P_H;
00238         double HP_HNC_HCN_HP;
00239         double H_HNC_HCN_H;
00240         double H2_HCNP_HCNHP_H;
00241         double H3P_HCN_HCNHP_H2;
00242         double H2s_OP_OHP_H;
00243 
00244         double C_H3OP_HCOP_H2_1,
00245         C_OH_CO_H_1,
00246         CP_OH_CO_HP_1,
00247         CP_H2O_HCOP_H_1,
00248         CP_OH_COP_H_1,
00249         O_CH_CO_H_1,
00250         O_CHP_COP_H_1,
00251         O_CH2_CO_H_H_1,
00252         O_CH2_CO_H2_1,
00253         O_CH2P_HCOP_H_1,
00254         O_CH3P_HCOP_H2_1,
00255         O_H2OP_O2P_H2_1,
00256         O_OH_O2_H_1,
00257         O_OHP_O2P_H_1,
00258         O_SiH_SiO_H_1,
00259         O_SiH2P_SiOHP_H_1,
00260         OP_CH_COP_H_1,
00261         OP_OH_O2P_H_1,
00262         Si_OH_SiO_H_1,
00263         SiP_H2O_SiOHP_H_1,
00264         SiP_OH_SiOP_H_1,
00265         CHP_H2O_HCOP_H2_1,
00266         CHP_OH_COP_H2_1,
00267         H_C_CH_nu,
00268         H_CP_CHP_nu,
00269         H_OH_H2O_nu,
00270         Hminus_CH_CH2_e,
00271         Hminus_C_CH_e,
00272         Hminus_OH_H2O_e,
00273         Hminus_O_OH_e,
00274         H2_C_CH2_nu,
00275         H2_CP_CH2P_nu,
00276         H2_SiP_SiH2P_nu,
00277         HeP_CH_CP_He_H,
00278         HeP_CH2_CHP_He_H,
00279         HeP_OH_OP_He_H,
00280         HeP_H2O_OHP_He_H,
00281         HeP_SiH_SiP_He_H,
00282         HeP_H2O_OH_He_HP,
00283         HeP_CH2_CP_He_H2,
00284         crnu_CH_C_H,
00285         crnu_CHP_CP_H,
00286         crnu_H2O_OH_H,
00287         crnu_OH_O_H,
00288         crnu_SiH_Si_H,
00289         nu_CH_C_H,
00290         nu_CHP_CP_H,
00291         nu_CH2_CH_H,
00292         nu_CH2P_CHP_H,
00293         nu_CH3P_CH2P_H,
00294         nu_CH3P_CHP_H2,
00295         nu_H2O_OH_H,
00296         nu_OH_O_H,
00297         nu_OHP_O_HP,
00298         nu_SiH_Si_H,
00299         e_CHP_C_H,
00300         e_CH2P_CH_H,
00301         e_CH2P_C_H_H,
00302         e_CH2P_C_H2,
00303         e_CH3P_C_H2_H,
00304         e_CH3P_CH2_H,
00305         e_CH3P_CH_H_H,
00306         e_CH3P_CH_H2,
00307         e_H2OP_OH_H,
00308         e_H2OP_O_H_H,
00309         e_H2OP_O_H2,
00310         e_H3OP_H2O_H,
00311         e_H3OP_OH_H_H,
00312         e_H3OP_OH_H2,
00313         e_H3OP_O_H2_H,
00314         e_HCOP_CO_H,
00315         e_OHP_O_H,
00316         e_SiH2P_SiH_H,
00317         e_SiH2P_Si_H_H,
00318         e_SiH2P_Si_H2,
00319         e_SiOHP_SiO_H,
00320         H2_CH_CH3_nu,
00321         H2_CH3P_CH5P_nu,
00322         H2s_CH_CH3_nu,
00323         Hminus_CH2_CH3_e,
00324         Hminus_CH3_CH4_e,
00325         nu_CH3_CH2_H,
00326         nu_CH3_CH_H2,
00327         nu_CH4_CH3_H,
00328         nu_CH4_CH2_H2,
00329         nu_CH4_CH_H2,
00330         crnu_CH3_CH2_H,
00331         crnu_CH3_CH_H2,
00332         crnu_CH4_CH2_H2,
00333         e_CH5P_CH3_H2,
00334         e_CH5P_CH4_H,
00335         e_CH4P_CH3_H,
00336         e_CH4P_CH2_H_H,
00337         H2_N_NH_H  ,      
00338         H2_NH_NH2_H ,        
00339         H2_NH2_NH3_H , 
00340         H2_CN_HCN_H   ,      
00341         HP_HNO_NOP_H2,
00342         HP_HS_SP_H2,
00343         H_HSP_SP_H2 ,
00344         H2P_N_NHP_H  ,     
00345         H2_NP_NHP_H   ,    
00346         H2_NHP_N_H3P   ,    
00347         H2P_NH_NH2P_H   ,  
00348         H2_NHP_NH2P_H    , 
00349         H2_NH2P_NH3P_H    , 
00350         H2_NH3P_NH4P_H     ,
00351         H2P_CN_HCNP_H     ,
00352         H2_CNP_HCNP_H     ,
00353         H2P_NO_HNOP_H      ,
00354         H2_SP_HSP_H        ,
00355         H2_CSP_HCSP_H      ,
00356         H3P_NH_NH2P_H2     ,
00357         H3P_NH2_NH3P_H2    ,
00358         H3P_NH3_NH4P_H2    ,
00359         H3P_CN_HCNP_H2     ,
00360         H3P_NO_HNOP_H2     ,
00361         H3P_S_HSP_H2       ,
00362         H3P_CS_HCSP_H2     ,
00363         H3P_NO2_NOP_OH_H2  ,
00364         HP_NH_NHP_H        ,
00365         HP_NH2_NH2P_H      ,
00366         HP_NH3_NH3P_H      ,
00367         H_CNP_CN_HP        ,
00368         HP_HCN_HCNP_H      ,
00369         H_HCNP_HCN_HP      ,
00370         H_N2P_N2_HP        ,
00371         HP_NO_NOP_H        ,
00372         HP_HS_HSP_H        ,
00373         HP_SiN_SiNP_H      ,
00374         HP_CS_CSP_H         ,
00375         HP_NS_NSP_H        ,
00376         HP_SO_SOP_H        ,
00377         HP_OCS_OCSP_H      ,
00378         HP_S2_S2P_H     ,
00379         H2P_NH_NHP_H2    ,
00380         H2P_NH2_NH2P_H2   ,
00381         H2P_NH3_NH3P_H2   ,
00382         H2P_CN_CNP_H2      ,
00383         H2P_HCN_HCNP_H2    ,
00384         H2P_NO_NOP_H2     ,
00385         H2_ClP_HClP_H   ,
00386         H2_HClP_H2ClP_H ,
00387         H3P_Cl_HClP_H2,
00388         H3P_HCl_H2ClP_H2,
00389         HP_HCl_HClP_H,
00390         HP_C2_C2P_H,
00391         H2_S_HS_H,
00392         H2P_C2_C2P_H2,
00393         Hminus_NH4P_NH3_H2,
00394         Hminus_NP_N_H,
00395         HP_C2H2_C2H2P_H, 
00396         HP_C2H2_C2HP_H2 ,
00397         HP_C3H_C3HP_H ,
00398         HP_C3H_C3P_H2 ,
00399         H2P_C2H_C2H2P_H, 
00400         H2P_C2H2_C2H2P_H2, 
00401         H3P_C2H_C2H2P_H2 ,
00402         H3P_C3_C3HP_H2 ,
00403         H2_C2HP_C2H2P_H ,
00404         H2_C3P_C3HP_H,
00405         H_C2H3P_C2H2P_H2 ,
00406         H3P_C2H2_C2H3P_H2 ,
00407         H2P_C2H2_C2H3P_H ,
00408         HP_C3_C3P_H ,
00409         HP_C2H_C2HP_H, 
00410         H2P_C2_C2HP_H ,
00411         H2P_C2H_C2HP_H2, 
00412         H3P_C2_C2HP_H2 ,
00413         H2_C2P_C2HP_H ,
00414         HP_C2H_C2P_H2,
00415         N2_H3P_N2HP_H2;
00416 }       co;
00417 
00418 EXTERN struct t_mole {
00419 
00420                 
00422         double H2_to_H_limit;
00423 
00426         long int n_h2_elec_states;
00427 
00430         bool lgColl_gbar;
00431 
00433         bool lgColl_deexec_Calc;
00434 
00436         bool lgColl_dissoc_coll;
00437 
00440         bool lgH2_grain_deexcitation;
00441 
00443         bool lgH2_LTE;
00444 
00446         bool lgH2_ortho_para_coll_on;
00447 
00450         bool lgH2_He_ORNL;
00451 
00453         int nH2_TRACE;
00454 
00456         bool lgH2_NOISE ,
00458                 lgH2_NOISECOSMIC;
00459 
00461         int nH2_trace_final , 
00462                 nH2_trace_iterations , 
00463                 nH2_trace_full,
00464                 nH2_trace_matrix;
00465         
00468          bool lgGrain_mole_deplete;
00469 
00471         double xMeanNoise , xSTDNoise;
00472 
00474         bool lgElem_in_chemistry[LIMELM];
00475         int num_comole_calc, num_comole_tot, num_elements;
00476         
00479         double **source , **sink;
00480         
00482         realnum ***xMoleChTrRate;/***[LIMELM][LIMELM+1][LIMELM+1];*/
00483         double **amat, /* [NUM_COMOLE_CALC][NUM_COMOLE_CALC],  */
00484                 *b, /* [NUM_COMOLE_CALC],  */
00485                 **c; /* [NUM_COMOLE_TOT][NUM_COMOLE_CALC + 1]; */
00486 }       mole;
00487 
00488 enum {CHARS_SPECIES=7};
00489 /* Structure containing molecule data, initially only CO */
00490 EXTERN struct molecule {
00491         int nElem[LIMELM];      
00492         int nelem_hevmol;   
00493         char label[CHARS_SPECIES];      
00494         int nElec;
00495         int Excit;
00496         bool lgGas_Phase;    
00497         int n_nuclei;       
00498         realnum hevmol;       
00499         realnum hev_reinit;   /* this save first valid solution from previous iteration */
00500         realnum *location;    
00501         realnum hevcol;       
00502         realnum hevcol_old;   
00503         realnum pdr_mole_co;  
00504         /* realnum HevMolSav; ** the particle densities in first zone where CO computed,
00505                                                                                 * in last iteration */
00506         realnum xMoleFracMax;
00507         realnum mole_mass;
00508         realnum co_save;            
00509         realnum comole_save;
00510         realnum hevmol_save;
00511         int active;
00512         int index;
00513 } **COmole;
00514 
00515 
00516 extern struct molecule *findspecies(const char buf[]);
00517 
00518 extern void CO_punch_mol(FILE *punit, const char chSpecies[], 
00519                                                  char header[], double depth);
00520 
00521 #endif /* _MOLE_H_ */

Generated on Mon Feb 16 12:01:18 2009 for cloudy by  doxygen 1.4.7