generate_poincare_data Subroutine

subroutine generate_poincare_data(equi, n_surfaces, n_turns, n_planes, phi_array, trace_start_loc, filename)

For a given equilibrium equi, this routine generates Poincare data on the toroidal planes with angles given in phi_array.

This is done by tracing n_surfaces number of magnetic field lines n_turns number of full toroidal turns 2pi around the device. The starting locations of each field line, for the first plane, are given in trace_start_loc.

Each time the trace intersects one of the specified planes, the x and y locations of the field line are saved. This data is then saved to netcdf file with the name filename.

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium instance

integer, intent(in) :: n_surfaces

Number of flux surfaces

integer, intent(in) :: n_turns

Number of toroidal rotations 2pi

integer, intent(in) :: n_planes

Number of toroidal planes

real(kind=FP), intent(in), dimension(n_planes) :: phi_array

Toroidal angles at which to save data

real(kind=FP), intent(in), dimension(2, n_surfaces) :: trace_start_loc

Trace starting locations (x, y) for each surface, for the first plane

character(len=*), intent(in) :: filename

File name under which to save the Poincare data