ASCOT5
Loading...
Searching...
No Matches
Functions
dist_com.c File Reference

COM-distribution collecting and processing functions. More...

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "../ascot5.h"
#include "../consts.h"
#include "../physlib.h"
#include "../particle.h"
#include "dist_com.h"

Go to the source code of this file.

Functions

size_t dist_COM_index (int i_mu, int i_Ekin, int i_Ptor, size_t step_2, size_t step_1)
 Internal function calculating the index in the histogram array.
 
void dist_COM_free_offload (dist_COM_offload_data *offload_data)
 Frees the offload data.
 
void dist_COM_init (dist_COM_data *dist_data, dist_COM_offload_data *offload_data, real *offload_array)
 Initializes distribution from offload data.
 
void dist_COM_update_fo (dist_COM_data *dist, B_field_data *Bdata, particle_simd_fo *p_f, particle_simd_fo *p_i)
 Update the histogram from full-orbit markers.
 
void dist_COM_update_gc (dist_COM_data *dist, B_field_data *Bdata, particle_simd_gc *p_f, particle_simd_gc *p_i)
 Update the histogram from guiding center markers.
 

Detailed Description

COM-distribution collecting and processing functions.

Definition in file dist_com.c.

Function Documentation

◆ dist_COM_index()

size_t dist_COM_index ( int i_mu,
int i_Ekin,
int i_Ptor,
size_t step_2,
size_t step_1 )

Internal function calculating the index in the histogram array.

Definition at line 17 of file dist_com.c.

◆ dist_COM_free_offload()

void dist_COM_free_offload ( dist_COM_offload_data * offload_data)

Frees the offload data.

Parameters
offload_datapointer to offload data struct

Definition at line 29 of file dist_com.c.

◆ dist_COM_init()

void dist_COM_init ( dist_COM_data * dist_data,
dist_COM_offload_data * offload_data,
real * offload_array )

Initializes distribution from offload data.

Parameters
dist_datapointer to data struct
offload_datapointer to offload data struct
offload_arrayoffload array

Definition at line 48 of file dist_com.c.

◆ dist_COM_update_fo()

void dist_COM_update_fo ( dist_COM_data * dist,
B_field_data * Bdata,
particle_simd_fo * p_f,
particle_simd_fo * p_i )

Update the histogram from full-orbit markers.

Parameters
distpointer to distribution parameter struct
Bdatapointer to magnetic field data
p_fpointer to SIMD fo struct at the end of current time step
p_ipointer to SIMD fo struct at the start of current time step

Definition at line 78 of file dist_com.c.

◆ dist_COM_update_gc()

void dist_COM_update_gc ( dist_COM_data * dist,
B_field_data * Bdata,
particle_simd_gc * p_f,
particle_simd_gc * p_i )

Update the histogram from guiding center markers.

This function updates the histogram from the marker data. Bins are calculated as vector op and histogram is updates as an atomic operation to avoid race conditions.

Parameters
distpointer to distribution parameter struct
Bdatapointer to magnetic field data
p_fpointer to SIMD gc struct at the end of current time step
p_ipointer to SIMD gc struct at the start of current time step

Definition at line 135 of file dist_com.c.