74 else if(
el()->Z==1 &&
A==2 )
90 if (
el()->Z < b.
el()->
Z )
92 if (
el()->Z > b.
el()->
Z )
138 const shared_ptr<chem_nuclide>& b)
const
147 typedef map<const shared_ptr<chem_nuclide>, int,
167 for (nNucsMap::const_iterator el =
nNuclide.begin();
177 for (nNucsMap::const_iterator el =
nNuclide.begin();
180 if (el->first->el()->Z-1 == nelem)
221 for( nNucsMap::reverse_iterator it=
nNuclide.rbegin(); it!=
nNuclide.rend(); ++it )
223 if (0 != it->second )
225 return it->first.get();
233 nNucsMap::const_reverse_iterator it1, it2;
238 if( *(it1->first) > *(it2->first) )
240 else if( *(it1->first) < *(it2->first) )
242 else if( it1->second > it2->second)
244 else if( it1->second < it2->second)
263typedef molecule::nNucsMap::reverse_iterator
nNucs_ri;
264typedef molecule::nNucsMap::const_reverse_iterator
nNucs_cri;
293extern shared_ptr<chem_nuclide>
findnuclide(
const char buf[]);
335 return "mole_global";
400 MoleculeList::iterator end);
483 double findrk(
const char buf[])
const;
484 double findrate(
const char buf[])
const;
548 vector< int >& numAtoms,
551 string embellishments,
552 vector<string>& newLabels );
557 vector< int >& numAtoms,
560 string embellishments,
565 bool &lgExcit,
int &charge,
bool &lgGas_Phase );
574inline double hmrate4(
double a,
double b,
double c,
double te )
582 if( b == 0. && c == 0. )
585 return a*
pow(te/300.,b);
589 return a*
pow(te/300.,b)*
sexp(c/te);
t_atoms atoms
Definition atoms.cpp:5
#define NULL
Definition cddefines.h:115
#define ASSERT(exp)
Definition cddefines.h:637
sys_float sexp(sys_float x)
Definition service.cpp:1203
const int LIMELM
Definition cddefines.h:318
float realnum
Definition cddefines.h:127
double pow(double x, int i)
Definition cddefines.h:782
long min(int a, long b)
Definition cddefines.h:766
Definition transition.h:288
chem_element(int Z, const char *label)
Definition mole.h:27
~chem_element()
Definition mole.h:29
map< int, shared_ptr< chem_nuclide > > isotopes
Definition mole.h:33
const int Z
Definition mole.h:31
chem_element & operator=(const chem_element &)
const string label
Definition mole.h:32
double frac
Definition mole.h:52
int A
Definition mole.h:48
vector< int > ipMl
Definition mole.h:50
string label(void) const
Definition mole.h:70
chem_element * wel
Definition mole.h:47
realnum mass_amu
Definition mole.h:51
bool lgMeanAbundance(void) const
Definition mole.h:58
chem_element * el() const
Definition mole.h:54
int compare(const chem_nuclide &b) const
Definition mole.h:87
unsigned long index
Definition mole.h:49
bool lgHasLinkedIon(void) const
Definition mole.h:64
bool operator()(const shared_ptr< chem_nuclide > &a, const shared_ptr< chem_nuclide > &b) const
Definition mole.h:137
module()
Definition module.h:29
Definition mole_priv.h:48
int parentIndex
Definition mole.h:155
nNucsMap nNuclide
Definition mole.h:160
realnum form_enthalpy
Definition mole.h:209
bool lgGas_Phase
Definition mole.h:163
int charge
Definition mole.h:161
bool isEnabled
Definition mole.h:156
string parentLabel
Definition mole.h:150
chem_nuclide * heavyAtom(void)
Definition mole.h:219
bool lgExcit
Definition mole.h:162
realnum mole_mass
Definition mole.h:210
bool isIsotopicTotalSpecies() const
Definition mole.h:151
int nElement(int nelem)
Definition mole.h:174
string label
Definition mole.h:159
int compare(const molecule &mol2) const
Definition mole.h:231
map< const shared_ptr< chem_nuclide >, int, element_pointer_value_less > nNucsMap
Definition mole.h:148
class molezone * local(void) const
Definition mole.h:511
enum mole_state state
Definition mole.h:213
int groupnum
Definition mole.h:214
bool isMolecule() const
Definition mole.h:202
int n_react
Definition mole.h:215
int n_nuclei(void) const
Definition mole.h:164
bool isMonatomic(void) const
Definition mole.h:190
int index
Definition mole.h:214
int index
Definition mole.h:432
qList * levels
Definition mole.h:446
const molecule * global() const
Definition mole.h:433
realnum column
Definition mole.h:451
double snk
Definition mole.h:443
double * location
Definition mole.h:440
void init(void)
Definition mole.h:413
double den
Definition mole.h:450
double src
Definition mole.h:443
void zero(void)
Definition mole.h:421
chem_nuclide * atomLim
Definition mole.h:452
realnum xFracLim
Definition mole.h:453
realnum column_old
Definition mole.h:456
species * dbase
Definition mole.h:445
TransitionList * lines
Definition mole.h:447
molezone()
Definition mole.h:409
Definition quantumstate.h:36
void comment(t_warnings &)
Definition mole.h:338
bool lgLeidenHack
Definition mole.h:357
bool lgNoHeavyMole
Definition mole.h:348
bool lgH2Ozer
Definition mole.h:351
map< string, bool > offReactions
Definition mole.h:396
bool lgFederman
Definition mole.h:364
bool lgNeutrals
Definition mole.h:381
void make_species(void)
Definition mole_species.cpp:112
int num_compacted
Definition mole.h:391
vector< shared_ptr< molecule > > MoleculeList
Definition mole.h:393
const char * chName() const
Definition mole.h:333
bool lgStancil
Definition mole.h:366
void zero()
Definition mole.cpp:10
MoleculeList list
Definition mole.h:394
int num_calc
Definition mole.h:391
bool lgNoMole
Definition mole.h:345
map< string, Properties > speciesProperties
Definition mole.h:397
bool lgNonEquilChem
Definition mole.h:371
void init(void)
Definition mole.cpp:59
static void sort(MoleculeList::iterator start, MoleculeList::iterator end)
vector< bool > lgTreatIsotopes
Definition mole.h:388
int num_total
Definition mole.h:391
bool lgGrain_mole_deplete
Definition mole.h:385
bool lgProtElim
Definition mole.h:376
void zero()
Definition mole.cpp:119
double dissoc_rate(const char chSpecies[]) const
Definition mole_reactions.cpp:4248
multi_arr< realnum, 3 > xMoleChTrRate
Definition mole.h:495
vector< double > reaction_rks
Definition mole.h:499
double sink_rate(const molecule *const sp, const mole_reaction &rate) const
Definition mole_reactions.cpp:4219
double source_rate_tot(const char chSpecies[]) const
Definition mole_reactions.cpp:4325
double grain_density
Definition mole.h:486
double findrate(const char buf[]) const
Definition mole_reactions.cpp:4167
double findrk(const char buf[]) const
Definition mole_reactions.cpp:4153
vector< double > old_reaction_rks
Definition mole.h:500
void set_ion_locations()
Definition mole_species.cpp:1011
double grain_saturation
Definition mole.h:486
double grain_area
Definition mole.h:486
void alloc()
Definition mole.cpp:98
double chem_heat(void) const
Definition mole_reactions.cpp:4364
long old_zone
Definition mole.h:501
void set_isotope_abundances(void)
Definition mole_species.cpp:979
double elec
Definition mole.h:489
void comment(t_warnings &)
Definition mole.h:466
valarray< class molezone > species
Definition mole.h:497
double sink_rate_tot(const char chSpecies[]) const
Definition mole_reactions.cpp:4189
multi_arr< double, 2 > sink
Definition mole.h:493
const char * chName() const
Definition mole.h:467
multi_arr< double, 2 > source
Definition mole.h:493
t_mole_global mole_global
Definition mole.cpp:7
t_mole_local mole
Definition mole.cpp:8
void mole_create_react(void)
Definition mole_reactions.cpp:1748
shared_ptr< chem_nuclide > findnuclide(const char buf[])
Definition mole_species.cpp:842
bool operator<(const chem_nuclide &a, const chem_nuclide &b)
Definition mole.h:103
realnum total_molecules_gasphase(void)
Definition mole_species.cpp:1109
void test_isMolecule()
Definition mole_species.cpp:1247
bool exists(const molecule *m)
Definition mole.h:278
void getMolecules(vector< string > &allMolecules)
Definition mole_species.cpp:1262
vector< shared_ptr< chem_element > > ChemElementList
Definition mole.h:130
molecule::nNucsMap::iterator nNucs_i
Definition mole.h:262
t_mole_global mole_global
Definition mole.cpp:7
void mole_make_groups(void)
Definition mole_species.cpp:1138
realnum total_molecules(void)
Definition mole_species.cpp:1094
molecule * findspecies_validate(const char buf[])
Definition mole_species.cpp:798
molezone * findspecieslocal(const char buf[])
Definition mole_species.cpp:821
bool operator!=(const chem_nuclide &a, const chem_nuclide &b)
Definition mole.h:123
void mole_cmp_num_in_out_reactions(void)
Definition mole_reactions.cpp:2337
bool operator>(const chem_nuclide &a, const chem_nuclide &b)
Definition mole.h:107
void mole_rk_bigchange(void)
Definition mole_reactions.cpp:3040
bool isMolecule(const string &chSpecies)
Definition mole_species.cpp:1222
molecule::nNucsMap::reverse_iterator nNucs_ri
Definition mole.h:263
void mole_drive(void)
Definition mole_drive.cpp:29
void create_isotopologues(ChemNuclideList &atoms, vector< int > &numAtoms, string atom_old, string atom_new, string embellishments, vector< string > &newLabels)
Definition mole_species.cpp:338
void ParseChemistry(Parser &p)
Definition mole.cpp:132
molecule::nNucsMap::const_reverse_iterator nNucs_cri
Definition mole.h:264
realnum species_gasphase_density(const string &chSpecies)
Definition mole_species.cpp:1124
ChemElementList element_list
Definition mole_species.cpp:55
mole_reaction * mole_findrate_s(const char buf[])
Definition mole_reactions.cpp:4139
chem_nuclide * null_nuclide
Definition mole_species.cpp:53
molezone * findspecieslocal_validate(const char buf[])
Definition mole_species.cpp:833
void mole_update_sources(void)
Definition mole_drive.cpp:55
mole_state
Definition mole.h:19
@ MOLE_NULL
Definition mole.h:19
@ MOLE_ACTIVE
Definition mole.h:19
@ MOLE_PASSIVE
Definition mole.h:19
t_mole_local mole
Definition mole.cpp:8
void mole_update_species_cache(void)
Definition mole_species.cpp:856
void mole_make_list(void)
Definition mole_species.cpp:247
void create_isotopologues_one_position(unsigned position, ChemNuclideList &atoms, vector< int > &numAtoms, string atom_old, string atom_new, string embellishments, string &newLabel)
Definition mole_species.cpp:363
double hmrate4(double a, double b, double c, double te)
Definition mole.h:574
map< int, shared_ptr< chem_nuclide > >::iterator isotopes_i
Definition mole.h:39
bool lgDifferByExcitation(const molecule &mol1, const molecule &mol2)
Definition mole_species.cpp:769
bool operator<=(const chem_nuclide &a, const chem_nuclide &b)
Definition mole.h:111
bool operator>=(const chem_nuclide &a, const chem_nuclide &b)
Definition mole.h:115
ChemNuclideList nuclide_list
Definition mole_species.cpp:56
molecule * findspecies(const char buf[])
Definition mole_species.cpp:779
molezone * null_molezone
Definition mole_species.cpp:51
vector< shared_ptr< chem_nuclide > > ChemNuclideList
Definition mole.h:128
bool operator==(const chem_nuclide &a, const chem_nuclide &b)
Definition mole.h:119
bool isSpecies(const string &chSpecies)
Definition mole_species.cpp:1197
void total_molecule_elems(realnum total[LIMELM])
Definition mole_species.cpp:1070
bool parse_species_label(const char label[], ChemNuclideList &atomsLeftToRight, vector< int > &numAtoms, string &embellishments)
Definition mole_species.cpp:645
void total_molecule_deut(realnum &total)
Definition mole_species.cpp:1041
molecule * null_mole
Definition mole_species.cpp:50
#define SMALLABUND
Definition mole_solve.cpp:44
STATIC void start(long, realnum[], realnum[], long, long[], realnum *, int *)
char ** chSpecies
Definition taulines.cpp:14