cloudy  trunk
mole_priv.h
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2013 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 
4 #ifndef MOLE_PRIV_H_
5 #define MOLE_PRIV_H_
6 
7 /* mole_co_priv.h */
8 #include "count_ptr.h"
9 
10 class mole_reaction;
11 class chem_atom;
12 
13 namespace mole_priv {
14  extern map <string,count_ptr<molecule> > spectab;
15  extern map <string,count_ptr<mole_reaction> > reactab;
16  extern map <string,count_ptr<chem_element> > elemtab;
17  extern map <string,count_ptr<chem_atom> > atomtab;
18  extern map <string,count_ptr<mole_reaction> > functab;
19 };
20 
21 class GroupMap {
22 public:
24  valarray<double> molElems;
25  void updateMolecules(const valarray<double> &b2);
26  void setup(double *b0vec);
27  GroupMap (size_t size)
28  {
29  molElems.resize( size );
30  fion.reserve(size);
31  for( unsigned long i = 0; i < size; ++i )
32  fion.reserve(i,size+1);
33  fion.alloc();
34  }
35 };
36 
37 typedef map<string,count_ptr<mole_reaction> >::iterator mole_reaction_i;
38 typedef map<string,count_ptr<mole_reaction> >::const_iterator mole_reaction_ci;
39 typedef map<string,count_ptr<molecule> >::iterator molecule_i;
40 typedef map<string,count_ptr<chem_element> >::iterator chem_element_i;
41 typedef map<string,count_ptr<chem_atom> >::iterator chem_atom_i;
42 
43 extern molecule **groupspecies;
44 
45 #define MAXREACTANTS 3
46 #define MAXPRODUCTS 4
47 
48 /* Structure containing reaction data */
50  public:
51  string label;
59  double reduced_mass, a, b, c;
60  int udfastate;
61  int source;
62  long index;
63  virtual double rk() const = 0;
64  virtual mole_reaction* Create() const = 0;
65  virtual const char *name() = 0;
66  virtual ~mole_reaction() {};
67 };
68 
70 
71 extern void mole_dominant_rates( const molecule *debug_species, FILE *ioOut );
72 
75 extern void mole_eval_balance(long int n, double *b, bool lgJac, multi_arr<double,2> &c);
78 extern double mole_solve( void );
79 
80 extern void mole_eval_sources(long int num_total);
81 
82 extern realnum mole_return_cached_species(const GroupMap &MoleMap);
83 
84 extern double frac_H2star_hminus();
85 
87 extern void mole_update_rks( void );
88 
89 #endif /* MOLE_PRIV_H_ */
90 
udfastate
udfastate
Definition: mole_priv.h:69
mole_solve
double mole_solve(void)
Definition: mole_solve.cpp:49
mole_priv::atomtab
map< string, count_ptr< chem_atom > > atomtab
Definition: mole_species.cpp:62
GroupMap::molElems
valarray< double > molElems
Definition: mole_priv.h:24
ABSENT
@ ABSENT
Definition: mole_priv.h:69
mole_reaction::nreactants
int nreactants
Definition: mole_priv.h:52
mole_reaction::rvector_excit
molecule * rvector_excit[MAXREACTANTS]
Definition: mole_priv.h:55
realnum
float realnum
Definition: cddefines.h:103
CORRECT
@ CORRECT
Definition: mole_priv.h:69
mole_reaction_ci
map< string, count_ptr< mole_reaction > >::const_iterator mole_reaction_ci
Definition: mole_priv.h:38
multi_arr::reserve
void reserve(size_type i1)
Definition: container_classes.h:1080
mole_reaction::pvector
molecule * pvector[MAXPRODUCTS]
Definition: mole_priv.h:57
multi_arr< double, 2 >
mole_reaction
Definition: mole_priv.h:49
mole_dominant_rates
void mole_dominant_rates(const molecule *debug_species, FILE *ioOut)
Definition: mole_eval_balance.cpp:335
mole_reaction::Create
virtual mole_reaction * Create() const =0
MAXREACTANTS
#define MAXREACTANTS
Definition: mole_priv.h:45
MAXPRODUCTS
#define MAXPRODUCTS
Definition: mole_priv.h:46
mole_priv::spectab
map< string, count_ptr< molecule > > spectab
Definition: mole_species.cpp:59
mole_eval_balance
void mole_eval_balance(long int n, double *b, bool lgJac, multi_arr< double, 2 > &c)
Definition: mole_eval_balance.cpp:37
b2
static double b2[63]
Definition: atmdat_3body.cpp:19
mole_reaction::rk
virtual double rk() const =0
mole_reaction::a
double a
Definition: mole_priv.h:59
GroupMap::updateMolecules
void updateMolecules(const valarray< double > &b2)
Definition: mole_solve.cpp:665
mole_reaction::b
double b
Definition: mole_priv.h:59
mole_reaction::source
int source
Definition: mole_priv.h:61
chem_atom_i
map< string, count_ptr< chem_atom > >::iterator chem_atom_i
Definition: mole_priv.h:41
mole_return_cached_species
realnum mole_return_cached_species(const GroupMap &MoleMap)
Definition: mole_species.cpp:935
mole_priv
Definition: mole_priv.h:13
mole_priv::reactab
map< string, count_ptr< mole_reaction > > reactab
Definition: mole_species.cpp:60
CONFLICT
@ CONFLICT
Definition: mole_priv.h:69
GroupMap
Definition: mole_priv.h:21
frac_H2star_hminus
double frac_H2star_hminus()
Definition: mole_reactions.cpp:690
GroupMap::GroupMap
GroupMap(size_t size)
Definition: mole_priv.h:27
mole_reaction::~mole_reaction
virtual ~mole_reaction()
Definition: mole_priv.h:66
GroupMap::fion
multi_arr< double, 2 > fion
Definition: mole_priv.h:23
mole_reaction::index
long index
Definition: mole_priv.h:62
mole_reaction::name
virtual const char * name()=0
mole_reaction::c
double c
Definition: mole_priv.h:59
mole_reaction::nproducts
int nproducts
Definition: mole_priv.h:52
multi_arr::alloc
void alloc()
Definition: container_classes.h:1116
groupspecies
molecule ** groupspecies
Definition: mole_species.cpp:72
mole_update_rks
void mole_update_rks(void)
Definition: mole_reactions.cpp:2840
molecule_i
map< string, count_ptr< molecule > >::iterator molecule_i
Definition: mole_priv.h:39
mole_eval_sources
void mole_eval_sources(long int num_total)
Definition: mole_eval_balance.cpp:149
mole_reaction::photon
int photon
Definition: mole_priv.h:52
mole_reaction::reactants
molecule * reactants[MAXREACTANTS]
Definition: mole_priv.h:53
mole_reaction::udfastate
int udfastate
Definition: mole_priv.h:60
mole_reaction::products
molecule * products[MAXPRODUCTS]
Definition: mole_priv.h:56
mole_reaction::label
string label
Definition: mole_priv.h:51
mole_reaction::pvector_excit
molecule * pvector_excit[MAXPRODUCTS]
Definition: mole_priv.h:58
chem_atom
Definition: mole.h:37
count_ptr.h
mole_priv::functab
map< string, count_ptr< mole_reaction > > functab
Definition: mole_species.cpp:63
molecule
Definition: mole.h:132
mole_reaction_i
map< string, count_ptr< mole_reaction > >::iterator mole_reaction_i
Definition: mole_priv.h:37
chem_element_i
map< string, count_ptr< chem_element > >::iterator chem_element_i
Definition: mole_priv.h:40
mole_priv::elemtab
map< string, count_ptr< chem_element > > elemtab
Definition: mole_species.cpp:61
GroupMap::setup
void setup(double *b0vec)
Definition: mole_solve.cpp:565
mole_reaction::reduced_mass
double reduced_mass
Definition: mole_priv.h:59
mole_reaction::rvector
molecule * rvector[MAXREACTANTS]
Definition: mole_priv.h:54