ASCOT5
Loading...
Searching...
No Matches
wall.h File Reference

Header file for wall.c. More...

#include "ascot5.h"
#include "offload.h"
#include "wall/wall_2d.h"
#include "wall/wall_3d.h"

Go to the source code of this file.

Data Structures

struct  wall_data
 Wall model simulation data. More...
 

Typedefs

typedef enum wall_type wall_type
 Wall model types.
 

Enumerations

enum  wall_type { wall_type_2D , wall_type_3D }
 Wall model types. More...
 

Functions

void wall_free (wall_data *data)
 Free allocated resources.
 
void wall_offload (wall_data *data)
 Offload data to the accelerator.
 
int wall_hit_wall (real r1, real phi1, real z1, real r2, real phi2, real z2, wall_data *w, real *w_coll)
 Check if a given directed line segment intersects the wall.
 
DECLARE_TARGET_END int wall_get_n_elements (wall_data *w)
 Return the number of wall elements.
 

Detailed Description

Header file for wall.c.

Contains a list declaring all wall_types, and declaration of wall_offload_data and wall_data structs.

Definition in file wall.h.

Enumeration Type Documentation

◆ wall_type

enum wall_type

Wall model types.

Enumerator
wall_type_2D 

Axisymmetric wall model consisting of single contour

wall_type_3D 

3D wall model consisting of triangles

Definition at line 20 of file wall.h.

Function Documentation

◆ wall_free()

void wall_free ( wall_data * data)

Free allocated resources.

Parameters
datapointer to the data struct

Definition at line 29 of file wall.c.

◆ wall_offload()

void wall_offload ( wall_data * data)

Offload data to the accelerator.

Parameters
datapointer to the data struct

Definition at line 46 of file wall.c.

◆ wall_hit_wall()

int wall_hit_wall ( real r1,
real phi1,
real z1,
real r2,
real phi2,
real z2,
wall_data * w,
real * w_coll )

Check if a given directed line segment intersects the wall.

This function is intended to be used to check whether a marker collides with the wall. If there is a collision, this function returns an identification number specific to that wall tile. If the marker hits multiple wall elements, only the first one is returned.

This is a SIMD function.

Parameters
r1start point R coordinate [m]
phi1start point phi coordinate [rad]
z1start point z coordinate [rad]
r2end point R coordinate [m]
phi2end point phi coordinate [rad]
z2end point z coordinate [rad]
wpointer to data struct on target
w_collpointer for storing the parameter in P = P1 + w_coll * (P2-P1), where P is the point where the collision occurred.
Returns
wall element id if hit, zero otherwise

Definition at line 80 of file wall.c.

◆ wall_get_n_elements()

DECLARE_TARGET_END int wall_get_n_elements ( wall_data * w)

Return the number of wall elements.

Parameters
wpointer to wall data struct on target
Returns
Number of wall elements or zero on failure.

Definition at line 104 of file wall.c.