Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
iso.h
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2023 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 
4 #ifndef ISO_H_
5 #define ISO_H_
6 
8 #include "module.h"
9 #include "transition.h"
10 #include "container_classes.h"
11 
12 class two_photon;
13 class freeBound;
14 
15 extern long int max_num_levels;
16 
19 #define KILL_BELOW_PLASMA(E_) ( (rfield.lgPlasNu && ((E_)<rfield.plsfrq) ) ? 0.:1. )
20 
22 #define N_(A_) (iso_sp[ipISO][nelem].st[A_].n())
23 #define L_(A_) (iso_sp[ipISO][nelem].st[A_].l())
24 #define S_(A_) (iso_sp[ipISO][nelem].st[A_].S())
25 #define J_(A_) (iso_sp[ipISO][nelem].st[A_].j())
26 
29 const int ipH1s = 0;
30 const int ipH2s = 1;
31 const int ipH2p = 2;
32 const int ipH3s = 3;
33 const int ipH3p = 4;
34 const int ipH3d = 5;
35 const int ipH4s = 6;
36 const int ipH4p = 7;
37 const int ipH4d = 8;
38 const int ipH4f = 9;
39 
42 /* level 1 */
43 const int ipHe1s1S = 0;
44 
45 /* level 2 */
46 const int ipHe2s3S = 1;
47 const int ipHe2s1S = 2;
48 const int ipHe2p3P0 = 3;
49 const int ipHe2p3P1 = 4;
50 const int ipHe2p3P2 = 5;
51 const int ipHe2p1P = 6;
52 
53 /* level 3 */
54 const int ipHe3s3S = 7;
55 const int ipHe3s1S = 8;
56 const int ipHe3p3P = 9;
57 const int ipHe3d3D = 10;
58 const int ipHe3d1D = 11;
59 const int ipHe3p1P = 12;
60 
64 const int ipH_LIKE = 0;
65 const int ipHE_LIKE = 1;
66 const int ipLI_LIKE = 2;
67 const int ipBE_LIKE = 3;
68 const int ipB_LIKE = 4;
69 const int ipC_LIKE = 5;
70 const int ipN_LIKE = 6;
71 const int ipO_LIKE = 7;
72 const int ipF_LIKE = 8;
73 const int ipNE_LIKE = 9;
74 const int ipNA_LIKE = 10;
75 const int ipMG_LIKE = 11;
76 const int ipAL_LIKE = 12;
77 const int ipSI_LIKE = 13;
78 const int ipP_LIKE = 14;
79 const int ipS_LIKE = 15;
80 const int ipCL_LIKE = 16;
81 const int ipAR_LIKE = 17;
82 
83 enum {
84  ipSINGLET = 1, ipDOUBLET = 2, ipTRIPLET = 3,
86 };
87 
88 const int IPRAD = 0;
89 const int IPCOLLIS = 1;
90 /*const int IPENERGY = 2;*/
91 
92 /* following two macros used to define recombination coef arrays */
93 /* Max n desired in RRCoef file. */
96 /* Hydrogen and helium atoms will have precompiled recombination coefficients up to these maximum n. */
97 const int RREC_MAXN = 40;
98 
100 inline int LIKE_RREC_MAXN(int nelem) { return ( nelem == ipHELIUM ) ? 40 : 20; }
101 
102 const int N_ISO_TE_RECOMB = 41;
103 
106 const int SumUpToThisN = 1000;
108 const int RECOMBMAGIC = 130216;
110 const int ENERGIESMAGIC = 20190102;
111 
112 typedef uint64 QNPack;
113 
114 inline QNPack QN2ind(long n, long l, long s, long g = -1)
115 {
116  // Index routine for the iso sequences
117  // Quantum physics guarantees 0 <= l < n and 0 <= j <= n, while s = 1, 2, or 3
118  // In many cases g = 2*j+1 will be -1 to state that the level is not j-resolved
119 
120  // first check arguments
121  ASSERT( n > 0 );
122  l = max(l, -1);
123  s = max(s, -1);
124  g = max(g, -1);
125 
126  // make sure g value is resolved where possible, this avoids ambiguity in matches
127  if( (l == 0 || s == 1) && g < 0 )
128  g = max(2*l+1, s);
129 
130  // make sure that n, l, s, g can be extracted unambiguously from QNPack
131  ASSERT( MAX4(n,l,s,g) < 0xffffL );
132 
133  uint64 nn = uint64(n&0xffff);
134  uint64 ll = uint64(l&0xffff);
135  uint64 ss = uint64(s&0xffff);
136  uint64 gg = uint64(g&0xffff);
137  return (nn<<48) | (ll<<32) | (ss<<16) | gg;
138 }
139 
140 struct QNPair
141 {
144  bool operator< (const QNPair& q2) const
145  {
146  return ( hi < q2.hi ) || (hi == q2.hi && lo < q2.lo);
147  }
148  QNPair(int nhi, int lhi, int shi, int ghi, int nlo, int llo, int slo, int glo)
149  {
150  hi = QN2ind(nhi, lhi, shi, ghi);
151  lo = QN2ind(nlo, llo, slo, glo);
152  }
153 };
154 
155 inline QNPair QN2ind(int nhi, int lhi, int shi, int ghi, int nlo, int llo, int slo, int glo)
156 {
157  return QNPair(nhi, lhi, shi, ghi, nlo, llo, slo, glo);
158 }
159 
160 int getL(char l);
161 
166 void iso_cascade( long ipISO, long nelem );
167 
170 void iso_charge_transfer_update( long nelem );
171 
176 void iso_collide( long ipISO, long nelem );
177 
182 void iso_collisional_ionization( long ipISO, long nelem );
183 
188 void iso_continuum_lower( long ipISO , long nelem );
189 
194 void iso_cool( long ipISO , long nelem );
195 
202 void iso_setRedisFun (long ipISO, long nelem, long ipLo, long ipHi);
203 
210 void iso_setOpacity (long ipISO, long nelem, long ipLo, long ipHi);
211 
214 void iso_create( void );
215 
225 double iso_cross_section( double ERyd , double EthRyd, long n, long l, long S, long globalZ, long globalISO );
226 
231 void iso_departure_coefficients( long ipISO, long nelem );
232 
238 double iso_dielec_recomb_rate( long ipISO, long nelem, long ipLo );
239 
244 void iso_error_generation( long ipISO, long nelem );
245 
251 long iso_get_total_num_levels( long ipISO, long nmaxResolved, long numCollapsed );
252 
255 void IonHydro( );
256 
261 void iso_ionize_recombine( long ipISO , long nelem );
262 
268 void iso_level( const long ipISO, const long nelem, double& renorm );
269 
274 void iso_photo( long ipISO , long nelem );
275 
281 void iso_prt_pops( long ipISO, long nelem, bool lgPrtDeparCoef );
282 
292 void iso_put_error(long ipISO,long nelem,long ipHi,long ipLo,long whichData,realnum errorOpt,realnum errorPess);
293 
303 void iso_put_error(long ipISO,long nelem,QNPack inHi,QNPack inLo,long whichData,realnum errorOpt,realnum errorPess);
304 
309 void iso_radiative_recomb( long ipISO, long nelem );
310 
315 void iso_radiative_recomb_effective( long ipISO, long nelem );
316 
324 double iso_recomb_check( long ipISO, long nelem, long level, double temperature );
325 
329 
332 void iso_recomb_alloc();
333 
337 void iso_recomb_setup( long ipISO );
338 
345 double iso_RRCoef_Te( long ipISO, long nelem, double temp, long n );
346 
349 void iso_satellite_update( long nelem );
350 
351 /* calculate radiative lifetime of an individual iso state
352 \param ipISO
353 \param nelem
354 \param n
355 \param l
356 */
357 double iso_state_lifetime( long ipISO, long nelem, long n, long l );
358 
362 void iso_solve( long ipISO, long nelem, double &maxerr );
363 
368 void iso_suprathermal( long ipISO, long nelem );
369 
374 void iso_update_num_levels( long ipISO, long nelem );
375 
378 void iso_update_rates( void );
379 
385 long int iso_Max_Emitting_Level(long nelem, long ipISO, bool lgPrnIsoCollapsed);
386 
387 void iso_init_energies();
388 
389 double hydro_energy(long nelem, long n, long l, long s, long g);
390 
391 void iso_collapsed_update( void );
392 
393 void iso_set_ion_rates( long ipISO, long nelem);
394 
395 void iso_init();
396 
397 class t_isoCTRL : public module
398 {
399 public:
400  void zero();
401  void comment(t_warnings&) {}
402 
403  const char *chName() const
404  {
405  return "iso_ctrl";
406  }
407 
409 
410  const char *chISO[NISO];
411 
414  long int nLyman[NISO],
416  nLyman_max[NISO],
419 
422 
425 
428 
430 
434 
438 
439  /* option to disable continuum lowering due to stark broadening, particle packing, etc. */
441 
445 
448 
451 
457 
460 
463 
466 
471 
475  lgCS_Fujim[NISO],
476  lgCS_vrgm[NISO],
477  lgCS_None[NISO] ,
478  lgCS_Seaton[NISO],
479  lgCS_B72[NISO],
480  lgCS_PSdeg[NISO],
482  lgCS_PS64[NISO],
484  lgCS_PSM20[NISO],
485  lgCS_VOS12[NISO],
489  int nCS_new[NISO];//vals are 0, 1, and 2
490 
493 
497 
499 
500  bool lgKeepFS;
501 
502  bool lgTopoff[NISO];
503 
505 
507  {
508  chISO[ipH_LIKE] = "H-like ";
509  chISO[ipHE_LIKE] = "He-like";
510  }
511 };
512 
513 extern t_isoCTRL iso_ctrl;
514 
515 class extra_tr
516 {
517 public:
519  double pestrk;
520  double pestrk_up;
521 
522  /* NB NB NB --- Error and ErrorFactor need one more slot than all the rest of these! */
523  /* and the last dimension can just be hardwired to 3 */
524 
526  /* first dimension is upper level,
527  * second is lower level,
528  * third is for radiative, collisional, or energy errors.
529  * MACROS are used for the last dimension: IPRAD, IPCOLLIS, and IPENERGY. */
531 
535 
538 };
539 
540 class t_iso_sp
541 {
542  map<QNPack, long> QNPack2Index;
543 
544 public:
545  TransitionProxy trans( const long ipHi, const long ipLo )
546  {
547  return (*tr)[ ipTrans[ipHi][ipLo] ];
548  }
553  vector<freeBound> fb;
556 
558  long QN2Index(QNPack ind);
559  long QN2Index(long n, long l, long s, long g = -1)
560  {
561  QNPack ind = QN2ind(n, l, s, g);
562  return QN2Index(ind);
563  }
564 
566  map<QNPack, double> Energy;
567 
569  double IonPot;
570 
572  double energy(long n, long l, long s, long g = -1) const
573  {
574  QNPack ind = QN2ind(n, l, s, g);
575  auto p = Energy.find(ind);
576  if( p != Energy.end() )
577  return p->second;
578  else
579  return -1.;
580  }
581 
583  double energy_ioniz(long n, long l, long s, long g = -1) const
584  {
585  double ERelToground = energy(n, l, s, g);
586  if( ERelToground >= 0. && ERelToground < IonPot )
587  return IonPot - ERelToground;
588  else
589  return -1.;
590  }
591 
593  map<QNPair, double> CachedAs;
594 
597  double xIonSimple;
598 
601 
604 
607 
610 
614 
615  /* flag that says we must reevaluate everything about this ion */
617 
618  /* set true if "element ionization" forces rescaling of pops */
620 
622  long int nCollapsed_max;
624 
628  long int numLevels_max;
629 
633  long int numLevels_local;
634 
637  long int numLevels_alloc;
638 
643 
646 
648  double RadRec_caseB;
649 
652  double RadRec_effec;
653 
656 
659 
662 
664  double coll_ion;
665 
667  double cRest_cool;
668 
670  double xLineTotCool;
671 
673  double dLTot;
674 
676  double RadRecCool;
677 
679  double cBal_cool;
680 
682  double cLyrest_cool;
683 
685  double cLya_cool;
686 
689 
691  char chTypeAtomUsed[10];
692 
696 
698  double qTot2S;
699 
700  void Reset();
701  vector<two_photon> TwoNu;
702 
703  vector<double> HighestLevelOpacStack;
704 
709 };
710 
711 extern t_iso_sp iso_sp[NISO][LIMELM];
712 
714 void iso_renorm( long nelem, long ipISO, double& renorm );
715 
717 void iso_multiplet_opacities( void );
718 
719 /* iso_comment_tran_levels - prepare comment string for entry to the line stack.
720  * The comment has the form 'H-like, 1 3, 1^2S - 2^2P', where '1 3' are the energy
721  * level indices, 1 being ground.
722  *
723  * \param ipISO iso-sequence index
724  * \param nelem element index
725  * \param ipLo, ipHi lower and upper level indices
726  * \return comment string
727  */
728 string iso_comment_tran_levels( long ipISO, long nelem, long ipLo, long ipHi );
729 
730 #endif /* ISO_H_ */
const int N_ISO_TE_RECOMB
Definition: iso.h:102
bool lgImgMatrix
Definition: iso.h:708
#define MAX4(a, b, c, d)
Definition: cddefines.h:838
double SigmaCascadeProb
Definition: iso.h:537
Definition: warnings.h:11
Definition: iso.h:397
const int ipAL_LIKE
Definition: iso.h:76
double pestrk_up
Definition: iso.h:520
t_iso_sp iso_sp[NISO][LIMELM]
Definition: iso.cpp:14
const int ipH4d
Definition: iso.h:37
const int ipC_LIKE
Definition: iso.h:69
void Reset()
Definition: iso.cpp:123
bool lgContinuumLoweringEnabled[NISO]
Definition: iso.h:440
Definition: two_photon.h:9
void zero()
Definition: iso.cpp:18
void iso_init()
Definition: iso.cpp:166
qList st
Definition: iso.h:554
int getL(char l)
Definition: iso_create.cpp:43
bool lgCS_PSClassic[NISO]
Definition: iso.h:473
const int ipHE_LIKE
Definition: iso.h:65
void iso_continuum_lower(long ipISO, long nelem)
Definition: iso_continuum_lower.cpp:15
double energy_ioniz(long n, long l, long s, long g=-1) const
Definition: iso.h:583
bool lgPessimisticErrors
Definition: iso.h:498
double RadRec_caseB
Definition: iso.h:648
bool lgColl_ionize[NISO]
Definition: iso.h:427
double iso_recomb_check(long ipISO, long nelem, long level, double temperature)
Definition: iso_radiative_recomb.cpp:759
bool lgCS_Fujim[NISO]
Definition: iso.h:473
const char * chName() const
Definition: iso.h:403
const int NISO
Definition: cddefines.h:321
const int ipHe2p3P1
Definition: iso.h:49
long int max_num_levels
Definition: iso.cpp:16
double xLineTotCool
Definition: iso.h:670
const int ipHe3d3D
Definition: iso.h:57
Definition: iso.h:515
bool lgCompileRecomb[NISO]
Definition: iso.h:465
double iso_RRCoef_Te(long ipISO, long nelem, double temp, long n)
Definition: iso_radiative_recomb.cpp:733
const int ipHe2p3P0
Definition: iso.h:48
double RecomInducCool_Rate
Definition: iso.h:688
bool lgCS_therm_ave[NISO]
Definition: iso.h:473
void iso_recomb_alloc()
Definition: iso_radiative_recomb.cpp:780
map< QNPack, long > QNPack2Index
Definition: iso.h:542
const int ipHe2s3S
Definition: iso.h:46
map< QNPair, double > CachedAs
Definition: iso.h:593
long int numLevels_alloc
Definition: iso.h:637
long int nCollapsed_max
Definition: iso.h:622
const int IPCOLLIS
Definition: iso.h:89
long iso_get_total_num_levels(long ipISO, long nmaxResolved, long numCollapsed)
Definition: iso_create.cpp:1480
int ipResoRedist[NISO]
Definition: iso.h:459
void iso_suprathermal(long ipISO, long nelem)
Definition: iso_collide.cpp:91
const int ipHe2p1P
Definition: iso.h:51
double dLTot
Definition: iso.h:673
const int RECOMBMAGIC
Definition: iso.h:108
string iso_comment_tran_levels(long ipISO, long nelem, long ipLo, long ipHi)
Definition: prt_lines_hydro.cpp:40
const int ENERGIESMAGIC
Definition: iso.h:110
Definition: iso.h:140
const int ipAR_LIKE
Definition: iso.h:81
bool lgCS_None[NISO]
Definition: iso.h:473
const int SumUpToThisN
Definition: iso.h:106
static long int globalISO
Definition: iso_radiative_recomb.cpp:38
const int ipHe3p3P
Definition: iso.h:56
QNPack hi
Definition: iso.h:142
bool operator<(const QNPair &q2) const
Definition: iso.h:144
bool lgColl_l_mixing[NISO]
Definition: iso.h:421
Definition: iso.h:85
void iso_radiative_recomb_effective(long ipISO, long nelem)
Definition: iso_radiative_recomb.cpp:627
multi_arr< long, 2 > ipTrans
Definition: iso.h:549
bool lgRandErrGen[NISO]
Definition: iso.h:496
const int ipHe1s1S
Definition: iso.h:43
void iso_photo(long ipISO, long nelem)
void iso_put_error(long ipISO, long nelem, long ipHi, long ipLo, long whichData, realnum errorOpt, realnum errorPess)
bool lgPrtDepartCoef
Definition: iso.h:600
bool lgLTE_levels[NISO]
Definition: iso.h:429
vector< freeBound > fb
Definition: iso.h:553
const int ipP_LIKE
Definition: iso.h:78
bool lgCS_Vrinceanu[NISO]
Definition: iso.h:473
long int iso_Max_Emitting_Level(long nelem, long ipISO, bool lgPrnIsoCollapsed)
Definition: iso.cpp:249
bool lgCS_vrgm[NISO]
Definition: iso.h:473
double RRC_TeUsed[NISO][LIMELM]
Definition: iso.h:504
const int ipLI_LIKE
Definition: iso.h:66
long QN2Index(QNPack ind)
Definition: iso.cpp:142
realnum Error[3]
Definition: iso.h:530
t_isoCTRL iso_ctrl
Definition: iso.cpp:12
bool lgPopLTE_OK
Definition: iso.h:658
realnum SmallA
Definition: iso.h:456
QNPair(int nhi, int lhi, int shi, int ghi, int nlo, int llo, int slo, int glo)
Definition: iso.h:148
vector< double > HighestLevelOpacStack
Definition: iso.h:703
long int n_HighestResolved_local
Definition: iso.h:642
void iso_multiplet_opacities(void)
Definition: iso_level.cpp:758
multi_arr< double, 2 > BranchRatio
Definition: iso.h:552
const int ipCL_LIKE
Definition: iso.h:80
void iso_collapsed_update(void)
Definition: iso_solve.cpp:26
bool lgColl_excite[NISO]
Definition: iso.h:424
static long int globalZ
Definition: iso_radiative_recomb.cpp:38
vector< two_photon > TwoNu
Definition: iso.h:701
QNPack QN2ind(long n, long l, long s, long g=-1)
Definition: iso.h:114
void iso_update_num_levels(long ipISO, long nelem)
Definition: iso_create.cpp:1503
long int n_HighestResolved_max
Definition: iso.h:640
const int ipHe2s1S
Definition: iso.h:47
long int nLyman_max[NISO]
Definition: iso.h:414
int nCS_new[NISO]
Definition: iso.h:489
Definition: quantumstate.h:35
Definition: iso.h:85
bool lgLevelsLowered
Definition: iso.h:609
void iso_cool(long ipISO, long nelem)
long int nLyman[NISO]
Definition: iso.h:414
const int ipH1s
Definition: iso.h:29
long int nLyman_alloc[NISO]
Definition: iso.h:414
uint64 QNPack
Definition: iso.h:112
void iso_departure_coefficients(long ipISO, long nelem)
Definition: iso_solve.cpp:397
const int RREC_MAXN
Definition: iso.h:97
const int ipB_LIKE
Definition: iso.h:68
void iso_error_generation(long ipISO, long nelem)
Definition: iso_error.cpp:81
void iso_satellite_update(long nelem)
Definition: iso_create.cpp:1396
const int ipHe3p1P
Definition: iso.h:59
const char * chISO[NISO]
Definition: iso.h:410
void iso_level(const long ipISO, const long nelem, double &renorm)
double cLyrest_cool
Definition: iso.h:682
void iso_charge_transfer_update(long nelem)
Definition: iso_ionize_recombine.cpp:18
const int ipNA_LIKE
Definition: iso.h:74
double coll_ion
Definition: iso.h:664
Definition: iso.h:84
bool lgCS_PSM20[NISO]
Definition: iso.h:473
TransitionList * tr
Definition: iso.h:555
bool lgCS_PS64[NISO]
Definition: iso.h:473
bool lgDielRecom[NISO]
Definition: iso.h:447
float realnum
Definition: cddefines.h:127
Definition: iso.h:84
const int ipH4p
Definition: iso.h:36
bool lgPrintNumberOfLevels
Definition: iso.h:408
double hydro_energy(long nelem, long n, long l, long s, long g)
Definition: iso_create.cpp:154
void iso_recomb_auxiliary_free()
Definition: iso_radiative_recomb.cpp:836
bool lgLevelsEverLowered
Definition: iso.h:613
bool lgPrtLevelPops
Definition: iso.h:606
long max(int a, long b)
Definition: cddefines.h:821
const int ipHe3s3S
Definition: iso.h:54
Definition: iso.h:84
void iso_radiative_recomb(long ipISO, long nelem)
Definition: iso_radiative_recomb.cpp:147
void iso_collisional_ionization(long ipISO, long nelem)
Definition: iso_collide.cpp:28
bool lgPrtNCrit
Definition: iso.h:603
double RecomCollisFrac
Definition: iso.h:655
const int ipH3s
Definition: iso.h:32
void iso_solve(long ipISO, long nelem, double &maxerr)
Definition: iso_solve.cpp:95
double iso_cross_section(double ERyd, double EthRyd, long n, long l, long S, long globalZ, long globalISO)
Definition: iso_radiative_recomb.cpp:130
const int ipMG_LIKE
Definition: iso.h:75
bool lgKeepFS
Definition: iso.h:500
void comment(t_warnings &)
Definition: iso.h:401
t_isoCTRL()
Definition: iso.h:506
const int ipH3d
Definition: iso.h:34
void iso_init_energies()
Definition: iso.cpp:280
void iso_update_rates(void)
Definition: iso_solve.cpp:44
const int ipS_LIKE
Definition: iso.h:79
double cBal_cool
Definition: iso.h:679
bool lgCritDensLMix[NISO]
Definition: iso.h:492
bool lgNoMaser[NISO][LIMELM]
Definition: iso.h:450
TransitionProxy trans(const long ipHi, const long ipLo)
Definition: iso.h:545
Definition: iso.h:540
long QN2Index(long n, long l, long s, long g=-1)
Definition: iso.h:559
int nLyaLevel[NISO]
Definition: iso.h:462
bool lgInd2nu_On
Definition: iso.h:437
bool lgPopsRescaled
Definition: iso.h:619
double FreeBnd_net_Cool_Rate
Definition: iso.h:661
const int ipH2p
Definition: iso.h:31
multi_arr< double, 2 > CascadeProb
Definition: iso.h:551
bool lgCS_Seaton[NISO]
Definition: iso.h:473
multi_arr< extra_tr, 2 > ex
Definition: iso.h:550
double cLya_cool
Definition: iso.h:685
#define ASSERT(exp)
Definition: cddefines.h:637
double qTot2S
Definition: iso.h:698
const int ipH2s
Definition: iso.h:30
int ipLyaRedist[NISO]
Definition: iso.h:459
bool lgCS_VOS12[NISO]
Definition: iso.h:473
double RadRec_effec
Definition: iso.h:652
double energy(long n, long l, long s, long g=-1) const
Definition: iso.h:572
void iso_recomb_setup(long ipISO)
Definition: iso_radiative_recomb.cpp:845
const int ipH_LIKE
Definition: iso.h:64
const int LIMELM
Definition: cddefines.h:318
const int ipHe2p3P2
Definition: iso.h:50
Definition: energy.h:9
double iso_state_lifetime(long ipISO, long nelem, long n, long l)
Definition: iso_create.cpp:1079
int LIKE_RREC_MAXN(int nelem)
Definition: iso.h:100
const int ipHELIUM
Definition: cddefines.h:360
void iso_cascade(long ipISO, long nelem)
Definition: iso_create.cpp:1123
bool lgCS_VOS_thermal[NISO]
Definition: iso.h:473
void iso_create(void)
Definition: iso_create.cpp:192
double pestrk
Definition: iso.h:519
Definition: transition.h:297
bool lgCS_VOS12QM[NISO]
Definition: iso.h:473
void iso_setRedisFun(long ipISO, long nelem, long ipLo, long ipHi)
Definition: iso_create.cpp:58
Definition: freebound.h:9
const int ipSI_LIKE
Definition: iso.h:77
QNPack lo
Definition: iso.h:143
const int IPRAD
Definition: iso.h:88
const int ipBE_LIKE
Definition: iso.h:67
int ipSubRedist[NISO]
Definition: iso.h:459
void iso_renorm(long nelem, long ipISO, double &renorm)
Definition: iso_solve.cpp:306
void IonHydro()
Definition: iso_solve.cpp:183
bool lgCollStrenThermAver
Definition: iso.h:433
double xIonSimple
Definition: iso.h:597
bool lgCS_Lebedev[NISO]
Definition: iso.h:473
bool lgPrtMatrix
Definition: iso.h:706
realnum stat_ion[NISO]
Definition: iso.h:444
Definition: transition.h:23
const int ipH4s
Definition: iso.h:35
#define S(I_, J_)
Definition: optimize_subplx.cpp:1826
double RadRecCool
Definition: iso.h:676
bool lgCS_B72[NISO]
Definition: iso.h:473
long int numLevels_max
Definition: iso.h:628
void iso_prt_pops(long ipISO, long nelem, bool lgPrtDeparCoef)
Definition: iso_solve.cpp:421
const int ipNE_LIKE
Definition: iso.h:73
double cRest_cool
Definition: iso.h:667
bool lgTopoff[NISO]
Definition: iso.h:502
realnum ErrorFactor[3]
Definition: iso.h:534
realnum CaseBCheck
Definition: iso.h:645
void iso_setOpacity(long ipISO, long nelem, long ipLo, long ipHi)
Definition: iso_create.cpp:92
const int ipHe3d1D
Definition: iso.h:58
void iso_ionize_recombine(long ipISO, long nelem)
Definition: module.h:26
void iso_collide(long ipISO, long nelem)
Definition: iso_collide.cpp:132
const int ipH3p
Definition: iso.h:33
void iso_set_ion_rates(long ipISO, long nelem)
Definition: iso_level.cpp:813
long int numLevels_local
Definition: iso.h:633
long int nCollapsed_local
Definition: iso.h:623
const int ipF_LIKE
Definition: iso.h:72
const int ipH4f
Definition: iso.h:38
bool lgCS_PSdeg[NISO]
Definition: iso.h:473
const int ipN_LIKE
Definition: iso.h:70
const int ipHe3s1S
Definition: iso.h:55
bool lgMustReeval
Definition: iso.h:616
bool lgCS_Vriens[NISO]
Definition: iso.h:473
bool lgErrGenDone
Definition: iso.h:695
double iso_dielec_recomb_rate(long ipISO, long nelem, long ipLo)
Definition: iso_radiative_recomb.cpp:1144
char chTypeAtomUsed[10]
Definition: iso.h:691
map< QNPack, double > Energy
Definition: iso.h:566
double IonPot
Definition: iso.h:569
const int ipO_LIKE
Definition: iso.h:71
bool lgNoRecombInterp[NISO]
Definition: iso.h:470