diff --git a/include/species.h b/include/species.h new file mode 100644 index 0000000000000000000000000000000000000000..5587641dd44fa25dc2dafd73ffa26aadd2d48f36 --- /dev/null +++ b/include/species.h @@ -0,0 +1,62 @@ +/** @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