ASCOT5
Loading...
Searching...
No Matches
asigma.h
Go to the documentation of this file.
1
8#ifndef ASIGMA_H
9#define ASIGMA_H
10
11#include "ascot5.h"
12#include "error.h"
13#include "asigma/asigma_loc.h"
14
26
34typedef enum asigma_reac_type {
35 sigma_ioniz = 1, /* sigma(E), ionization (charge-increasing) */
36 sigma_recomb = 2, /* sigma(E), recombination (charge-decreasing) */
37 sigma_CX = 3, /* sigma(E), charge exchange */
38 sigmav_ioniz = 4, /* sigmav(E,T), ionization (charge-increasing) */
39 sigmav_recomb = 5, /* sigmav(E,T), recombination (charge-decr.) */
40 sigmav_CX = 6, /* sigmav(E,T), charge exchange */
41 sigmav_BMS = 7, /* sigmav(E,Te,ne), beam-stopping coefficient */
42 sigmaveff_ioniz = 8, /* sigmav(n,T), eff. ioniz. (charge-incr.) */
43 sigmaveff_recomb = 9, /* sigmav(n,T), eff. recomb. (charge-decr.) */
44 sigmaveff_CX = 10 /* sigmav(n,T), effective charge exchange */
46
57
58void asigma_free(asigma_data* data);
59void asigma_offload(asigma_data* data);
60void asigma_extrapolate(int extrapolate);
61DECLARE_TARGET_SIMD_UNIFORM(asigmadata)
63 real* sigma, int z_1, int a_1, int z_2, int a_2, real E_coll_per_amu,
64 asigma_reac_type reac_type, asigma_data* asigmadata);
65DECLARE_TARGET_SIMD_UNIFORM(asigmadata)
67 real* sigmav, int z_1, int a_1, real m_1, int z_2, int a_2,
68 real E, real T_e, real T_0, real n_i, asigma_reac_type reac_type,
69 asigma_data* asigmadata);
70DECLARE_TARGET_SIMD_UNIFORM(asigmadata)
72 real* ratecoeff, int z_1, int a_1, real E, real mass, int nspec,
73 const int* znum, const int* anum, real T_0, real* n_0,
74 asigma_data* asigmadata);
75DECLARE_TARGET_SIMD_UNIFORM(asigmadata)
77 real* ratecoeff, int z_1, int a_1, real E, real mass, int nion,
78 const int* znum, const int* anum, real T_e, real* n_i,
79 asigma_data* asigmadata);
80
81#endif
Main header file for ASCOT5.
double real
Definition ascot5.h:85
void asigma_extrapolate(int extrapolate)
Toggle extrapolation when evaluating cross sections.
Definition asigma.c:45
a5err asigma_eval_bms(real *ratecoeff, int z_1, int a_1, real E, real mass, int nion, const int *znum, const int *anum, real T_e, real *n_i, asigma_data *asigmadata)
Evaluate beam stopping rate coefficient.
Definition asigma.c:237
a5err asigma_eval_sigmav(real *sigmav, int z_1, int a_1, real m_1, int z_2, int a_2, real E, real T_e, real T_0, real n_i, asigma_reac_type reac_type, asigma_data *asigmadata)
Evaluate atomic reaction rate coefficient.
Definition asigma.c:145
void asigma_free(asigma_data *data)
Free allocated resources.
Definition asigma.c:54
a5err asigma_eval_sigma(real *sigma, int z_1, int a_1, int z_2, int a_2, real E_coll_per_amu, asigma_reac_type reac_type, asigma_data *asigmadata)
Evaluate atomic reaction cross-section.
Definition asigma.c:95
a5err asigma_eval_cx(real *ratecoeff, int z_1, int a_1, real E, real mass, int nspec, const int *znum, const int *anum, real T_0, real *n_0, asigma_data *asigmadata)
Evaluate charge exchange rate coefficient.
Definition asigma.c:191
asigma_reac_type
Reaction types for atomic reaction data.
Definition asigma.h:34
asigma_type
Atomic reaction data types.
Definition asigma.h:23
@ asigma_type_loc
Definition asigma.h:24
void asigma_offload(asigma_data *data)
Offload data to the accelerator.
Definition asigma.c:67
Header file for asigma_loc.c.
Error module for ASCOT5.
unsigned long int a5err
Simulation error flag.
Definition error.h:17
Atomic reaction simulation data.
Definition asigma.h:53
asigma_type type
Definition asigma.h:54
asigma_loc_data asigma_loc
Definition asigma.h:55
Local-files atomic reaction simulation data.
Definition asigma_loc.h:15