cloudy trunk
Loading...
Searching...
No Matches
h2_priv.h
Go to the documentation of this file.
1/* This file is part of Cloudy and is copyright (C)1978-2013 by Gary J. Ferland and
2 * others. For conditions of distribution and use see copyright notice in license.txt */
3
4#ifndef H2_PRIV_H_
5#define H2_PRIV_H_
6
7#include "transition.h"
8#include "parser.h"
9#include "mole.h"
10
13const int N_X_COLLIDER = 5;
15const int chN_X_COLLIDER = 10;
16// colliders are (see h2.cpp diatoms_init)
17// 0 H
18// 1 He
19// 2 H2 ortho
20// 3 H2 para
21// 4 H+
22
24const int nTE_HMINUS = 7;
25
27const int N_ELEC = 7;
28
30const realnum H2_logte_hminus[nTE_HMINUS] = {1.,1.47712,2.,2.47712,3.,3.47712,4.};
31
33{
34 long n, v, j;
35};
36
38{
39public:
41 {
42 initial = a;
43 final = b;
44 energies.clear();
45 xsections.clear();
46 rate_coeff = 0.;
47 };
49 vector<double> energies;
50 vector<double> xsections;
51 double rate_coeff;
52};
53
55{
57 {
58 magic = 0;
59 filename = "";
60 };
61 long magic;
62 string filename;
63};
64
66{
67public:
68 double Abund() const
69 {
70 return *dense_total;
71 }
72 void GetIndices( long& ipHi, long& ipLo, const char* chLine, long& i ) const;
73 void CalcPhotoionizationRate(void);
74 double (*photoion_opacity_fun)( double energy );
75 long OpacityCreate( double *stack );
76 double GetHeatRate( const diss_tran& tran );
77 double GetDissociationRate( const diss_tran& tran );
78 double MolDissocOpacity( const diss_tran& tran, const double& Mol_Ene );
79 double Cont_Diss_Heat_Rate( void );
80 void Mol_Photo_Diss_Rates( void );
84 double GetExcitedElecDensity(void);
85 realnum GetXColden( long iVib, long iRot );
86
87 long int getLine( long iElecHi, long iVibHi, long iRotHi, long iElecLo, long iVibLo, long iRotLo, double *relint, double *absint );
88
89 /* compute rate coefficient for a single quenching collision */
90 realnum H2_CollidRateEvalOne( long iVibHi, long iRotHi, long iVibLo, long iRotLo, long ipHi, long ipLo, long nColl, double temp_K );
91
92 void H2_Calc_Average_Rates( void );
93
94 void H2_X_sink_and_source( void );
95 /*H2_X_coll_rate_evaluate find collisional rates within X -
96 * this is one time upon entry into H2_LevelPops */
97 void H2_X_coll_rate_evaluate( void );
98
99 /*H2_Level_low_matrix evaluate lower populations within X */
100 /* total abundance within matrix */
101 void H2_Level_low_matrix(realnum abundance );
102
103 /*H2_Read_Cosmicray_distribution read distribution function for H2 population following cosmic ray collisional excitation
104 void H2_Read_Cosmicray_distribution(void); */
105
106 // read energies for all electronic levels
107 void H2_ReadEnergies();
108 void H2_ReadEnergies( long int nelec, vector<int>& n, vector<int>& v, vector<int>&J, vector<double>& eWN );
109
113 void H2_ReadDissprob( long int nelec );
114
116 void H2_CollidRateEvalAll( void );
117
121 void H2_CollidRateRead( long int nColl );
122
126 void H2_ReadTransprob( long int nelec, TransitionList &trans );
127
130
132 void mole_H2_form( void );
133
135 void mole_H2_LTE( void );
136
139 void H2_Solomon_rate( void );
140
142 double gs_rate( void );
143
146 void H2_zero_pops_too_low( void );
147
149 void init(void);
150
152 void H2_ContPoint( void );
153
155 double H2_DR(void);
156
158 double H2_Accel(void);
159
161 void H2_RT_OTS( void );
162
164 double H2_RadPress(void);
165
167 void H2_LinesAdd(void);
168
170 void H2_Reset( void );
171
173 double H2_InterEnergy(void);
174
178 void H2_Colden( const char *chLabel );
179
181 void H2_Cooling(void);
182
188 FILE* ioPUN ,
189 bool lgDoAll );
190
196 void H2_PunchLineStuff( FILE * io , realnum xLimit , long index);
197
199 void H2_RT_diffuse(void);
200
203 void H2_RTMake( void );
204
206 void H2_RT_tau_inc(void);
207
209 void H2_Prt_Zone(void);
210
211 // print departure coefficients for all X levels
212 void H2_PrtDepartCoef(void);
213
215 void H2_LineZero( void );
216
218 void H2_RT_tau_reset( void );
219
221 void H2_LevelPops( bool &lgPopsConverged, double &old_value, double &new_value );
222
229 void H2_PunchDo( FILE* io , char chJOB[] , const char chTime[] , long int ipPun );
230
232 void H2_Prt_line_tau(void);
233
235 void H2_ParseSave( Parser &p ,
236 char *chHeader);
237
239 double H2_itrzn( void );
240
245 void H2_Prt_column_density( FILE *ioMEAN );
246
247 void set_numLevelsMatrix( long numLevels );
248
249 void H2_ReadDissocEnergies( void );
250
253
259
260 /* total spontaneous dissociation rate [s-1],
261 * summed over excited electronic states, weighted by pops */
263
266
270
275
280
284
288
289 double HeatDiss;
290 double HeatDexc;
294
296 double Average_A;
307
311
315
317
322
323 // single precision versions of the above
326
330
331 /* old and older ortho - para ratios, used to determine whether soln is converged */
333
334 // these remember the largest and smallest factors needed to
335 // renormalize the H2 chemistry
336 double renorm_max ,
338
339 // this will say how many times the large H2 molecule has been called in this zone -
340 // if not called (due to low H2 abundance) then not need to update its line arrays
342
343 // flag saying whether to bother with the large molecule at all,
344 // default is false, set true with atom h2 on command
346
347 // this is the number of electronic levels to include in the output - default is 1,
348 // only X. changed with PRINT LINES H2 ELECTRONIC and option on PUNCH H2 LINES commands
350
351 /* true to use 2007 set of H2 - H collision rate, false use 1999 */
353
357
360
363
364 // include collision rates that come from real calculations,
365 // off with atom h2 collisions off command
367
369 bool lgLTE;
370
373
374 // which set of He - H2 collisions to use? default is ORNL, other
375 // is Le BOURlet
377
378 // flag saying whether (true) or not to use ORNL H2 - H2 collisions
381
386
388 long int nzoneEval;
389
392
395
397
400
406
407 // the number of electronic quantum states to include.
408 // To do both Lyman and Werner bands want nelec = 3
410
411 /* this is fraction of population that is within levels done with matrix */
413
414 /* used to recall the temperature used for last set of Boltzmann factors */
417
418 explicit diatomics( const string& a, const double& e_star, const double* const abund, double (*fun)(double) ) : trans(a, &states), ENERGY_H2_STAR (e_star), dense_total(abund)
419 {
420 fixit(); //should probably force path lower and label upper case.
421 path = a;
422 label = a;
423 {
424 unsigned j;
425 for( j = 0; j < a.size(); ++j )
426 label[j] = toupper( label[j] );
428 for( j = a.size(); j < 4; ++j )
429 label += ' ';
430 label += '\0';
431 }
432 /* option to turn off or on gbar collisions of the collision rate,
433 * default is to have it on */
434 /* turn h2.lgColl_gbar on/off with atom h2 gbar on off */
435 lgColl_gbar = true;
436 /* include collision rates that come from real calculations,
437 * off with atom h2 collisions off command */
438 lgColl_deexec_Calc = true;
439 lgColl_dissoc_coll = true;
440 lgEnabled = false;
441 lgEvaluated = false;
442 /* option to turn off H2 - grain collision & deexcitation,
443 * atom h2 grain collision on/off */
445 /* option to scramble collision data */
446 lgH2_NOISE = false;
447 lgH2_NOISECOSMIC = false;
448 /* option to turn off ortho-para collisions, command ATOM H2 COLLISIONS ORTHO PARA OFF */
450 /* which set of H2 - He collision data to use? default is ORNL data set
451 * also Le Bourlot Meudon set available,
452 * set to ORNL with command
453 * atom H2 He collisions ORNL */
454 lgH2_He_ORNL = true;
455 /* use 1999 or 2007 H2 - H collision set atomic data mole H2 h */
456 lgH2_H_coll_07 = true;
457 /*>>chng 08 feb 27, GS, ORNL or Meudon H2 - H2 collision data
458 * >>chng 09 may 11, make it the default */
459 lgH2_ORH2_ORNL = true;
460 lgH2_PAH2_ORNL = true;
461 /* flag to force using LTE level populations */
462 lgLTE = false;
463 lgREAD_DATA = false;
464 loop_h2_oscil = -1;
465 HeatDiss = 0.;
466 HeatDexc = 0.;
467 HeatDexc_old = 0.;
468 HeatDexc_deriv = 0.;
469 HeatChangeOld = 0.;
470 HeatChange = 0.;
471 photo_heat_soft = 0.;
472 photo_heat_hard = 0.;
478 spon_diss_tot = 0.;
481 Average_A = 0.;
490
491 /* these remember the largest and smallest factors needed to
492 * renormalize the H2 chemistry */
493 renorm_max = 1.;
494 renorm_min = 1.;
495 /* ortho and para column densities */
496 ortho_colden = 0.;
497 para_colden = 0.;
498 ortho_para_old = 0.;
499 ortho_para_older = 0.;
501 TeUsedBoltz = -1.;
502 TeUsedColl = -1.;
503
504 /* counters used by H2_itrzn to find number of calls of h2 per zone */
505 nH2_pops = 0;
506 nH2_zone = 0;
508 /* these are used to set trace levels of output by options on atom h2 trace command
509 * first is minimum level of trace, keyword is FINAL */
510 n_trace_final = 1;
511 /* intermediate level of trace, info per iteration, key ITERATION */
513 /* full trace, keyword is FULL */
514 n_trace_full = 3;
515 /* print matrices used in solving X */
516 n_trace_matrix = 4;
517 /* holds options for trace set with atom h2 command */
518 nTRACE = false;
519 /* this is number of electronic levels to include in the print and save output
520 * changed with the PRINT LINE H2 ELECTRONIC and PUNCH H2 commands
521 * by default only include X */
523 /* the number of electronic quantum states to include.
524 * To do both Lyman and Werner bands want nelec = 3,
525 * default is to do all bands included */
527 nCall_this_zone = 0;
528 /* the number of levels used in the matrix solution
529 * of the level populations - set with atom h2 matrix nlevel,
530 * >>chng 04 oct 05, make default 30 levels
531 * >>chng 04 dec 23, make default 70 levels */
532 nXLevelsMatrix = 70;
533 ndimMalloced = 0;
534
535 levelAsEval = -1;
536 lgFirst = true;
537 nzone_eval = -1;
538 nzoneEval = -1;
540
541 /* this is used to establish zone number for evaluation of number of levels in matrix */
542 nzone_nlevel_set = -1;
543 nzoneAsEval = -1;
544 /* this is used to establish zone number for evaluation of number of levels in matrix */
546
547 /* this is the smallest ratio of H2/H where we will bother with the large H2 molecule
548 * this value was chosen so that large mole used at very start of TH85 standard PDR,
549 * NB - this appears in headinfo and must be updated there if changed here */
550 /* >>chng 03 jun 02, from 1e-6 to 1e-8 - in orion veil large H2 turned on half way
551 * across, and Solomon process was very fast since all lines optically thin. correct
552 * result has some shielding, so reset to lower value so that H2 comes on sooner. */
553 H2_to_H_limit = 1e-8;
554 iterationAsEval = -1;
555
556 strcpy( chH2ColliderLabels[0] , "H0" );
557 strcpy( chH2ColliderLabels[1] , "He" );
558 strcpy( chH2ColliderLabels[2] , "H2 o" );
559 strcpy( chH2ColliderLabels[3] , "H2 p" );
560 strcpy( chH2ColliderLabels[4] , "H+" );
561 };
562
568 vector< diss_tran > Diss_Trans;
569
570private:
571 string label;
573 string path;
574
577 /* >> chng 05 jul 15, TE, H2g = sum (v=0, J=0,1) */
578 /* >>chng 05 jul 29, to 0.5 eV, this goes up to J=8 for v=0 */
579 /* >>chng 05 aug 03, slight upward change in energy to include the J=8 level,
580 * also give energy in waveumbers for simplicity (save h2 levels give energy in ryd) */
581 /*#define ENERGY_H2_STAR (0.5/EVRYD/WAVNRYD)*/
582 /* energy of v=0, J=8 is 4051.73, J=9 is 5001.97
583 * v=1, J=0 is 4161.14 */
584public:
585 const double ENERGY_H2_STAR;
586
587private:
588 // pointer to the density of the species
589 const double* const dense_total;
590
592
593 /* these vars are private for H2 but uses same style as all other header files -
594 * the extern is extern in all except cddefines */
595
598
601
604
607
608 //int H2_nRot_add_ortho_para[N_ELEC];
611 long int nVib_hi[N_ELEC];
613 valarray<long> nRot_hi[N_ELEC];
616 long int Jlowest[N_ELEC];
623 vector<CollRateCoeffArray> RateCoefTable;
624
625 // quantities dealing with chemistry
626#if 1
627#endif
628
629 // these are quantities for each state
630#if 1
635
644#endif
645
647
648 // these are quantities for states with X
649#if 1
669
672#endif
673
674 valarray<realnum> H2_X_source;
675 valarray<realnum> H2_X_sink;
676
680
683
686
687 valarray<long> ipVib_H2_energy_sort;
688 valarray<long> ipElec_H2_energy_sort;
689 valarray<long> ipRot_H2_energy_sort;
692
696 long int ndimMalloced;
697 double **AulEscp,
703
704 long int levelAsEval;
706 long int nzone_eval;
708
711
715
717 long int nH2_pops;
718 long int nH2_zone;
719
722
727
728};
729
730/* compute H2 continuum dissociation cross sections */
731double MolDissocCrossSection( const diss_tran& tran, const double& Mol_Ene );
732
733double Yan_H2_CS( double energy_ryd /* photon energy in ryd */);
734
735/* compute H2 continuum dissoication opacities */
736//double MolDissocOpacity( const diss_tran& tran, const double& Mol_Ene );
737
738#endif /* H2_PRIV_H_ */
739
t_abund abund
Definition abund.cpp:5
char toupper(char c)
Definition cddefines.h:700
float realnum
Definition cddefines.h:103
void fixit(void)
Definition service.cpp:991
TransitionProxy::iterator iterator
Definition transition.h:280
long int iterationAsEval
Definition h2_priv.h:646
double Average_collH_deexcit
Definition h2_priv.h:299
void H2_PunchDo(FILE *io, char chJOB[], const char chTime[], long int ipPun)
long int n_elec_states
Definition h2_priv.h:409
long int nzone_eval
Definition h2_priv.h:706
double rel_pop_LTE_s
Definition h2_priv.h:283
multi_arr< realnum, 2 > H2_X_coll_rate
Definition h2_priv.h:606
char chH2ColliderLabels[N_X_COLLIDER][chN_X_COLLIDER]
Definition h2_priv.h:591
double para_density
Definition h2_priv.h:321
multi_arr< double, 2 > H2_col_rate_out
Definition h2_priv.h:652
double Solomon_elec_decay_s
Definition h2_priv.h:269
double Average_collH_dissoc_g
Definition h2_priv.h:303
double Cont_Dissoc_Rate_H2g
Definition h2_priv.h:278
multi_arr< bool, 3 > H2_lgOrtho
Definition h2_priv.h:643
double H2_renorm_chemistry
Definition h2_priv.h:603
double xSTDNoise
Definition h2_priv.h:391
double photodissoc_BigH2_H2s
Definition h2_priv.h:257
bool lgColl_gbar
Definition h2_priv.h:356
void H2_RTMake(void)
Definition mole_h2.cpp:390
long int nzoneEval
Definition h2_priv.h:388
void Mol_Photo_Diss_Rates(void)
bool lgREAD_DATA
Definition h2_priv.h:252
bool lgH2_He_ORNL
Definition h2_priv.h:376
long int nVib_hi[N_ELEC]
Definition h2_priv.h:611
bool lgH2_NOISECOSMIC
Definition h2_priv.h:385
double Average_collH2_deexcit
Definition h2_priv.h:298
void H2_RT_tau_inc(void)
Definition mole_h2.cpp:412
multi_arr< realnum, 3 > H2_X_hminus_formation_distribution
Definition h2_priv.h:685
void H2_Calc_Average_Rates(void)
Definition mole_h2.cpp:2453
double pops_per_elec[N_ELEC]
Definition h2_priv.h:620
molecule * sp_star
Definition h2_priv.h:564
double rate_grain_op_conserve
Definition h2_priv.h:273
double HeatChange
Definition h2_priv.h:293
realnum mass_amu
Definition h2_priv.h:396
long int nzoneAsEval
Definition h2_priv.h:646
vector< double > stat_levn
Definition h2_priv.h:702
double Average_collH_excit
Definition h2_priv.h:301
double Abund() const
Definition h2_priv.h:68
long ip_photo_opac_offset
Definition h2_priv.h:314
long int getLine(long iElecHi, long iVibHi, long iRotHi, long iElecLo, long iVibLo, long iRotLo, double *relint, double *absint)
void H2_CollidRateEvalAll(void)
bool lgEnabled
Definition h2_priv.h:345
vector< double > depart
Definition h2_priv.h:702
void GetIndices(long &ipHi, long &ipLo, const char *chLine, long &i) const
void H2_X_coll_rate_evaluate(void)
Definition mole_h2.cpp:201
void SolveExcitedElectronicLevels(void)
Definition mole_h2.cpp:1941
double Average_collH_dissoc_s
Definition h2_priv.h:304
double Solomon_elec_decay_g
Definition h2_priv.h:268
multi_arr< realnum, 3 > H2_dissprob
Definition h2_priv.h:632
string path
Definition h2_priv.h:573
double H2_itrzn(void)
Definition mole_h2.cpp:266
multi_arr< realnum, 2 > H2_X_formation
Definition h2_priv.h:656
double ortho_para_old
Definition h2_priv.h:332
valarray< long > ipElec_H2_energy_sort
Definition h2_priv.h:688
void set_numLevelsMatrix(long numLevels)
double HeatDexc_old
Definition h2_priv.h:291
double TeUsedColl
Definition h2_priv.h:416
void H2_Solomon_rate(void)
double H2_to_H_limit
Definition h2_priv.h:394
vector< double > pops
Definition h2_priv.h:702
long int nXLevelsMatrix
Definition h2_priv.h:695
double frac_matrix
Definition h2_priv.h:412
double spon_diss_tot
Definition h2_priv.h:262
void H2_ReadDissprob(long int nelec)
t_coll_source coll_source[N_X_COLLIDER]
Definition h2_priv.h:316
double photo_heat_soft
Definition h2_priv.h:255
double ortho_colden
Definition h2_priv.h:328
double Cont_Diss_Heat_Rate(void)
qList states
Definition h2_priv.h:565
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef
Definition h2_priv.h:668
string shortlabel
Definition h2_priv.h:572
string label
Definition h2_priv.h:571
void H2_Read_hminus_distribution(void)
void H2_ParseSave(Parser &p, char *chHeader)
long int Jlowest[N_ELEC]
Definition h2_priv.h:616
double TeUsedBoltz
Definition h2_priv.h:415
bool lgLTE
Definition h2_priv.h:369
realnum GetXColden(long iVib, long iRot)
Definition mole_h2.cpp:2359
multi_arr< long int, 2 > ipTransitionSort
Definition h2_priv.h:691
double GetDissociationRate(const diss_tran &tran)
int nElecLevelOutput
Definition h2_priv.h:349
double average_energy_g
Definition h2_priv.h:286
void H2_Prt_Zone(void)
vector< double > create
Definition h2_priv.h:702
long int nH2_zone
Definition h2_priv.h:718
void H2_RT_OTS(void)
Definition mole_h2.cpp:2429
vector< double > destroy
Definition h2_priv.h:702
double(* photoion_opacity_fun)(double energy)
Definition h2_priv.h:74
double ortho_para_current
Definition h2_priv.h:332
realnum H2_CollidRateEvalOne(long iVibHi, long iRotHi, long iVibLo, long iRotLo, long ipHi, long ipLo, long nColl, double temp_K)
void H2_LineZero(void)
Definition mole_h2.cpp:442
bool lgH2_ORH2_ORNL
Definition h2_priv.h:379
void init(void)
valarray< long > ipVib_H2_energy_sort
Definition h2_priv.h:687
double HeatDiss
Definition h2_priv.h:289
double ortho_para_older
Definition h2_priv.h:332
const double *const dense_total
Definition h2_priv.h:589
void SolveSomeGroundElectronicLevels(void)
Definition mole_h2.cpp:2052
void H2_ReadEnergies()
void CalcPhotoionizationRate(void)
void H2_Prt_line_tau(void)
double HeatDexc_deriv
Definition h2_priv.h:292
multi_arr< realnum, 3 > CollRateErrFac
Definition h2_priv.h:622
multi_arr< realnum, 3 > H2_stat
Definition h2_priv.h:641
double Average_collH2_dissoc_s
Definition h2_priv.h:306
double Solomon_dissoc_rate_g
Definition h2_priv.h:264
double H2_DissocEnergies[N_ELEC]
Definition h2_priv.h:609
vector< double > excit
Definition h2_priv.h:702
void H2_Cooling(void)
Definition mole_h2.cpp:2188
int n_trace_matrix
Definition h2_priv.h:405
double rel_pop_LTE_g
Definition h2_priv.h:282
multi_arr< double, 2 > H2_col_rate_in
Definition h2_priv.h:651
double H2_Accel(void)
Definition mole_h2.cpp:297
long int levelAsEval
Definition h2_priv.h:704
void H2_ContPoint(void)
Definition mole_h2.cpp:279
multi_arr< realnum, 6 > H2_SaveLine
Definition h2_priv.h:710
double MolDissocOpacity(const diss_tran &tran, const double &Mol_Ene)
vector< CollRateCoeffArray > RateCoefTable
Definition h2_priv.h:623
long int loop_h2_oscil
Definition h2_priv.h:387
bool lgEvaluated
Definition h2_priv.h:310
multi_arr< double, 3 > H2_populations_LTE
Definition h2_priv.h:639
double gs_rate(void)
double H2_DR(void)
Definition mole_h2.cpp:2423
realnum ortho_density_f
Definition h2_priv.h:324
double H2_den_s
Definition h2_priv.h:682
long int iteration_evaluated
Definition h2_priv.h:707
double photodissoc_BigH2_H2g
Definition h2_priv.h:258
vector< diss_tran > Diss_Trans
Definition h2_priv.h:568
valarray< long > ipRot_H2_energy_sort
Definition h2_priv.h:689
multi_arr< realnum, 3 > CollRateCoeff
Definition h2_priv.h:621
void H2_X_sink_and_source(void)
Definition mole_h2.cpp:54
long OpacityCreate(double *stack)
double ** AulEscp
Definition h2_priv.h:697
double photoionize_rate
Definition h2_priv.h:254
double ** AulPump
Definition h2_priv.h:700
bool lgH2_grain_deexcitation
Definition h2_priv.h:366
bool lgColl_dissoc_coll
Definition h2_priv.h:362
bool lgH2_ortho_para_coll_on
Definition h2_priv.h:372
void H2_Prt_column_density(FILE *ioMEAN)
double HeatChangeOld
Definition h2_priv.h:293
void H2_Colden(const char *chLabel)
Definition mole_h2.cpp:2378
void H2_LinesAdd(void)
double GetExcitedElecDensity(void)
Definition mole_h2.cpp:2538
multi_arr< double, 3 > H2_Boltzmann
Definition h2_priv.h:638
const double ENERGY_H2_STAR
Definition h2_priv.h:585
void Read_Mol_Diss_cross_sections(void)
bool lgH2_NOISE
Definition h2_priv.h:383
multi_arr< double, 2 > H2_X_rate_from_elec_excited
Definition h2_priv.h:664
bool lgColl_deexec_Calc
Definition h2_priv.h:359
double xMeanNoise
Definition h2_priv.h:391
double Average_A
Definition h2_priv.h:296
double Average_collH2_dissoc_g
Definition h2_priv.h:305
double GetHeatRate(const diss_tran &tran)
void H2_zero_pops_too_low(void)
double renorm_max
Definition h2_priv.h:336
double Cont_Dissoc_Rate_H2s
Definition h2_priv.h:277
double photo_heat_hard
Definition h2_priv.h:256
int n_trace_full
Definition h2_priv.h:404
void mole_H2_LTE(void)
multi_arr< int, 2 > H2_ipPhoto
Definition h2_priv.h:650
diatomics(const string &a, const double &e_star, const double *const abund, double(*fun)(double))
Definition h2_priv.h:418
void H2_ReadDissocEnergies(void)
void H2_PrtDepartCoef(void)
long ip_photo_opac_thresh
Definition h2_priv.h:313
long int nCall_this_iteration
Definition h2_priv.h:726
void H2_Level_low_matrix(realnum abundance)
Definition mole_h2.cpp:474
void H2_ReadTransprob(long int nelec, TransitionList &trans)
multi_arr< bool, 2 > lgH2_radiative
Definition h2_priv.h:714
multi_arr< double, 2 > pops_per_vib
Definition h2_priv.h:600
double HeatDexc
Definition h2_priv.h:290
int n_trace_iterations
Definition h2_priv.h:403
bool lgH2_PAH2_ORNL
Definition h2_priv.h:380
long int ndimMalloced
Definition h2_priv.h:696
double H2_den_g
Definition h2_priv.h:682
double H2_RadPress(void)
Definition mole_h2.cpp:320
void H2_RT_tau_reset(void)
Definition mole_h2.cpp:458
valarray< realnum > H2_X_source
Definition h2_priv.h:674
double ortho_density
Definition h2_priv.h:319
void H2_LevelPops(bool &lgPopsConverged, double &old_value, double &new_value)
Definition mole_h2.cpp:909
multi_arr< realnum, 2 > H2_coll_dissoc_rate_coef_H2
Definition h2_priv.h:671
multi_arr< realnum, 2 > H2_X_colden_LTE
Definition h2_priv.h:662
void H2_RT_diffuse(void)
Definition mole_h2.cpp:371
void H2_PunchLineStuff(FILE *io, realnum xLimit, long index)
double ** CollRate_levn
Definition h2_priv.h:701
multi_arr< realnum, 2 > H2_X_colden
Definition h2_priv.h:660
double para_colden
Definition h2_priv.h:329
TransitionList trans
Definition h2_priv.h:566
multi_arr< realnum, 2 > H2_X_Hmin_back
Definition h2_priv.h:658
double average_energy_s
Definition h2_priv.h:287
multi_arr< realnum, 3 > H2_X_grain_formation_distribution
Definition h2_priv.h:679
int n_trace_final
Definition h2_priv.h:402
void mole_H2_form(void)
double Solomon_dissoc_rate_s
Definition h2_priv.h:265
bool lgFirst
Definition h2_priv.h:705
long int nCall_this_zone
Definition h2_priv.h:341
valarray< long > nRot_hi[N_ELEC]
Definition h2_priv.h:613
double renorm_min
Definition h2_priv.h:337
multi_arr< double, 3 > H2_old_populations
Definition h2_priv.h:637
double Average_collH2_excit
Definition h2_priv.h:300
bool lgH2_H_coll_07
Definition h2_priv.h:352
long int nH2_pops
Definition h2_priv.h:717
void H2_Reset(void)
realnum para_density_f
Definition h2_priv.h:325
int nTRACE
Definition h2_priv.h:399
multi_arr< double, 3 > H2_rad_rate_out
Definition h2_priv.h:634
TransitionList::iterator rad_end
Definition h2_priv.h:567
multi_arr< realnum, 3 > H2_disske
Definition h2_priv.h:633
multi_arr< double, 2 > H2_rad_rate_in
Definition h2_priv.h:653
double H2_InterEnergy(void)
multi_arr< double, 2 > H2_X_rate_to_elec_excited
Definition h2_priv.h:666
long int nLevels_per_elec[N_ELEC]
Definition h2_priv.h:618
double ** AulDest
Definition h2_priv.h:699
void H2_CollidRateRead(long int nColl)
long int nzone_nlevel_set
Definition h2_priv.h:721
double rate_grain_J1_to_J0
Definition h2_priv.h:274
void H2_Punch_line_data(FILE *ioPUN, bool lgDoAll)
valarray< realnum > H2_X_sink
Definition h2_priv.h:675
molecule * sp
Definition h2_priv.h:563
multi_arr< long int, 3 > ipEnergySort
Definition h2_priv.h:690
double ** col_str
Definition h2_priv.h:698
long int nEner_H2_ground
Definition h2_priv.h:597
multi_arr< double, 3 > Cont_Dissoc_Rate
Definition h2_priv.h:279
vector< double > xsections
Definition h2_priv.h:50
diss_tran(diss_level a, diss_level b)
Definition h2_priv.h:40
diss_level initial
Definition h2_priv.h:48
double rate_coeff
Definition h2_priv.h:51
vector< double > energies
Definition h2_priv.h:49
const int N_ELEC
Definition h2_priv.h:27
double Yan_H2_CS(double energy_ryd)
const int nTE_HMINUS
Definition h2_priv.h:24
const realnum H2_logte_hminus[nTE_HMINUS]
Definition h2_priv.h:30
double MolDissocCrossSection(const diss_tran &tran, const double &Mol_Ene)
const int chN_X_COLLIDER
Definition h2_priv.h:15
const int N_X_COLLIDER
Definition h2_priv.h:13
long v
Definition h2_priv.h:34
long j
Definition h2_priv.h:34
long n
Definition h2_priv.h:34
string filename
Definition h2_priv.h:62