|
new file 100644
|
|
|
/** @file species.h
|
|
|
/* @brief include file describing the structs specie_t and seed_t
|
|
|
*/
|
|
|
|
|
|
#ifndef _SPECIES_H_
|
|
|
|
|
|
#include "cstream.h"
|
|
|
|
|
|
/*!< Number of virtual species. */
|
|
|
#define N_VIRTUAL_SPECIES 1
|
|
|
|
|
|
/*!< Information about each of the species. */
|
|
|
typedef struct species_t {
|
|
|
double charge;
|
|
|
double mass; /* Zero or negative mass means immobile particles. */
|
|
|
|
|
|
const char *name;
|
|
|
} species_t;
|
|
|
|
|
|
/*!< Initial seeds for species. Only used at start-up */
|
|
|
typedef struct seed_t {
|
|
|
int species;
|
|
|
const char *kind_species;
|
|
|
double value;
|
|
|
int type;
|
|
|
const char *kind_type;
|
|
|
double x0;
|
|
|
double y0;
|
|
|
double z0;
|
|
|
double sigma_x;
|
|
|
double sigma_y;
|
|
|
double sigma_z;
|
|
|
} seed_t;
|
|
|
|
|
|
extern species_t spec_electrons;
|
|
|
extern species_t spec_ions;
|
|
|
|
|
|
/*!< species[i] points to a species_t structure for species number I */
|
|
|
extern species_t *spec_index[];
|
|
|
|
|
|
extern seed_t *seed_index[];
|
|
|
|
|
|
int no_seed, no_reactions, no_species;
|
|
|
|
|
|
/*!< These are the index of two @a special species (that sounds strange, uh?)
|
|
|
*
|
|
|
* For example, electrons and ions are the species that are initialized
|
|
|
* with a gaussian seed, and photo_ions those that are affected by photo-
|
|
|
* ionization. Their values are set in the kinetic model file (usually
|
|
|
* minimal.c, but more complex models are possible).
|
|
|
*/
|
|
|
int electrons, ions, photo_ions;
|
|
|
|
|
|
/*!< There is also a @a virtual species: Just to make it easy to create
|
|
|
* reaction functions that depend on variables other than species densities.
|
|
|
* Now this trick is only used for @a eabs absolute value of the electric
|
|
|
* field.
|
|
|
*/
|
|
|
extern const int virt_eabs;
|
|
|
|
|
|
#define _SPECIES_H_
|
|
|
#endif
|