Digital data for the paper:

Geometric concepts for stellarator permanent magnet arrays

by K. C. Hammond, C. Zhu, T. Brown, K. Corrigan, D. A. Gates, and M. Sibilia

Contact: khammond@pppl.gov

================================================================================

Figure 1a

fig1a_bricks.txt: Text file containing the coordinates of the vertices of each
    brick in the magnet arrangement shown in Figure 1a. Each line in the file
    contains the vertex data for a single brick. Since each brick conforms to
    a regular grid in cylindrical coordinates, the brick can be fully
    specified by the minimum and maximum value in each dimension (six values in 
    total). The six space-separated values given in each line are as follows:
        1. r_min: the minimum (inner) value of the radial coordinate in meters
        2. r_max: the maximum (outer) value of the radial coordinate in meters
        3. z_min: the minimum (lower) value of the z coordinate in meters
        4. z_max: the maximum (upper) value of the z coordinate in meters
        5. phi_min: minimum value of the toroidal angle in radians
        6. phi_max: maximum value of the toroidal angle in radians

    To plot in MATLAB, using the function cbricks.m in the Plotting directory
    (make sure the MATLAB environment is in the Plotting directory when
    running):
        brickData = importdata('../Figure_01/fig1a_bricks.txt');
        [fvBricks, fvWireframe] = cbricks(brickData);
        figure();
        patch(fvBricks, 'FaceColor', [0 1 1], 'EdgeColor', 'None');
        patch(fvWireframe, 'FaceColor', 'None');
        set(gca, 'DataAspectRatio', [1 1 1]);
        camlight();

Figure 1b

fig1b_qhex.txt: Text file containing the coordinates of the vertices of each
    hexahedron in the magnet arrangement shown in Figure 1b. Each line in the
    file contains the vertex data for a single hexahedron. The 24 space-
    separated values in each line provide the x, y, and z coordinates, in 
    meters, of the 8 vertices (four "top" (t) vertices and four "base" (b) 
    vertices) as follows:

        xt1, yt1, zt1, xt2, yt2, zt2, xt3, yt3, zt3, xt4, yt4, zt4, 
        xb1, yb1, zb1, xb2, yb2, zb2, xb3, yb3, zb3, xb4, yb4, zb4

    Viewed from the base face, the vertex numbers 1-4 are ordered 
    counterclockwise about the face. Vertex 1 on the base face is 
    connected via an edge to vertex 1 on the top face, etc. (see below).

        View toward      View toward
         base face        top face
        b4-------b3      t3-------t4
        |   base  |      |   top   |
        |         |      |         |
        b1-------b2      t2-------t1

    To plot in MATLAB, using the function qhex.m in the Plotting directory 
    (make sure the MATLAB environment is in the Plotting directory when 
    running):
        qhexData = importdata('../Figure_01/fig1b_qhex.txt');
        [fvQhex] = qhex(qhexData);
        figure();
        patch(fvQhex, 'FaceColor', [0 1 1]);
        set(gca, 'DataAspectRatio', [1 1 1]);
        camlight();

================================================================================

Figure 4a

fig4a_qhex_15cm.txt: hexahedron geometric data for plot a (15 cm radial extent)
fig4a_rho_15cm.txt:  density (rho) for each hexahedron in plot a

Figure 4b

fig4b_qhex_25cm.txt: hexahedron geometric data for plot b (25 cm radial extent)
fig4b_rho_25cm.txt:  density (rho) for each hexahedron in plot b

Figure 4c

fig4c_qhex_40cm.txt: hexahedron geometric data for plot c (40 cm radial extent)
fig4c_rho_40cm.txt:  density (rho) for each hexahedron in plot c

*** See notes for Fig. 1b for explanation on how to interpret hexahedron 
    geometric data files

To plot in MATLAB with color coding for rho, using the function qhex.m in the 
Plotting directory (make sure the MATLAB environment is in the Plotting 
directory when running):
    qhexData = importdata('../Figure_04/fig4a_qhex_15cm.txt');
    rhoData = importdata('../Figure_04/fig4a_rho_15cm.txt');
    [fvQhex] = qhex(qhexData, rhoData);
    figure();
    patch(fvQhex, 'FaceColor', 'Flat', 'FaceLighting', 'None');
    set(gca, 'DataAspectRatio', [1 1 1]);
    colorbar();

================================================================================

Figure 5

fig5_r_relbnorm.txt: radial extent in meters (first column), 
                     average relative normal B-field on plasma boundary 
                         (second column)

================================================================================

Figure 6

fig6_M_relbnorm.txt: maximum magnetization in Amps per meter (first column), 
                     average relative normal B-field on plasma boundary 
                         (second column)

================================================================================

Figure 7a

Files beginning with "fig7a_rzCoords" contain the r coordinates (1st column) and
z coordinates (2nd column), in meters, of a cross-section of the plasma 
boundary at toroidal angle phi = 0 degrees for different plasma equilibria as
follows:
    fig7a_rzCoords_00deg_M0p6.txt: magnet arrangement with M_max = 0.6 MA/m
    fig7a_rzCoords_00deg_M1p1.txt: magnet arrangement with M_max = 1.1 MA/m
    fig7a_rzCoords_00deg_M1p6.txt: magnet arrangement with M_max = 1.6 MA/m
    fig7a_rzCoords_00deg_M2p1.txt: magnet arrangement with M_max = 2.1 MA/m
    fig7a_rzCoords_00deg_targ.txt: target plasma configuration

Figure 7b

Files beginning with "fig7b_rzCoords" contain the r coordinates (1st column) and
z coordinates (2nd column), in meters, of a cross-section of the plasma 
boundary at toroidal angle phi = 60 degrees for different plasma equilibria as
follows:
    fig7b_rzCoords_60deg_M0p6.txt: magnet arrangement with M_max = 0.6 MA/m
    fig7b_rzCoords_60deg_M1p1.txt: magnet arrangement with M_max = 1.1 MA/m
    fig7b_rzCoords_60deg_M1p6.txt: magnet arrangement with M_max = 1.6 MA/m
    fig7b_rzCoords_60deg_M2p1.txt: magnet arrangement with M_max = 2.1 MA/m
    fig7b_rzCoords_60deg_targ.txt: target plasma configuration

Figure 7c

Files beginning with "fig7c_s_iota" contain the values of normalized toroidal 
flux (1st column) and corresponding rotational transform values (2nd column)
for different plasma equilibria as follows:
    fig7c_s_iota_M0p6.txt: magnet arrangement with M_max = 0.6 MA/m
    fig7c_s_iota_M1p1.txt: magnet arrangement with M_max = 1.1 MA/m
    fig7c_s_iota_M1p6.txt: magnet arrangement with M_max = 1.6 MA/m
    fig7c_s_iota_M2p1.txt: magnet arrangement with M_max = 2.1 MA/m
    fig7c_s_iota_targ.txt: target plasma configuration

Figure 7d

Files beginning with "fig7d_s_eps" contain the values of normalized toroidal 
flux (1st column) and corresponding epsilon_eff^3/2 (2nd column) for different
plasma equilibria as follows:
    fig7d_s_eps_M0p6.txt: magnet arrangement with M_max = 0.6 MA/m
    fig7d_s_eps_M1p1.txt: magnet arrangement with M_max = 1.1 MA/m
    fig7d_s_eps_M1p6.txt: magnet arrangement with M_max = 1.6 MA/m
    fig7d_s_eps_M2p1.txt: magnet arrangement with M_max = 2.1 MA/m
    fig7d_s_eps_targ.txt: target plasma configuration

================================================================================

Figure 8

Each file contains a set of radial extents in meters (first column) and
the corresponding surface-averaged relative B-normal (second column) for 
different magnet arrangements as follows:
    fig8_r_relBnorm_qhex.txt:         quadrilaterally-faced hexahedra
    fig8_r_relBnorm_brick_radial.txt: curved bricks with radial initialization
    fig8_r_relBnorm_brick_normal.txt: curved bricks with normal initialization


================================================================================

Figure 9a

fig9a_qhex_10p0.txt: hexahedron geometric data (10 cm radial extent)
fig9a_rho_10p0.txt:  density (rho) for each hexahedron in plot a

Figure 9b

fig9b_qhex_17p5.txt: hexahedron geometric data (17.5 cm radial extent)
fig9b_rho_17p5.txt:  density (rho) for each hexahedron in plot b

Figure 9c

fig9c_qhex_35p0.txt: hexahedron geometric data (35 cm radial extent)
fig9c_rho_35p0.txt:  density (rho) for each hexahedron in plot c

*** See notes for Fig. 1b for explanation on how to interpret hexahedron 
    geometric data files

*** For an example on how to plot the hexahedra in MATLAB, see the notes
    for Fig. 4

================================================================================

Figure 10

Each file contains the bin center for the offset angle in degrees (1st column) 
and the associated dipole quantity in A*m^2 (2nd column) for different magnet
arrangements as follows:
    fig10a_offset_qty_17p5.txt: hexahedra with radial extent of 17.5 cm
    fig10b_offset_qty_25p0.txt: hexahedra with radial extent of 25.0 cm

================================================================================

Figure 11a

fig11a_bricks_10cm.txt: brick geometric data, plot a (10 cm radial extent)
fig11a_rho_10cm.txt:  density (rho) for each brick in plot a

Figure 11b

fig11b_bricks_20cm.txt: brick geometric data, plot b (20 cm radial extent)
fig11b_rho_20cm.txt:  density (rho) for each brick in plot b

Figure 11c

fig11c_bricks_35cm.txt: brick geometric data, plot c (35 cm radial extent)
fig11c_rho_35cm.txt:  density (rho) for each brick in plot c

*** See notes for Fig. 1a for explanation on how to interpret geometric data
    files for curved brick configurations

To plot in MATLAB with color coding for rho, using the function qhex.m in the 
Plotting directory (make sure the MATLAB environment is in the Plotting 
directory when running):
    brickData = importdata('../Figure_11/fig11a_bricks_10cm.txt');
    rhoData = importdata('../Figure_11/fig11a_rho_10cm.txt');
    [fvCbrick, fvWireframe] = cbricks(brickData, rhoData);
    figure();
    patch(fvCbrick, 'FaceColor', 'Flat', 'EdgeColor', 'None');
    patch(fvWireframe, 'FaceColor', 'None');
    set(gca, 'DataAspectRatio', [1 1 1]);
    colorbar();

================================================================================

Figure 12

Each file contains a set of radial extents in meters (first column) and
the corresponding effective volume per half-module in cubic meters (second 
column) for different magnet arrangements as follows:
    fig12_r_vEff_qhex.txt:         quadrilaterally-faced hexahedra
    fig12_r_vEff_brick_radial.txt: curved bricks with radial initialization
    fig12_r_vEff_brick_normal.txt: curved bricks with normal initialization

================================================================================

Figure 13a

Each file contains a set of radial extents in meters (first column) and the
corresponding surface-averaged relative B-normal (second column) for different
magnet arrangements as follows:
    fig13a_r_relBnorm_qhex.txt:  quadrilaterally-faced hexahedra
    fig13a_r_relBnorm_brick.txt: curved bricks with normal initialization

Figure 13b

Each file contains a set of radial extents in meters (first column) and the
corresponding effective volume per half-module in cubic meters (second column) 
for different magnet arrangements as follows:
    fig13b_r_vEff_qhex.txt:  quadrilaterally-faced hexahedra
    fig13b_r_vEff_brick.txt: curved bricks with normal initialization

================================================================================

Figure 14a

fig14a_qhex.txt: hexahedron geometric data, plot a 
fig14a_rho.txt:  density (rho) for each hexahedron in plot a

*** See notes for Fig. 1b for explanations on how to interpret 
    geometric data files for hexahedra

*** For an example on how to plot the hexahedra in MATLAB, see the notes
    for Fig. 4

Figure 14b

fig14b_bricks.txt: brick geometric data, plot b 
fig14b_rho.txt:    density (rho) for each curved brick in plot b

*** See notes for Fig. 1a for explanations on how to interpret 
    geometric data files for curved bricks

*** For an example on how to plot the curved bricks in MATLAB, see the notes
    for Fig. 11

================================================================================

Figure 15

Each file contains a set of radial extents in meters (first column) and the
corresponding surface-averaged relative B-normal (second column) for different
magnet arrangements as follows:
    fig15_r_relBnorm_0p5cm.txt:     min. gap spacing of 0.5 cm
    fig15_r_relBnorm_1cm.txt:       min. gap spacing of 1 cm
    fig15_r_relBnorm_2cm.txt:       min. gap spacing of 2 cm
    fig15_r_relBnorm_2cm_ports.txt: min. gap spacing of 2 cm with room for ports
    fig15_r_relBnorm_3cm.txt:       min. gap spacing of 3 cm 

