415DECLARE_TARGET_SIMD_UNIFORM(Bdata)
418DECLARE_TARGET_SIMD_UNIFORM(Bdata)
421DECLARE_TARGET_SIMD_UNIFORM(Bdata)
424DECLARE_TARGET_SIMD_UNIFORM(Bdata)
427DECLARE_TARGET_SIMD_UNIFORM(Bdata)
430DECLARE_TARGET_SIMD_UNIFORM(Bdata)
433DECLARE_TARGET_SIMD_UNIFORM(p_fo,Bdata)
436GPU_DECLARE_TARGET_SIMD
Header file for B_field.c.
Header file for E_field.c.
Main header file for ASCOT5.
#define NSIMD
Number of particles simulated simultaneously in a particle group operations.
unsigned long int a5err
Simulation error flag.
void particle_to_ml_dummy(particle_simd_ml *p_ml, int j)
Makes a dummy ML simulation marker.
void particle_gc_to_state(particle_simd_gc *p_gc, int j, particle_state *p, B_field_data *Bdata)
Convert GC to state.
a5err particle_input_gc_to_state(particle_gc *p, particle_state *ps, B_field_data *Bdata)
Convert an input guiding center marker to particle state.
a5err particle_state_to_gc(particle_state *p, int i, particle_simd_gc *p_gc, int j, B_field_data *Bdata)
Convert state into a GC SIMD marker.
a5err particle_state_to_fo(particle_state *p, int i, particle_simd_fo *p_fo, int j, B_field_data *Bdata)
Convert state into a FO SIMD marker.
void particle_fo_to_state(particle_simd_fo *p_fo, int j, particle_state *p, B_field_data *Bdata)
Convert FO to state.
void particle_to_fo_dummy(particle_simd_fo *p_fo, int j)
Makes a dummy FO simulation marker.
int particle_fo_to_gc(particle_simd_fo *p_fo, int j, particle_simd_gc *p_gc, B_field_data *Bdata)
Convert FO struct into a GC struct.
a5err particle_input_ml_to_state(particle_ml *p, particle_state *ps, B_field_data *Bdata)
Convert an input field line marker to particle state.
void particle_input_to_state(input_particle *p, particle_state *ps, B_field_data *Bdata)
Converts input marker to a marker state.
void particle_to_gc_dummy(particle_simd_gc *p_gc, int j)
Makes a dummy GC simulation marker.
DECLARE_TARGET_SIMD void particle_copy_ml(particle_simd_ml *p1, int i, particle_simd_ml *p2, int j)
Copy ML struct.
void particle_allocate_fo(particle_simd_fo *p_fo, int nmrk)
Allocates struct representing particle markers.
a5err particle_state_to_ml(particle_state *p, int i, particle_simd_ml *p_ml, int j, B_field_data *Bdata)
Convert state to a ML SIMD marker.
a5err particle_input_p_to_state(particle *p, particle_state *ps, B_field_data *Bdata)
Convert an input particle marker to particle state.
DECLARE_TARGET_END DECLARE_TARGET_SIMD void particle_copy_gc(particle_simd_gc *p1, int i, particle_simd_gc *p2, int j)
Copy GC struct.
void particle_offload_fo(particle_simd_fo *p)
Offload particle struct to GPU.
int particle_cycle_ml(particle_queue *q, particle_simd_ml *p, B_field_data *Bdata, int *cycle)
Replace finished ML markers with new ones or dummies.
input_particle_type
Marker types enum.
void particle_ml_to_state(particle_simd_ml *p_ml, int j, particle_state *p, B_field_data *Bdata)
Convert ML to state.
GPU_DECLARE_TARGET_SIMD void particle_copy_fo(particle_simd_fo *p1, int i, particle_simd_fo *p2, int j)
Copy FO struct.
int particle_cycle_gc(particle_queue *q, particle_simd_gc *p, B_field_data *Bdata, int *cycle)
Replace finished GC markers with new ones or dummies.
int particle_cycle_fo(particle_queue *q, particle_simd_fo *p, B_field_data *Bdata, int *cycle)
Replace finished FO markers with new ones or dummies.
Magnetic field simulation data.
Wrapper for marker structs.
Struct representing NSIMD particle markers.
Struct representing NSIMD guiding center markers.
real charge[NSIMD] __memalign__
real B_r_dr[NSIMD] __memalign__
real rho[NSIMD] __memalign__
real mass[NSIMD] __memalign__
integer walltile[NSIMD] __memalign__
real z[NSIMD] __memalign__
real time[NSIMD] __memalign__
real mu[NSIMD] __memalign__
real r[NSIMD] __memalign__
real B_phi[NSIMD] __memalign__
real B_z_dphi[NSIMD] __memalign__
real mileage[NSIMD] __memalign__
real B_r_dphi[NSIMD] __memalign__
real B_r_dz[NSIMD] __memalign__
real B_r[NSIMD] __memalign__
real B_z[NSIMD] __memalign__
integer endcond[NSIMD] __memalign__
real cputime[NSIMD] __memalign__
real B_phi_dz[NSIMD] __memalign__
real zeta[NSIMD] __memalign__
integer index[NSIMD] __memalign__
real B_phi_dr[NSIMD] __memalign__
integer running[NSIMD] __memalign__
a5err err[NSIMD] __memalign__
real B_z_dr[NSIMD] __memalign__
real theta[NSIMD] __memalign__
real ppar[NSIMD] __memalign__
integer id[NSIMD] __memalign__
real B_z_dz[NSIMD] __memalign__
real weight[NSIMD] __memalign__
real phi[NSIMD] __memalign__
real B_phi_dphi[NSIMD] __memalign__
int bounces[NSIMD] __memalign__
Struct representing NSIMD field line markers.
real r[NSIMD] __memalign__
real B_r_dz[NSIMD] __memalign__
real cputime[NSIMD] __memalign__
real pitch[NSIMD] __memalign__
real rho[NSIMD] __memalign__
real B_z_dr[NSIMD] __memalign__
real B_phi_dphi[NSIMD] __memalign__
real mileage[NSIMD] __memalign__
real phi[NSIMD] __memalign__
real B_phi_dz[NSIMD] __memalign__
real B_r_dphi[NSIMD] __memalign__
real weight[NSIMD] __memalign__
real z[NSIMD] __memalign__
real theta[NSIMD] __memalign__
integer walltile[NSIMD] __memalign__
real B_z_dphi[NSIMD] __memalign__
integer running[NSIMD] __memalign__
real time[NSIMD] __memalign__
real B_phi[NSIMD] __memalign__
integer id[NSIMD] __memalign__
real B_z_dz[NSIMD] __memalign__
integer index[NSIMD] __memalign__
real B_phi_dr[NSIMD] __memalign__
real B_r_dr[NSIMD] __memalign__
real B_r[NSIMD] __memalign__
a5err err[NSIMD] __memalign__
integer endcond[NSIMD] __memalign__
real B_z[NSIMD] __memalign__
General representation of a marker.