13 #define SMALLABUND 1e-24
35 typedef map<int, count_ptr<chem_atom> >::iterator
isotopes_i;
59 else if(
el->
Z==1 &&
A==2 )
77 else if (
el->
Z > b.
el->
Z )
134 typedef map<const count_ptr<chem_atom>, int,
150 for (nAtomsMap::const_iterator el =
nAtom.begin();
151 el !=
nAtom.end(); ++el)
159 if (
nAtom.size() == 1 &&
nAtom.begin()->second == 1)
173 for( nAtomsMap::reverse_iterator it=
nAtom.rbegin(); it!=
nAtom.rend(); ++it )
175 if (0 != it->second )
177 return it->first.get_ptr();
185 nAtomsMap::const_reverse_iterator it1, it2;
187 for( it1 =
nAtom.rbegin(), it2 = mol2.
nAtom.rbegin();
188 it1 !=
nAtom.rend() && it2 != mol2.
nAtom.rend(); ++it1, ++it2 )
190 if( *(it1->first) > *(it2->first) )
192 else if( *(it1->first) < *(it2->first) )
194 else if( it1->second > it2->second)
196 else if( it1->second < it2->second)
200 if( it1 !=
nAtom.rend() && it2 == mol2.
nAtom.rend() )
202 else if( it1 ==
nAtom.rend() && it2 != mol2.
nAtom.rend() )
215 typedef molecule::nAtomsMap::reverse_iterator
nAtoms_ri;
216 typedef molecule::nAtomsMap::const_reverse_iterator
nAtoms_cri;
319 static void sort(MoleculeList::iterator
start,
320 MoleculeList::iterator end);
341 double findrk(
const char buf[])
const;
342 double findrate(
const char buf[])
const;
409 extern void mole_punch(FILE *punit,
const char speciesname[],
const char args[],
bool lgHeader,
bool lgData,
double depth);
433 vector< int >& numAtoms,
436 string embellishments,
437 vector<string>& newLabels );
441 bool &lgExcit,
int &charge,
bool &lgGas_Phase );
double sink_rate_tot(const char chSpecies[]) const
t_mole_global mole_global
map< int, count_ptr< chem_atom > > isotopes
static void sort(MoleculeList::iterator start, MoleculeList::iterator end)
vector< double > reaction_rks
void mole_create_react(void)
void mole_punch(FILE *punit, const char speciesname[], const char args[], bool lgHeader, bool lgData, double depth)
chem_atom * heavyAtom(void)
vector< bool > lgTreatIsotopes
realnum total_molecules(void)
molecule::nAtomsMap::const_reverse_iterator nAtoms_cri
void total_molecule_deut(realnum &total)
bool operator<(const count_ptr< T > &a, const count_ptr< T > &b)
void mole_make_list(void)
double findrk(const char buf[]) const
map< int, count_ptr< chem_atom > >::iterator isotopes_i
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)
vector< count_ptr< molecule > > MoleculeList
int compare(const chem_atom &b) const
void mole_cmp_num_in_out_reactions(void)
double chem_heat(void) const
vector< double > old_reaction_rks
void mole_print_species_reactions(molecule *speciesToPrint)
molecule * findspecies(const char buf[])
molecule::nAtomsMap::reverse_iterator nAtoms_ri
chem_element & operator=(const chem_element &)
bool parse_species_label(const char label[], ChemAtomList &atomsLeftToRight, vector< int > &numAtoms, string &embellishments)
realnum *** xMoleChTrRate
valarray< class molezone > species
double sink_rate(const molecule *const sp, const mole_reaction &rate) const
void mole_rk_bigchange(void)
void create_isotopologues_one(ChemAtomList &atoms, vector< int > &numAtoms, string atom_old, string atom_new, string embellishments, vector< string > &newLabels)
realnum total_molecules_gasphase(void)
bool operator>=(const count_ptr< T > &a, const count_ptr< T > &b)
int compare(const molecule &mol2) const
void mole_update_sources(void)
bool lgMeanAbundance(void) const
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)
void set_location(long nelem, long ion, double *dense)
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)
ChemAtomList unresolved_atom_list
double dissoc_rate(const char chSpecies[]) const
mole_reaction * mole_findrate_s(const char buf[])
bool operator()(const count_ptr< chem_atom > &a, const count_ptr< chem_atom > &b) const
void mole_make_groups(void)
chem_element * null_element
void total_molecule_elems(realnum total[LIMELM])
map< const count_ptr< chem_atom >, int, element_pointer_value_less > nAtomsMap
chem_element(int Z, const char *label)
vector< count_ptr< chem_atom > > ChemAtomList
molecule::nAtomsMap::iterator nAtoms_i