ASCOT5
|
Atomic reaction data from local files. More...
#include <stdio.h>
#include <stdlib.h>
#include "../ascot5.h"
#include "../print.h"
#include "../error.h"
#include "../spline/interp.h"
#include "../consts.h"
#include "../math.h"
#include "../physlib.h"
#include "../suzuki.h"
#include "../asigma.h"
#include "asigma_loc.h"
Go to the source code of this file.
Functions | |
int | asigma_loc_init_offload (asigma_loc_offload_data *offload_data, real **offload_array) |
Initialize local file atomic data and check inputs. | |
void | asigma_loc_free_offload (asigma_loc_offload_data *offload_data, real **offload_array) |
Free offload array and reset parameters. | |
void | asigma_loc_init (asigma_loc_data *asigma_data, asigma_loc_offload_data *offload_data, real *offload_array) |
Initialize atomic reaction data struct on target. | |
a5err | asigma_loc_eval_sigma (real *sigma, int z_1, int a_1, int z_2, int a_2, real E_coll_per_amu, int reac_type, int extrapolate, asigma_loc_data *asigma_data) |
Evaluate atomic reaction cross-section. | |
a5err | asigma_loc_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, int reac_type, int extrapolate, asigma_loc_data *asigma_data) |
Evaluate atomic reaction rate coefficient. | |
a5err | asigma_loc_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, int extrapolate, asigma_loc_data *asigma_data) |
Evaluate atomic reaction rate coefficient. | |
a5err | asigma_loc_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, int extrapolate, asigma_loc_data *asigma_data) |
Evaluate beam stopping rate coefficient. | |
Atomic reaction data from local files.
Atomic reaction data (sigmas) originating from local files and interpolated using splines. If the data for a reaction is missing, a corresponding analytical model implemented in ASCOT5 might be used.
Definition in file asigma_loc.c.
int asigma_loc_init_offload | ( | asigma_loc_offload_data * | offload_data, |
real ** | offload_array ) |
Initialize local file atomic data and check inputs.
Before calling this function, the offload struct is expected to be fully initialized.
The offload array is expected to hold atomic data as
[0*N_reac] = min value of energy abscissa [eV] [1*N_reac] = max value of energy abscissa [eV] [2*N_reac] = min value of density abscissa [m^-3] [3*N_reac] = max value of density abscissa [m^-3] [4*N_reac] = min value of temperature abscissa [eV] [5*N_reac] = max value of temperature abscissa [eV] [6*N_reac] = reaction probability data [(depends on reaction data type)]
Each piece of data listed above is repeated for each reaction included. Hence the N_reac interval between the 6 first pieces of data. The memory space required for the last, reaction probability data, depends on the dimensionality of the abscissae. The memory requirement for the reaction data of the i_reac:th reaction is N_E[i_reac]*N_n[i_reac]*N_T[i_reac].
This function initializes splines to atomic reaction data, thus increasing the length of the offload array, and prints some values as sanity checks.
offload_data | pointer to offload data struct |
offload_array | pointer to pointer to offload array |
Definition at line 52 of file asigma_loc.c.
void asigma_loc_free_offload | ( | asigma_loc_offload_data * | offload_data, |
real ** | offload_array ) |
Free offload array and reset parameters.
This function deallocates the offload_array.
offload_data | pointer to offload data struct |
offload_array | pointer to pointer to offload array |
Definition at line 197 of file asigma_loc.c.
void asigma_loc_init | ( | asigma_loc_data * | asigma_data, |
asigma_loc_offload_data * | offload_data, | ||
real * | offload_array ) |
Initialize atomic reaction data struct on target.
This function copies atomic reaction data from the offload struct and the offload array to the struct on the target, and uses interp?Dcomp_init_spline() functions to initialize the precalculated spline parameters of the reaction data in the spline structs within the data struct on the target.
asigma_data | pointer to data struct on target |
offload_data | pointer to offload data struct |
offload_array | pointer to offload array |
Definition at line 216 of file asigma_loc.c.
a5err asigma_loc_eval_sigma | ( | real * | sigma, |
int | z_1, | ||
int | a_1, | ||
int | z_2, | ||
int | a_2, | ||
real | E_coll_per_amu, | ||
int | reac_type, | ||
int | extrapolate, | ||
asigma_loc_data * | asigma_data ) |
Evaluate atomic reaction cross-section.
This function evaluates the cross-section (sigma) for the atomic reaction corresponding to the reaction identifiers given as parameters at the given mass-normalized collision energy.
This is a SIMD function.
sigma | pointer to evaluated cross-section |
z_1 | atomic number of fast particle |
a_1 | atomic mass number of fast particle |
z_2 | atomic number of bulk particle |
a_2 | atomic mass number of bulk particle |
E_coll_per_amu | energy per amu corresponding to collision speed |
reac_type | reaction type |
extrapolate | don't raise error but set values outside abscissae to zero |
asigma_data | pointer to atomic data struct |
Definition at line 309 of file asigma_loc.c.
a5err asigma_loc_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, | ||
int | reac_type, | ||
int | extrapolate, | ||
asigma_loc_data * | asigma_data ) |
Evaluate atomic reaction rate coefficient.
This function evaluates the rate coefficient (<sigma*v>) for the atomic reaction corresponding to the reaction identifiers given as parameters at the given fast particle energy and bulk plasma conditions.
This is a SIMD function.
sigmav | pointer to evaluated rate coefficient |
z_1 | atomic number of fast particle |
a_1 | atomic mass number of fast particle |
m_1 | mass of fast particle |
z_2 | atomic number of bulk particle |
a_2 | atomic mass number of bulk particle |
E | energy of fast particle |
T_e | electron temperature of bulk plasma |
T_0 | temperature of bulk neutrals |
n_i | ion density of bulk plasma |
reac_type | reaction type |
extrapolate | don't raise error but set values outside abscissae to zero |
asigma_data | pointer to atomic data struct |
Definition at line 384 of file asigma_loc.c.
a5err asigma_loc_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, | ||
int | extrapolate, | ||
asigma_loc_data * | asigma_data ) |
Evaluate atomic reaction rate coefficient.
This function evaluates the rate coefficient (<sigma*v>) for the atomic reaction corresponding to the reaction identifiers given as parameters at the given fast particle energy and bulk plasma conditions.
This is a SIMD function.
ratecoeff | pointer to evaluated rate coefficient |
z_1 | atomic number of fast particle |
a_1 | atomic mass number of fast particle |
E | energy of fast particle |
mass | mass of fast particle |
znum | atomic numbers of bulk neutrals |
anum | atomic mass numbers of bulk neutrals |
T_0 | temperature of bulk neutrals |
n_0 | neutral densities |
extrapolate | don't raise error but set values outside abscissae to zero |
asigma_data | pointer to atomic data struct |
Definition at line 477 of file asigma_loc.c.
a5err asigma_loc_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, | ||
int | extrapolate, | ||
asigma_loc_data * | asigma_data ) |
Evaluate beam stopping rate coefficient.
This function first tries to evaluate BMS with ADAS data. If not present, the Suzuki model is used instead.
This is a SIMD function.
ratecoeff | pointer to evaluated rate coefficient |
z_1 | atomic number of fast particle |
a_1 | atomic mass number of fast particle |
E | energy of fast particle |
mass | mass of fast particle |
nion | number of bulk ion species |
znum | atomic numbers of bulk particles |
anum | atomic mass numbers of bulk particles |
T_e | electron temperature of bulk plasma |
n_i | densities of bulk ions |
extrapolate | don't raise error but set values outside abscissae to zero |
asigma_data | pointer to atomic data struct |
Definition at line 549 of file asigma_loc.c.