cloudy trunk
Loading...
Searching...
No Matches
mole_reactions.cpp File Reference
#include "cdstd.h"
#include <stdlib.h>
#include "cddefines.h"
#include "colden.h"
#include "physconst.h"
#include "mole.h"
#include "version.h"
#include "mole_priv.h"
#include "hmi.h"
#include "conv.h"
#include "dense.h"
#include "thermal.h"
#include "gammas.h"
#include "grainvar.h"
#include "ionbal.h"
#include "opacity.h"
#include "path.h"
#include "radius.h"
#include "atmdat.h"
#include "taulines.h"
#include "trace.h"
#include "deuterium.h"
#include "phycon.h"
#include "doppvel.h"
#include "rfield.h"
#include "secondaries.h"
#include "hextra.h"
#include "rt.h"
#include "iso.h"
#include "h2.h"
Include dependency graph for mole_reactions.cpp:

Go to the source code of this file.

Macros

#define gzopen(file, mode)
#define gzgets(fp, buf, siz)
#define gzclose(fp)
#define gzFile   FILE
#define FLTEQ(a, b)

Enumerations

enum  { UDFA = 0 }
enum  { BUFSIZE =256 }

Functions

STATIC void newreact (const char label[], const char fun[], double a, double b, double c)
STATIC long parse_reaction (count_ptr< mole_reaction > &rate, const char label[])
STATIC string canonicalize_reaction_label (const char label[])
STATIC void canonicalize_reaction (count_ptr< mole_reaction > &rate)
STATIC void register_reaction_vectors (count_ptr< mole_reaction > rate)
STATIC void mole_check_reverse_reactions (void)
STATIC double mole_get_equilibrium_constant (const char buf[])
STATIC double mole_partition_function (const molecule *const sp)
STATIC void mole_generate_isotopologue_reactions (string atom_old, string atom_new)
STATIC void plot_sparsity (void)
STATIC bool lgReactBalance (const count_ptr< mole_reaction > &rate)
STATIC void read_data (const char file[], void(*parse)(char *s))
STATIC void parse_base (char *s)
STATIC void parse_udfa (char *s)
STATIC void compare_udfa (const count_ptr< mole_reaction > &rate)
double frac_H2star_hminus (void)
double hmirat (double te)
STATIC void mole_h2_grain_form (void)
STATIC void mole_h_reactions (void)
void mole_create_react (void)
void mole_cmp_num_in_out_reactions ()
STATIC char * getcsvfield (char **s, char c)
void mole_update_rks (void)
void mole_rk_bigchange (void)
mole_reactionmole_findrate_s (const char buf[])
void mole_punch (FILE *punit, const char speciesname[], const char args[], bool lgHeader, bool lgData, double depth)

Variables

static realnum albedo = 0.5
static map< formula_species, struct udfa_reaction_s * > udfatab

Macro Definition Documentation

◆ FLTEQ

#define FLTEQ ( a,
b )
Value:
(fabs((a)-(b)) <= 1e-6*fabs((a)+(b)))

Definition at line 2685 of file mole_reactions.cpp.

Referenced by compare_udfa(), and parse_udfa().

◆ gzclose

#define gzclose ( fp)
Value:
fclose(fp)

Definition at line 2621 of file mole_reactions.cpp.

◆ gzFile

#define gzFile   FILE

Definition at line 2622 of file mole_reactions.cpp.

◆ gzgets

#define gzgets ( fp,
buf,
siz )
Value:
fgets(buf,siz,fp)

Definition at line 2620 of file mole_reactions.cpp.

◆ gzopen

#define gzopen ( file,
mode )
Value:
fopen(file,mode)

Definition at line 2619 of file mole_reactions.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
BUFSIZE 

Definition at line 2625 of file mole_reactions.cpp.

◆ anonymous enum

anonymous enum
Enumerator
UDFA 

Definition at line 49 of file mole_reactions.cpp.

Function Documentation

◆ canonicalize_reaction()

STATIC void canonicalize_reaction ( count_ptr< mole_reaction > & rate)

Definition at line 2387 of file mole_reactions.cpp.

References DEBUG_ENTRY, t_mole_global::sort(), and STATIC.

Referenced by canonicalize_reaction_label(), and newreact().

Here is the call graph for this function:

◆ canonicalize_reaction_label()

STATIC string canonicalize_reaction_label ( const char label[])

Definition at line 2371 of file mole_reactions.cpp.

References canonicalize_reaction(), DEBUG_ENTRY, parse_reaction(), and STATIC.

Referenced by mole_findrate_s(), and mole_generate_isotopologue_reactions().

Here is the call graph for this function:

◆ compare_udfa()

STATIC void compare_udfa ( const count_ptr< mole_reaction > & rate)

Definition at line 2794 of file mole_reactions.cpp.

References CONFLICT, CORRECT, FLTEQ, MAXPRODUCTS, MAXREACTANTS, STATIC, and udfatab.

Referenced by newreact().

◆ frac_H2star_hminus()

double frac_H2star_hminus ( void )

Definition at line 690 of file mole_reactions.cpp.

References h2, hmi, and SDIV().

Referenced by mole_h_rate_diagnostics().

Here is the call graph for this function:

◆ getcsvfield()

STATIC char * getcsvfield ( char ** s,
char c )

Definition at line 2782 of file mole_reactions.cpp.

References STATIC.

Referenced by parse_base(), and parse_udfa().

◆ hmirat()

double hmirat ( double te)

hmirat computes radiative association rate for H-

Parameters
te

Definition at line 1581 of file mole_reactions.cpp.

References DEBUG_ENTRY, and phycon.

Referenced by mole_h_reactions().

◆ lgReactBalance()

STATIC bool lgReactBalance ( const count_ptr< mole_reaction > & rate)

Definition at line 2574 of file mole_reactions.cpp.

References sign(), and STATIC.

Referenced by newreact().

Here is the call graph for this function:

◆ mole_check_reverse_reactions()

STATIC void mole_check_reverse_reactions ( void )

Definition at line 2084 of file mole_reactions.cpp.

References DEBUG_ENTRY, fixit(), ioQQQ, mole_priv::reactab, STATIC, and trace.

Referenced by mole_create_react().

Here is the call graph for this function:

◆ mole_cmp_num_in_out_reactions()

void mole_cmp_num_in_out_reactions ( void )

Definition at line 2183 of file mole_reactions.cpp.

References CHARS_SPECIES, DEBUG_ENTRY, ioQQQ, mole_global, and mole_priv::reactab.

◆ mole_create_react()

void mole_create_react ( void )

◆ mole_findrate_s()

mole_reaction * mole_findrate_s ( const char buf[])

◆ mole_generate_isotopologue_reactions()

STATIC void mole_generate_isotopologue_reactions ( string atom_old,
string atom_new )

◆ mole_get_equilibrium_constant()

STATIC double mole_get_equilibrium_constant ( const char buf[])

◆ mole_h2_grain_form()

STATIC void mole_h2_grain_form ( void )
Todo
2 - put in actual composition dependent Tad - this is only valid for bare surfaces - not ice - for ice Tad is 555K hmi.Tad is binding energy expressed as a temperature note that hmi.Tad is set to 800. in zero tau_nu the first equation in section 2.5 equation one paragraph before equation 2 at low grain temperatures all end in para, J=0

Definition at line 2925 of file mole_reactions.cpp.

References ASSERT, dense, fixit(), fnzone, GetAveVelocity(), GrainDrive(), gv, h2, hmi, ipHYDROGEN, MALLOC, MAT_CAR, MAT_CAR2, MAT_SIL, MAT_SIL2, NQGRID, phycon, POW2, qheat(), SDIV(), sexp(), and STATIC.

Referenced by mole_update_rks().

Here is the call graph for this function:

◆ mole_h_reactions()

STATIC void mole_h_reactions ( void )

hmole_reactions - evaluates hydrogen chemistry reactions

Todo
2 following always true, why? either remove test or use it - it is here to save time - this step routine is called very often
Todo
2 this should be done with new populations after converged soln

Definition at line 3268 of file mole_reactions.cpp.

References ASSERT, colden, conv, DEBUG_ENTRY, molezone::den, dense, diatoms, EN1RYD, esc_PRD_1side(), findspecieslocal(), fixit(), fnzone, fp_equal(), GammaBn(), GammaPrt(), GetDopplerWidth(), h2, t_phoHeat::HeatNet, hmi, hmirat(), ioQQQ, ipCOL_H2g, ipCOL_H2s, ipHE_LIKE, ipHELIUM, ipHYDROGEN, iso_sp, iteration, MAX2, mole_global, nzone, opac, phycon, POW2, radius, rfield, SAHA, secondaries, sexp(), SMALLFLOAT, STATIC, and TotalInsanity().

Referenced by mole_update_rks().

Here is the call graph for this function:

◆ mole_partition_function()

STATIC double mole_partition_function ( const molecule *const sp)

◆ mole_punch()

void mole_punch ( FILE * punit,
const char speciesname[],
const char args[],
bool lgHeader,
bool lgData,
double depth )

◆ mole_rk_bigchange()

void mole_rk_bigchange ( void )

◆ mole_update_rks()

void mole_update_rks ( void )

mole_update_rks update rate coefficients, only temp part

Definition at line 2840 of file mole_reactions.cpp.

References mole_reaction::a, DEBUG_ENTRY, mole_reaction::index, ioQQQ, mole_reaction::label, mole, mole_h2_grain_form(), mole_h_reactions(), mole_priv::reactab, and mole_reaction::rk().

Referenced by mole_drive().

Here is the call graph for this function:

◆ newreact()

STATIC void newreact ( const char label[],
const char fun[],
double a,
double b,
double c )

◆ parse_base()

STATIC void parse_base ( char * s)

Definition at line 2220 of file mole_reactions.cpp.

References getcsvfield(), newreact(), and STATIC.

Referenced by mole_create_react().

Here is the call graph for this function:

◆ parse_reaction()

STATIC long parse_reaction ( count_ptr< mole_reaction > & rate,
const char label[] )

Definition at line 2298 of file mole_reactions.cpp.

References ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, findspecies(), ioQQQ, molecule::isEnabled, MAXPRODUCTS, MAXREACTANTS, null_mole, STATIC, and trace.

Referenced by canonicalize_reaction_label(), and newreact().

Here is the call graph for this function:

◆ parse_udfa()

STATIC void parse_udfa ( char * s)

Definition at line 2686 of file mole_reactions.cpp.

References ASSERT, findspecies(), FLTEQ, getcsvfield(), MALLOC, MAXPRODUCTS, MAXREACTANTS, null_mole, t_mole_global::sort(), STATIC, and udfatab.

Referenced by mole_create_react().

Here is the call graph for this function:

◆ plot_sparsity()

◆ read_data()

STATIC void read_data ( const char file[],
void(* parse )(char *s) )

Definition at line 2664 of file mole_reactions.cpp.

References BUFSIZE, fixit(), open_data(), and STATIC.

Referenced by mole_create_react().

Here is the call graph for this function:

◆ register_reaction_vectors()

STATIC void register_reaction_vectors ( count_ptr< mole_reaction > rate)

Definition at line 2419 of file mole_reactions.cpp.

References DEBUG_ENTRY, lgDifferByExcitation(), and STATIC.

Referenced by mole_create_react().

Here is the call graph for this function:

Variable Documentation

◆ albedo

realnum albedo = 0.5
static

Definition at line 77 of file mole_reactions.cpp.

◆ udfatab

map<formula_species,struct udfa_reaction_s *> udfatab
static

Definition at line 2662 of file mole_reactions.cpp.

Referenced by compare_udfa(), and parse_udfa().