133 for (ChemNuclideList::iterator atom =
nuclide_list.begin();
136 if( !(*atom)->lgHasLinkedIon())
138 const long int nelem=(*atom)->el->Z-1;
142 for (
long int ion=0;ion<nelem+2;ion++)
144 if ((*atom)->ipMl[ion] != -1)
182 bool lgHi_Down =
false;
183 bool lgHi_Up =
false;
186 bool lgLo_Up =
false;
187 bool lgLo_Down =
false;
237 trimhi =
MIN2( trimhi , 1e-20f );
249 trimhi =
MIN2( trimhi , 1e-17f );
254 trimhi =
MIN2( trimhi , 1e-12f );
266 trimhi =
MIN2(trimhi, 1e-20f);
296 iso_sp[ipISO][nelem].st[level].Pop() = 0.;
324 iso_sp[ipISO][nelem].st[level].Pop() = 0.;
345 "PROBLEM DISASTER the density of ion %li of element %s is too small to be computed on this cpu.\n",
349 "Turn off the element with the command ELEMENT XXX OFF or do not consider "
350 "gas with low density, the current hydrogen density is %.2e cm-3.\n",
353 "The outer radius of the cloud is %.2e cm - should a stopping "
357 "The abort flag is being set - the calculation is stopping.\n");
386 iso_sp[ipISO][nelem].st[level].Pop() = 0.;
398 lgHi_Up_enable =
true;
401 lgHi_Up_enable =
false;
404 lgHi_Up_enable =
false;
407 lgHi_Up_enable =
false;
410 lgHi_Up_enable =
false;
425 abundnew > abundold*1.01 )
436 if (ipISO >= 0 && ipISO <
NISO)
456 if (ipISO >= 0 && ipISO <
NISO)
476 iso_sp[ipISO][nelem].st[level].Pop() = 0.;
504 iso_sp[ipISO][nelem].st[level].Pop() = 0.;
532 enum {DEBUG_LOC=
false};
533 if( DEBUG_LOC && nelem ==
ipHELIUM )
535 if( lgHi_Down ||lgHi_Up ||lgLo_Up ||lgLo_Down )
568 if( lgHi_Down || lgHi_Up || lgLo_Up || lgLo_Down )
573 enum {DEBUG_LOC=
false};
618 bool lgHi_Down =
false;
620 bool lgLo_Up =
false;
624 realnum trimhi , trimlo, trimcharge;
669 trimhi =
MIN2( trimhi , 1e-20f );
681 trimhi =
MIN2( trimhi , 1e-17f );
686 trimhi =
MIN2( trimhi , 1e-12f );
698 trimhi =
MIN2(trimhi, 1e-20f);
718 "PROBLEM DISASTER the density of ion %li of element %s is too small to be computed on this cpu.\n",
722 "Turn off the element with the command ELEMENT XXX OFF or do not consider "
723 "gas with low density, the current hydrogen density is %.2e cm-3.\n",
726 "The outer radius of the cloud is %.2e cm - should a stopping "
730 "The abort flag is being set - the calculation is stopping.\n");
753 if ( ipISO>=0 && ipISO<
NISO )
756 iso_sp[ipISO][nelem].st[level].Pop() = 0.;
779 if ( ipISO>=0 && ipISO<
NISO )
782 iso_sp[ipISO][nelem].st[level].Pop() = 0.;
801 enum {DEBUG_LOC=
false};
802 if( DEBUG_LOC && nelem ==
ipHELIUM )
804 if( lgHi_Down ||lgLo_Up )
825 if( lgHi_Down || lgLo_Up )
830 enum {DEBUG_LOC=
false};
877 double abundnew =
abund;
884 if (ipISO >= 0 && ipISO <
NISO)
893 if (ipISO >= 0 && ipISO <
NISO)
896 double frac = abund/abundnew;
939 for(
long ion=
dense.
IonHigh[nelem]+1; ion<=nelem+1; ++ion )
void ion_trim(long int nelem)
t_mole_global mole_global
realnum SetIoniz[LIMELM][LIMELM+1]
void ion_widen(long nelem)
long int IonHigh[LIMELM+1]
void ion_trim_untrim(long nelem)
void ion_trim_invalidate(long nelem)
ChemNuclideList nuclide_list
double anu(size_t i) const
t_elementnames elementnames
t_iso_sp iso_sp[NISO][LIMELM]
STATIC void ion_trim_from_set(long nelem)
double xIonDense[LIMELM][LIMELM+1]
long int IonLow[LIMELM+1]
void ion_trim2(long int nelem)
void setHeating(long nelem, long ion, double heating)
realnum gas_phase[LIMELM]
void ion_trim_small(long nelem, double abund_total)
double Valence_IP_Ryd[LIMELM][LIMELM]
#define DEBUG_ENTRY(funcname)
int fprintf(const Output &stream, const char *format,...)
sys_float SDIV(sys_float x)
char chElementName[LIMELM][CHARS_ELEMENT_NAME]
void ion_trim_validate(long nelem, bool lgIonizTrimCalled)
long int ipHeavy[LIMELM][LIMELM]