17 #define SMALLABUND 1e-24
39 typedef map<int, count_ptr<chem_nuclide> >::iterator
isotopes_i;
70 else if(
el->
Z==1 &&
A==2 )
144 typedef map<const count_ptr<chem_nuclide>, int,
164 for (nNucsMap::const_iterator el =
nNuclide.begin();
174 for (nNucsMap::const_iterator el =
nNuclide.begin();
177 if (el->first->el->Z-1 == nelem)
201 for( nNucsMap::reverse_iterator it=
nNuclide.rbegin(); it!=
nNuclide.rend(); ++it )
203 if (0 != it->second )
205 return it->first.get_ptr();
213 nNucsMap::const_reverse_iterator it1, it2;
218 if( *(it1->first) > *(it2->first) )
220 else if( *(it1->first) < *(it2->first) )
222 else if( it1->second > it2->second)
224 else if( it1->second < it2->second)
243 typedef molecule::nNucsMap::reverse_iterator
nNucs_ri;
244 typedef molecule::nNucsMap::const_reverse_iterator
nNucs_cri;
315 return "mole_global";
370 static void sort(MoleculeList::iterator
start,
371 MoleculeList::iterator end);
408 return mole_global.
list[
index].get_ptr();
454 double findrk(
const char buf[])
const;
455 double findrate(
const char buf[])
const;
512 vector< int >& numAtoms,
515 string embellishments,
516 vector<string>& newLabels );
521 vector< int >& numAtoms,
524 string embellishments,
529 bool &lgExcit,
int &charge,
bool &lgGas_Phase );
537 inline double hmrate4(
double a,
double b,
double c,
double te )
539 if( b == 0. && c == 0. )
542 return a*pow(te/300.,b);
546 return a*pow(te/300.,b)*
sexp(c/te);
double sink_rate_tot(const char chSpecies[]) const
t_mole_global mole_global
int compare(const chem_nuclide &b) const
static void sort(MoleculeList::iterator start, MoleculeList::iterator end)
vector< double > reaction_rks
molecule::nNucsMap::iterator nNucs_i
void mole_create_react(void)
vector< bool > lgTreatIsotopes
realnum total_molecules(void)
map< int, count_ptr< chem_nuclide > >::iterator isotopes_i
void total_molecule_deut(realnum &total)
const molecule * global() const
bool operator<(const count_ptr< T > &a, const count_ptr< T > &b)
void mole_make_list(void)
void comment(t_warnings &)
double findrk(const char buf[]) const
sys_float sexp(sys_float x)
vector< count_ptr< chem_element > > ChemElementList
molezone * findspecieslocal(const char buf[])
double source_rate_tot(const char chSpecies[]) const
bool operator!=(const count_ptr< T > &a, const count_ptr< T > &b)
ChemNuclideList nuclide_list
bool parse_species_label(const char label[], ChemNuclideList &atomsLeftToRight, vector< int > &numAtoms, string &embellishments)
vector< count_ptr< molecule > > MoleculeList
molezone * findspecieslocal_validate(const char buf[])
map< string, bool > offReactions
ChemElementList element_list
void mole_cmp_num_in_out_reactions(void)
double chem_heat(void) const
molecule::nNucsMap::reverse_iterator nNucs_ri
vector< double > old_reaction_rks
map< int, count_ptr< chem_nuclide > > isotopes
bool lgMeanAbundance(void) const
class molezone * local(void) const
chem_nuclide * null_nuclide
molecule * findspecies(const char buf[])
chem_element & operator=(const chem_element &)
void create_isotopologues_one_position(unsigned position, ChemNuclideList &atoms, vector< int > &numAtoms, string atom_old, string atom_new, string embellishments, string &newLabel)
realnum *** xMoleChTrRate
valarray< class molezone > species
double sink_rate(const molecule *const sp, const mole_reaction &rate) const
void mole_rk_bigchange(void)
count_ptr< chem_nuclide > findnuclide(const char buf[])
realnum total_molecules_gasphase(void)
bool operator()(const count_ptr< chem_nuclide > &a, const count_ptr< chem_nuclide > &b) const
bool exists(const molecule *m)
map< const count_ptr< chem_nuclide >, int, element_pointer_value_less > nNucsMap
bool operator>=(const count_ptr< T > &a, const count_ptr< T > &b)
int compare(const molecule &mol2) const
molecule::nNucsMap::const_reverse_iterator nNucs_cri
vector< count_ptr< chem_nuclide > > ChemNuclideList
void mole_update_sources(void)
chem_nuclide * heavyAtom(void)
void set_isotope_abundances(void)
double findrate(const char buf[]) const
STATIC void start(long, realnum[], realnum[], long, long[], realnum *, int *)
bool operator==(const count_ptr< T > &a, const count_ptr< T > &b)
bool isMonatomic(void) const
bool operator<=(const count_ptr< T > &a, const count_ptr< T > &b)
bool operator>(const count_ptr< T > &a, const count_ptr< T > &b)
bool lgGrain_mole_deplete
bool lgDifferByExcitation(const molecule &mol1, const molecule &mol2)
void mole_update_species_cache(void)
const char * chName() const
const char * chName() const
double dissoc_rate(const char chSpecies[]) const
void comment(t_warnings &)
bool isIsotopicTotalSpecies() const
mole_reaction * mole_findrate_s(const char buf[])
map< string, Properties > speciesProperties
double hmrate4(double a, double b, double c, double te)
void mole_make_groups(void)
chem_element * null_element
void total_molecule_elems(realnum total[LIMELM])
molecule * findspecies_validate(const char buf[])
bool lgHasLinkedIon(void) const
chem_element(int Z, const char *label)
void create_isotopologues(ChemNuclideList &atoms, vector< int > &numAtoms, string atom_old, string atom_new, string embellishments, vector< string > &newLabels)
void ParseChemistry(Parser &p)