File diff 000000000000 → d6faa5ffcedf
include/reaction.h
Show inline comments
 
new file 100644
 
/** @file reaction.c
 
 *  @brief Header file to define reactions.
 
 */
 
#ifndef _REACTION_H_
 
#include "react_table.h"
 

	
 
typedef struct reaction_t reaction_t;
 

	
 
/* Maximum number of reactants that can enter into a reaction. */
 
#define REACTION_MAX_IN 4
 
#define REACTION_MAX_OUT 6
 

	
 
struct reaction_t {
 
  /* Photoionization is an special reaction where all the other parameters
 
   * are ignored. Be careful to put photoionization in the correct position
 
   * of the reaction list.
 
   */
 
  int is_photo;
 

	
 
  /* Number of species in and out. */
 
  int nin, nout;
 

	
 
  int input[REACTION_MAX_IN];
 
  int output[REACTION_MAX_OUT];
 

	
 
  const char *inname[REACTION_MAX_IN];
 
  const char *outname[REACTION_MAX_OUT];
 

	
 

	
 
  void (*f) (double *in, int nin, double *out, int nout, double k, double dens, react_table *rt);
 

	
 
  /* For reactions where k(E) is given by a reaction table. Such reactions
 
   * require 'f' to be f_react_table. 'k' is ignored for these reactions.
 
   * 'rt' is initialized with 'NULL', while 'tablefile' contains the filename
 
   * with the reaction table.
 
   *
 
   * This file is read in react_add().
 
   */
 
  react_table *rt;
 

	
 
  char *tablefile;
 

	
 
  double k;
 

	
 
  /* This allows us to define many simultaneous reactions. */
 
  reaction_t *next;
 
};
 

	
 
extern reaction_t *reactions_list;
 
extern reaction_t *reaction_index[];
 

	
 
#define _REACTION_H_
 
#endif