ASCOT5
Loading...
Searching...
No Matches
asigma_loc.c File Reference

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 (asigma_loc_data *data, int nreac, int *z1, int *a1, int *z2, int *a2, int *reactype, int *ne, real *emin, real *emax, int *nn, real *nmin, real *nmax, int *nT, real *Tmin, real *Tmax, real *sigma)
 Initialize local file atomic data and check inputs.
 
void asigma_loc_free (asigma_loc_data *data)
 Free allocated resources.
 
void asigma_loc_offload (asigma_loc_data *data)
 Offload data to the accelerator.
 
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.
 

Detailed Description

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.

Function Documentation

◆ asigma_loc_init()

int asigma_loc_init ( asigma_loc_data * data,
int nreac,
int * z1,
int * a1,
int * z2,
int * a2,
int * reactype,
int * ne,
real * emin,
real * emax,
int * nn,
real * nmin,
real * nmax,
int * nT,
real * Tmin,
real * Tmax,
real * sigma )

Initialize local file atomic data and check inputs.

Parameters
datapointer to the data struct
Returns
zero if initialization success

Definition at line 29 of file asigma_loc.c.

◆ asigma_loc_free()

void asigma_loc_free ( asigma_loc_data * data)

Free allocated resources.

Parameters
offload_datapointer to the data struct

Definition at line 114 of file asigma_loc.c.

◆ asigma_loc_offload()

void asigma_loc_offload ( asigma_loc_data * data)

Offload data to the accelerator.

Parameters
datapointer to the data struct

Definition at line 141 of file asigma_loc.c.

◆ asigma_loc_eval_sigma()

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.

Parameters
sigmapointer to evaluated cross-section
z_1atomic number of fast particle
a_1atomic mass number of fast particle
z_2atomic number of bulk particle
a_2atomic mass number of bulk particle
E_coll_per_amuenergy per amu corresponding to collision speed
reac_typereaction type
extrapolatedon't raise error but set values outside abscissae to zero
asigma_datapointer to atomic data struct
Returns
zero if evaluation succeeded

Definition at line 166 of file asigma_loc.c.

◆ asigma_loc_eval_sigmav()

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.

Parameters
sigmavpointer to evaluated rate coefficient
z_1atomic number of fast particle
a_1atomic mass number of fast particle
m_1mass of fast particle
z_2atomic number of bulk particle
a_2atomic mass number of bulk particle
Eenergy of fast particle
T_eelectron temperature of bulk plasma
T_0temperature of bulk neutrals
n_iion density of bulk plasma
reac_typereaction type
extrapolatedon't raise error but set values outside abscissae to zero
asigma_datapointer to atomic data struct
Returns
zero if evaluation succeeded

Definition at line 241 of file asigma_loc.c.

◆ asigma_loc_eval_cx()

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.

Parameters
ratecoeffpointer to evaluated rate coefficient
z_1atomic number of fast particle
a_1atomic mass number of fast particle
Eenergy of fast particle
massmass of fast particle
znumatomic numbers of bulk neutrals
anumatomic mass numbers of bulk neutrals
T_0temperature of bulk neutrals
n_0neutral densities
extrapolatedon't raise error but set values outside abscissae to zero
asigma_datapointer to atomic data struct
Returns
zero if evaluation succeeded

Definition at line 334 of file asigma_loc.c.

◆ asigma_loc_eval_bms()

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.

Parameters
ratecoeffpointer to evaluated rate coefficient
z_1atomic number of fast particle
a_1atomic mass number of fast particle
Eenergy of fast particle
massmass of fast particle
nionnumber of bulk ion species
znumatomic numbers of bulk particles
anumatomic mass numbers of bulk particles
T_eelectron temperature of bulk plasma
n_idensities of bulk ions
extrapolatedon't raise error but set values outside abscissae to zero
asigma_datapointer to atomic data struct
Returns
zero if evaluation succeeded

Definition at line 406 of file asigma_loc.c.