ASCOT5
Loading...
Searching...
No Matches
Data Structures | Typedefs | Enumerations | Functions
plasma.h File Reference

Header file for plasma.c. More...

#include "ascot5.h"
#include "error.h"
#include "plasma/plasma_1D.h"
#include "plasma/plasma_1Dt.h"
#include "plasma/plasma_1DS.h"

Go to the source code of this file.

Data Structures

struct  plasma_offload_data
 Plasma offload data. More...
 
struct  plasma_data
 Plasma simulation data. More...
 

Typedefs

typedef enum plasma_type plasma_type
 Plasma data types.
 

Enumerations

enum  plasma_type { plasma_type_1D , plasma_type_1Dt , plasma_type_1DS }
 Plasma data types. More...
 

Functions

int plasma_init_offload (plasma_offload_data *offload_data, real **offload_array)
 Load plasma data and prepare parameters.
 
void plasma_free_offload (plasma_offload_data *offload_data, real **offload_array)
 Free offload array and reset parameters.
 
int plasma_init (plasma_data *plasma_data, plasma_offload_data *offload_data, real *offload_array)
 Initialize plasma data struct on target.
 
a5err plasma_eval_temp (real *temp, real rho, real r, real phi, real z, real t, int species, plasma_data *pls_data)
 Evaluate plasma temperature.
 
DECLARE_TARGET_END a5err plasma_eval_dens (real *dens, real rho, real r, real phi, real z, real t, int species, plasma_data *pls_data)
 Evaluate plasma density.
 
DECLARE_TARGET_END a5err plasma_eval_densandtemp (real *dens, real *temp, real rho, real r, real phi, real z, real t, plasma_data *pls_data)
 Evaluate plasma density and temperature for all species.
 
DECLARE_TARGET_END int plasma_get_n_species (plasma_data *pls_data)
 Get the number of plasma species.
 
DECLARE_TARGET_END const realplasma_get_species_mass (plasma_data *pls_data)
 Get mass of all plasma species.
 
DECLARE_TARGET_END const realplasma_get_species_charge (plasma_data *pls_data)
 Get charge of all plasma species.
 
DECLARE_TARGET_END const int * plasma_get_species_znum (plasma_data *pls_data)
 Get charge number of ion species.
 
DECLARE_TARGET_END const int * plasma_get_species_anum (plasma_data *pls_data)
 Get atomic mass number of ion species.
 

Detailed Description

Header file for plasma.c.

Contains a list declaring all plasma data, and declaration of plasma_offload_data and plasma_data structs.

Definition in file plasma.h.

Typedef Documentation

◆ plasma_type

typedef enum plasma_type plasma_type

Plasma data types.

Plasma data types are used in the plassma interface (plasma.c) to direct function calls to correct plasma data instances. Each plasma data instance must have a corresponding type.

Enumeration Type Documentation

◆ plasma_type

Plasma data types.

Plasma data types are used in the plassma interface (plasma.c) to direct function calls to correct plasma data instances. Each plasma data instance must have a corresponding type.

Enumerator
plasma_type_1D 

Linear-interpolated 1D plasma data

plasma_type_1Dt 

Linear-interpolated time-dependent 1D plasma data

plasma_type_1DS 

Spline-interpolated 1D plasma data

Definition at line 24 of file plasma.h.

Function Documentation

◆ plasma_init_offload()

int plasma_init_offload ( plasma_offload_data * offload_data,
real ** offload_array )

Load plasma data and prepare parameters.

This function fills the relevant plasma offload struct with parameters and allocates and fills the offload array. Sets offload array length in the offload struct.

The offload data has to have a type when this function is called as it should be set when the offload data is constructed from inputs.

This function is host only.

Parameters
offload_datapointer to offload data struct
offload_arraypointer to pointer to offload array
Returns
zero if initialization succeeded

Definition at line 50 of file plasma.c.

◆ plasma_free_offload()

void plasma_free_offload ( plasma_offload_data * offload_data,
real ** offload_array )

Free offload array and reset parameters.

This function deallocates the offload_array.

This function is host only.

Parameters
offload_datapointer to offload data struct
offload_arraypointer to pointer to offload array

Definition at line 102 of file plasma.c.

◆ plasma_init()

int plasma_init ( plasma_data * pls_data,
plasma_offload_data * offload_data,
real * offload_array )

Initialize plasma data struct on target.

This function copies the plasma parameters from the offload struct to the struct on target and sets the plasma data pointers to correct offsets in the offload array.

Parameters
pls_datapointer to data struct on target
offload_datapointer to offload data struct
offload_arraypointer to offload array
Returns
zero if initialization succeeded

Definition at line 135 of file plasma.c.

◆ plasma_eval_temp()

a5err plasma_eval_temp ( real * temp,
real rho,
real r,
real phi,
real z,
real t,
int species,
plasma_data * pls_data )

Evaluate plasma temperature.

This function evaluates the temperature of a given plasma species at the given position.

This is a SIMD function.

Parameters
temparray where evaluated temperature [J] is stored
rhonormalized poloidal flux coordinate
rR-coordinate [m]
phiphi-coordinate [rad]
zz-coordinate [m]
ttime coordinate [s]
speciesindex of plasma species, 1 refers to electrons
pls_datapointer to plasma data struct
Returns
Non-zero a5err value if evaluation failed, zero otherwise

Definition at line 184 of file plasma.c.

◆ plasma_eval_dens()

DECLARE_TARGET_END a5err plasma_eval_dens ( real * dens,
real rho,
real r,
real phi,
real z,
real t,
int species,
plasma_data * pls_data )

Evaluate plasma density.

This function evaluates the density of a plasma species at the given radial coordinate.

This is a SIMD function.

Parameters
densarray where evaluated density will be stored
rhonormalized poloidal flux coordinate
rR-coordinate [m]
phiphi-coordinate [rad]
zz-coordinate [m]
ttime coordinate [s]
speciesindex of plasma species, 1 refers to electrons
pls_datapointer to plasma data struct
Returns
Non-zero a5err value if evaluation failed, zero otherwise

Definition at line 232 of file plasma.c.

◆ plasma_eval_densandtemp()

DECLARE_TARGET_END a5err plasma_eval_densandtemp ( real * dens,
real * temp,
real rho,
real r,
real phi,
real z,
real t,
plasma_data * pls_data )

Evaluate plasma density and temperature for all species.

This function evaluates the density and temperature of all plasma species at the given radial coordinate.

This is a SIMD function.

Parameters
denspointer where density [m^-3] will be stored
temppointer where temperature [J] will be stored
rhonormalized poloidal flux coordinate
rR-coordinate [m]
phiphi-coordinate [rad]
zz-coordinate [m]
ttime coordinate [s]
pls_datapointer to plasma data struct
Returns
Non-zero a5err value if evaluation failed, zero otherwise

Definition at line 280 of file plasma.c.

◆ plasma_get_n_species()

DECLARE_TARGET_END int plasma_get_n_species ( plasma_data * pls_data)

Get the number of plasma species.

Retrieve the number of how many plasma species the data contains. The number includes electrons.

This is a SIMD function.

Parameters
pls_datapointer to plasma data struct
Returns
The number of plasma species

Definition at line 331 of file plasma.c.

◆ plasma_get_species_mass()

DECLARE_TARGET_END const real * plasma_get_species_mass ( plasma_data * pls_data)

Get mass of all plasma species.

Retrieve species' mass.

This is a SIMD function.

Parameters
pls_datapointer to plasma data struct
Returns
Pointer to array containing the requested mass values [kg]

Definition at line 361 of file plasma.c.

◆ plasma_get_species_charge()

DECLARE_TARGET_END const real * plasma_get_species_charge ( plasma_data * pls_data)

Get charge of all plasma species.

Retrieve species' charge.

This is a SIMD function.

Parameters
pls_datapointer to plasma data struct
Returns
Pointer to array containing the requested charge values [C]

Definition at line 391 of file plasma.c.

◆ plasma_get_species_znum()

DECLARE_TARGET_END const int * plasma_get_species_znum ( plasma_data * pls_data)

Get charge number of ion species.

This is a SIMD function.

Parameters
pls_datapointer to plasma data struct
Returns
Pointer to array containing the charge numbers

Definition at line 419 of file plasma.c.

◆ plasma_get_species_anum()

DECLARE_TARGET_END const int * plasma_get_species_anum ( plasma_data * pls_data)

Get atomic mass number of ion species.

This is a SIMD function.

Parameters
pls_datapointer to plasma data struct
Returns
Pointer to array containing the atomic mass numbers

Definition at line 447 of file plasma.c.