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-2022 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_VOS12[NISO],
488  int nCS_new[NISO];//vals are 0, 1, and 2
489 
492 
496 
498 
499  bool lgKeepFS;
500 
501  bool lgTopoff[NISO];
502 
504 
506  {
507  chISO[ipH_LIKE] = "H-like ";
508  chISO[ipHE_LIKE] = "He-like";
509  }
510 };
511 
512 extern t_isoCTRL iso_ctrl;
513 
514 class extra_tr
515 {
516 public:
518  double pestrk;
519  double pestrk_up;
520 
521  /* NB NB NB --- Error and ErrorFactor need one more slot than all the rest of these! */
522  /* and the last dimension can just be hardwired to 3 */
523 
525  /* first dimension is upper level,
526  * second is lower level,
527  * third is for radiative, collisional, or energy errors.
528  * MACROS are used for the last dimension: IPRAD, IPCOLLIS, and IPENERGY. */
530 
534 
537 };
538 
539 class t_iso_sp
540 {
541  map<QNPack, long> QNPack2Index;
542 
543 public:
544  TransitionProxy trans( const long ipHi, const long ipLo )
545  {
546  return (*tr)[ ipTrans[ipHi][ipLo] ];
547  }
552  vector<freeBound> fb;
555 
557  long QN2Index(QNPack ind);
558  long QN2Index(long n, long l, long s, long g = -1)
559  {
560  QNPack ind = QN2ind(n, l, s, g);
561  return QN2Index(ind);
562  }
563 
565  map<QNPack, double> Energy;
566 
568  double IonPot;
569 
571  double energy(long n, long l, long s, long g = -1) const
572  {
573  QNPack ind = QN2ind(n, l, s, g);
574  auto p = Energy.find(ind);
575  if( p != Energy.end() )
576  return p->second;
577  else
578  return -1.;
579  }
580 
582  double energy_ioniz(long n, long l, long s, long g = -1) const
583  {
584  double ERelToground = energy(n, l, s, g);
585  if( ERelToground >= 0. && ERelToground < IonPot )
586  return IonPot - ERelToground;
587  else
588  return -1.;
589  }
590 
592  map<QNPair, double> CachedAs;
593 
596  double xIonSimple;
597 
600 
603 
606 
609 
613 
614  /* flag that says we must reevaluate everything about this ion */
616 
617  /* set true if "element ionization" forces rescaling of pops */
619 
621  long int nCollapsed_max;
623 
627  long int numLevels_max;
628 
632  long int numLevels_local;
633 
636  long int numLevels_alloc;
637 
642 
645 
647  double RadRec_caseB;
648 
651  double RadRec_effec;
652 
655 
658 
661 
663  double coll_ion;
664 
666  double cRest_cool;
667 
669  double xLineTotCool;
670 
672  double dLTot;
673 
675  double RadRecCool;
676 
678  double cBal_cool;
679 
681  double cLyrest_cool;
682 
684  double cLya_cool;
685 
688 
690  char chTypeAtomUsed[10];
691 
695 
697  double qTot2S;
698 
699  void Reset();
700  vector<two_photon> TwoNu;
701 
702  vector<double> HighestLevelOpacStack;
703 
708 };
709 
710 extern t_iso_sp iso_sp[NISO][LIMELM];
711 
713 void iso_renorm( long nelem, long ipISO, double& renorm );
714 
716 void iso_multiplet_opacities( void );
717 
718 /* iso_comment_tran_levels - prepare comment string for entry to the line stack.
719  * The comment has the form 'H-like, 1 3, 1^2S - 2^2P', where '1 3' are the energy
720  * level indices, 1 being ground.
721  *
722  * \param ipISO iso-sequence index
723  * \param nelem element index
724  * \param ipLo, ipHi lower and upper level indices
725  * \return comment string
726  */
727 string iso_comment_tran_levels( long ipISO, long nelem, long ipLo, long ipHi );
728 
729 #endif /* ISO_H_ */
const int N_ISO_TE_RECOMB
Definition: iso.h:102
bool lgImgMatrix
Definition: iso.h:707
#define MAX4(a, b, c, d)
Definition: cddefines.h:838
double SigmaCascadeProb
Definition: iso.h:536
Definition: warnings.h:11
Definition: iso.h:397
const int ipAL_LIKE
Definition: iso.h:76
double pestrk_up
Definition: iso.h:519
t_iso_sp iso_sp[NISO][LIMELM]
Definition: iso.cpp:13
const int ipH4d
Definition: iso.h:37
const int ipC_LIKE
Definition: iso.h:69
void Reset()
Definition: iso.cpp:121
bool lgContinuumLoweringEnabled[NISO]
Definition: iso.h:440
Definition: two_photon.h:9
void zero()
Definition: iso.cpp:17
void iso_init()
Definition: iso.cpp:164
qList st
Definition: iso.h:553
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:582
bool lgPessimisticErrors
Definition: iso.h:497
double RadRec_caseB
Definition: iso.h:647
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:15
double xLineTotCool
Definition: iso.h:669
const int ipHe3d3D
Definition: iso.h:57
Definition: iso.h:514
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:687
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:541
const int ipHe2s3S
Definition: iso.h:46
map< QNPair, double > CachedAs
Definition: iso.h:592
long int numLevels_alloc
Definition: iso.h:636
long int nCollapsed_max
Definition: iso.h:621
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:672
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:548
bool lgRandErrGen[NISO]
Definition: iso.h:495
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:599
bool lgLTE_levels[NISO]
Definition: iso.h:429
vector< freeBound > fb
Definition: iso.h:552
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:247
bool lgCS_vrgm[NISO]
Definition: iso.h:473
double RRC_TeUsed[NISO][LIMELM]
Definition: iso.h:503
const int ipLI_LIKE
Definition: iso.h:66
long QN2Index(QNPack ind)
Definition: iso.cpp:140
realnum Error[3]
Definition: iso.h:529
t_isoCTRL iso_ctrl
Definition: iso.cpp:11
bool lgPopLTE_OK
Definition: iso.h:657
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:702
long int n_HighestResolved_local
Definition: iso.h:641
void iso_multiplet_opacities(void)
Definition: iso_level.cpp:758
multi_arr< double, 2 > BranchRatio
Definition: iso.h:551
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:700
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:639
const int ipHe2s1S
Definition: iso.h:47
long int nLyman_max[NISO]
Definition: iso.h:414
int nCS_new[NISO]
Definition: iso.h:488
Definition: quantumstate.h:35
Definition: iso.h:85
bool lgLevelsLowered
Definition: iso.h:608
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:681
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:663
Definition: iso.h:84
TransitionList * tr
Definition: iso.h:554
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:612
bool lgPrtLevelPops
Definition: iso.h:605
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:602
double RecomCollisFrac
Definition: iso.h:654
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:499
void comment(t_warnings &)
Definition: iso.h:401
t_isoCTRL()
Definition: iso.h:505
const int ipH3d
Definition: iso.h:34
void iso_init_energies()
Definition: iso.cpp:278
void iso_update_rates(void)
Definition: iso_solve.cpp:44
const int ipS_LIKE
Definition: iso.h:79
double cBal_cool
Definition: iso.h:678
bool lgCritDensLMix[NISO]
Definition: iso.h:491
bool lgNoMaser[NISO][LIMELM]
Definition: iso.h:450
TransitionProxy trans(const long ipHi, const long ipLo)
Definition: iso.h:544
Definition: iso.h:539
long QN2Index(long n, long l, long s, long g=-1)
Definition: iso.h:558
int nLyaLevel[NISO]
Definition: iso.h:462
bool lgInd2nu_On
Definition: iso.h:437
bool lgPopsRescaled
Definition: iso.h:618
double FreeBnd_net_Cool_Rate
Definition: iso.h:660
const int ipH2p
Definition: iso.h:31
multi_arr< double, 2 > CascadeProb
Definition: iso.h:550
bool lgCS_Seaton[NISO]
Definition: iso.h:473
multi_arr< extra_tr, 2 > ex
Definition: iso.h:549
double cLya_cool
Definition: iso.h:684
#define ASSERT(exp)
Definition: cddefines.h:637
double qTot2S
Definition: iso.h:697
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:651
double energy(long n, long l, long s, long g=-1) const
Definition: iso.h:571
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:518
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:596
bool lgCS_Lebedev[NISO]
Definition: iso.h:473
bool lgPrtMatrix
Definition: iso.h:705
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:675
bool lgCS_B72[NISO]
Definition: iso.h:473
long int numLevels_max
Definition: iso.h:627
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:666
bool lgTopoff[NISO]
Definition: iso.h:501
realnum ErrorFactor[3]
Definition: iso.h:533
realnum CaseBCheck
Definition: iso.h:644
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:632
long int nCollapsed_local
Definition: iso.h:622
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:615
bool lgCS_Vriens[NISO]
Definition: iso.h:473
bool lgErrGenDone
Definition: iso.h:694
double iso_dielec_recomb_rate(long ipISO, long nelem, long ipLo)
Definition: iso_radiative_recomb.cpp:1144
char chTypeAtomUsed[10]
Definition: iso.h:690
map< QNPack, double > Energy
Definition: iso.h:565
double IonPot
Definition: iso.h:568
const int ipO_LIKE
Definition: iso.h:71
bool lgNoRecombInterp[NISO]
Definition: iso.h:470