Cloudy
Spectral Synthesis Code for Astrophysics
Loading...
Searching...
No Matches
mole_priv.h
Go to the documentation of this file.
1/* This file is part of Cloudy and is copyright (C)1978-2025 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#include "container_classes.h"
8
9class molecule;
10class mole_reaction;
11class chem_element;
12class chem_nuclide;
13
14namespace mole_priv {
15 extern map <string,shared_ptr<molecule> > spectab;
16 extern map <string,shared_ptr<mole_reaction> > reactab;
17 extern map <string,shared_ptr<chem_element> > elemtab;
18 extern map <string,shared_ptr<mole_reaction> > functab;
19}
20
21class GroupMap {
22public:
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
37typedef map<string,shared_ptr<mole_reaction> >::iterator mole_reaction_i;
38typedef map<string,shared_ptr<mole_reaction> >::const_iterator mole_reaction_ci;
39typedef map<string,shared_ptr<molecule> >::iterator molecule_i;
40typedef map<string,shared_ptr<chem_element> >::iterator chem_element_i;
41
42extern vector<molecule *> groupspecies;
43
44#define MAXREACTANTS 3
45#define MAXPRODUCTS 4
46
47/* Structure containing reaction data */
67
69
72extern void mole_eval_balance(long int n, double *b, bool lgJac, multi_arr<double,2> &c);
75extern double mole_solve( void );
76
77extern void mole_eval_sources(long int num_total);
78
79extern realnum mole_return_cached_species(const GroupMap &MoleMap);
80
81extern double frac_H2star_hminus();
82
84extern void mole_update_rks( void );
85
86#endif /* MOLE_PRIV_H_ */
87
static double b2[63]
Definition atmdat_3body.cpp:19
float realnum
Definition cddefines.h:127
Definition mole_priv.h:21
GroupMap(size_t size)
Definition mole_priv.h:27
valarray< double > molElems
Definition mole_priv.h:24
multi_arr< double, 2 > fion
Definition mole_priv.h:23
void updateMolecules(const valarray< double > &b2)
Definition mole_solve.cpp:684
void setup(double *b0vec)
Definition mole_solve.cpp:579
Definition mole.h:23
Definition mole.h:41
Definition mole_priv.h:48
molecule * pvector_excit[MAXPRODUCTS]
Definition mole_priv.h:57
virtual double rk() const =0
int udfastate
Definition mole_priv.h:59
molecule * pvector[MAXPRODUCTS]
Definition mole_priv.h:56
molecule * rvector_excit[MAXREACTANTS]
Definition mole_priv.h:54
double c
Definition mole_priv.h:58
long index
Definition mole_priv.h:61
int source
Definition mole_priv.h:60
virtual mole_reaction * Create() const =0
molecule * reactants[MAXREACTANTS]
Definition mole_priv.h:52
double b
Definition mole_priv.h:58
double a
Definition mole_priv.h:58
virtual ~mole_reaction()
Definition mole_priv.h:65
int photon
Definition mole_priv.h:51
int nproducts
Definition mole_priv.h:51
molecule * rvector[MAXREACTANTS]
Definition mole_priv.h:53
string label
Definition mole_priv.h:50
molecule * products[MAXPRODUCTS]
Definition mole_priv.h:55
virtual const char * name()=0
int nreactants
Definition mole_priv.h:51
double reduced_mass
Definition mole_priv.h:58
Definition mole.h:145
Definition container_classes.h:916
udfastate
Definition mole_priv.h:68
@ CONFLICT
Definition mole_priv.h:68
@ ABSENT
Definition mole_priv.h:68
@ CORRECT
Definition mole_priv.h:68
#define MAXREACTANTS
Definition mole_priv.h:44
map< string, shared_ptr< molecule > >::iterator molecule_i
Definition mole_priv.h:39
void mole_eval_balance(long int n, double *b, bool lgJac, multi_arr< double, 2 > &c)
Definition mole_eval_balance.cpp:36
#define MAXPRODUCTS
Definition mole_priv.h:45
map< string, shared_ptr< chem_element > >::iterator chem_element_i
Definition mole_priv.h:40
map< string, shared_ptr< mole_reaction > >::const_iterator mole_reaction_ci
Definition mole_priv.h:38
void mole_eval_sources(long int num_total)
Definition mole_eval_balance.cpp:151
vector< molecule * > groupspecies
Definition mole_species.cpp:57
double mole_solve(void)
Definition mole_solve.cpp:46
map< string, shared_ptr< mole_reaction > >::iterator mole_reaction_i
Definition mole_priv.h:37
double frac_H2star_hminus()
Definition mole_reactions.cpp:714
realnum mole_return_cached_species(const GroupMap &MoleMap)
Definition mole_species.cpp:925
void mole_update_rks(void)
Definition mole_reactions.cpp:3014
Definition mole_priv.h:14
map< string, shared_ptr< molecule > > spectab
Definition mole_species.cpp:41
map< string, shared_ptr< mole_reaction > > reactab
Definition mole_species.cpp:42
map< string, shared_ptr< mole_reaction > > functab
Definition mole_species.cpp:44
map< string, shared_ptr< chem_element > > elemtab
Definition mole_species.cpp:43