------------------------------------------------------------
| Dataset |
| |
| for |
| |
| "Design of an arrangement of cubic magnets for a |
| quasi-axisymmetric stellarator experiment" |
| |
| K. C. Hammond et al. |
------------------------------------------------------------
Figure_01
---------
fig1_magnet_arrangement.csv:
Data file in the comma-separated values (csv) format specifying the
positions and orientations of the magnets in the arrangement in the figure.
The first seven columns contain integer IDs for each magnet:
rid: ID for the group of magnets in the radial dimension
zid: ID for the drawer in the vertical dimension
pid: ID for the drawer in the toroidal dimension (ranges from 9-16)
wid: ID for the magnet within the drawer in the toroidal dimension
hid: ID for for the magnet within the drawer in the vertical dimension
did: ID for the magnet within its radial group (rid)
ioid: ID for drawers on the inboard side (1) or outboard side (2)
The remaining 24 columns provide spatial coordinates for the vertices of
each (cubic) magnet. The column names are 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
These correspond to the x, y, and z coordinates, in meters, of the 8
vertices (four "top" (t) vertices and four "base" (b) vertices).
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 the arrangement in MATLAB, using the function qhex.m in the
Plotting directory (make sure the MATLAB environment is in the Plotting
directory when running):
geomData = readtable('../Figure_01/fig1_magnet_arrangement.csv');
fvMagnets = qhex(table2array(geomData(:,8:end)));
figure();
patch(fvMagnets, 'FaceColor', [0 1 1]);
set(gca, 'DataAspectRatio', [1 1 1]);
camlight();
The integer IDs in the first seven columns can be used to select specific
magnets from the arrangement. For example, the three drawers shown in
Fig. 1b contain all magnets with pid=9, 20<=zid<=22, and ioid=1.
Figure_03
---------
fig3a_step1_iterations.csv:
CSV-formatted file with the following columns:
iter: iteration number
chi2_B: value of the chi2_B objective function
fig3b_step2_iterations.csv:
CSV-formatted file with the following columns:
iter: iteration number
chi2_B: value of the chi2_B objective function
chi2_rho: value of the chi2_rho objective function
Figure_04
---------
fig4_rho_histograms.csv:
CSV-formatted file with the following columns:
step1: absolute values of rho for each magnet following the first step
of the optimization
step2: absolute values of rho for each magnet following the second step
of the optimization
Note: each row in the above file is associated with the magnet whose shape
and orientation are defined in the corresponding line of the file for
Figure 1.
Figure_05
---------
fig5_vectors.csv:
CSV-formatted file with the following columns:
vx: Cartesian x component of each vector shown in the figure
vy: Cartesian y component of each vector shown in the figure
vz: Cartesian z component of each vector shown in the figure
The first row corresponds to subplot a, the second for subplot b, and so on.
Figure_06
---------
fig6a_vectors.csv:
CSV-formatted file with the following columns:
vx: Cartesian x component of each vector in subset 1 (shown in subplot a)
vy: Cartesian y component of each vector in subset 1 (shown in subplot a)
vz: Cartesian z component of each vector in subset 1 (shown in subplot a)
fig6a_theta_offs.csv:
CSV-formatted file containing a 2-dimensional array with values of the
offset angle to the nearest allowable vector (theta_offs) in degrees of
subset 1, as shown on the surface of the sphere in subplot a. The columns
correspond to different azimuthal angles (phi) specified in the file
fig6_phi_axis.csv. The rows correspond to different polar angles (theta)
specified in the file fig6_theta_axis.csv.
Note: file contains no column headers.
fig6b_vectors.csv:
CSV-formatted file with the following columns:
vx: Cartesian x component of each vector in subset 5 (shown in subplot b)
vy: Cartesian y component of each vector in subset 5 (shown in subplot b)
vz: Cartesian z component of each vector in subset 5 (shown in subplot b)
fig6b_theta_offs.csv:
CSV-formatted file containing a 2-dimensional array with values of the
offset angle to the nearest allowable vector (theta_offs) in degrees of
subset 5, as shown on the surface of the sphere in subplot b. The columns
correspond to different azimuthal angles (phi) specified in the file
fig6_phi_axis.csv. The rows correspond to different polar angles (theta)
specified in the file fig6_theta_axis.csv.
Note: file contains no column headers.
fig6c_vectors.csv:
CSV-formatted file with the following columns:
vx: Cartesian x component of each vector in subset 6 (shown in subplot c)
vy: Cartesian y component of each vector in subset 6 (shown in subplot c)
vz: Cartesian z component of each vector in subset 6 (shown in subplot c)
fig6c_theta_offs.csv:
CSV-formatted file containing a 2-dimensional array with values of the
offset angle to the nearest allowable vector (theta_offs) in degrees of
subset 6, as shown on the surface of the sphere in subplot c. The columns
correspond to different azimuthal angles (phi) specified in the file
fig6_phi_axis.csv. The rows correspond to different polar angles (theta)
specified in the file fig6_theta_axis.csv.
Note: file contains no column headers.
fig6d_vectors.csv:
CSV-formatted file with the following columns:
vx: Cartesian x component of each vector in subset 8 (shown in subplot d)
vy: Cartesian y component of each vector in subset 8 (shown in subplot d)
vz: Cartesian z component of each vector in subset 8 (shown in subplot d)
fig6d_theta_offs.csv:
CSV-formatted file containing a 2-dimensional array with values of the
offset angle to the nearest allowable vector (theta_offs) in degrees of
subset 8, as shown on the surface of the sphere in subplot d. The columns
correspond to different azimuthal angles (phi) specified in the file
fig6_phi_axis.csv. The rows correspond to different polar angles (theta)
specified in the file fig6_theta_axis.csv.
Note: file contains no column headers.
fig6_phi_axis.csv:
CSV-formatted file containing the values of the azimuthal angle phi in
radians corresponding to each column of the arrays in the files labeled
"...theta_offs.csv" described above.
fig6_theta_axis.csv:
CSV-formatted file containing the values of the polar angle theta in
radians corresponding to each row of the arrays in the files labeled
"...theta_offs.csv" described above.
Figure_07
---------
fig7_bn.csv:
CSV-formatted file with the following columns:
set_id: ID of the subset of polarization vectors as defined in the paper
bn: Value of b_n as defined in the paper
Figure_08
---------
fig8a_phi00.csv:
CSV-formatted file for the data in subplot a, characterizing cross-sections
of the plasma boundary at toroidal angle phi = 0 degrees for different
magnet solutions, with the following columns:
theta: Poloidal angle in radians for each point
r_target: r coordinate for the target plasma boundary
r_continuous: r coordinate for the solution with continuous dipole moments
r_subset8: r coordinate for the discrete solution with Subset 8
r_subset5: r coordinate for the discrete solution with Subset 5
r_subset1: r coordinate for the discrete solution with Subset 1
z_target: z coordinate for the target plasma boundary
z_continuous: z coordinate for the solution with continuous dipole moments
z_subset8: z coordinate for the discrete solution with Subset 8
z_subset5: z coordinate for the discrete solution with Subset 5
z_subset1: z coordinate for the discrete solution with Subset 1
fig8c_iota.csv:
CSV-formatted file for the data in subplot c, characterizing profiles of
rotational transform (iota), with the following columns:
s: Normalized enclosed toroidal flux (radial profile coordinate)
target: Values of iota for the target plasma
continuous: Values of iota for the solution with continuous dipole moments
subset8: Values of iota for the discrete solution with Subset 8
subset5: Values of iota for the discrete solution with Subset 5
subset1: Values of iota for the discrete solution with Subset 1
fig8d_epsilon.csv:
CSV-formatted file for the data in subplot c, characterizing the effective
riple (epsilon effective to the 3/2 power, or "eps_eff"), with the following
columns:
s: Normalized enclosed toroidal flux (radial profile coordinate)
target: Values of eps_eff (effective ripple) for the target plasma
continuous: Values of eps_eff for solution with continuous dipole moments
subset8: Values of eps_eff for the discrete solution with Subset 8
subset5: Values of eps_eff for the discrete solution with Subset 5
subset1: Values of eps_eff for the discrete solution with Subset 1
Figure_09
---------
fig9_profiles.csv:
CSV-formatted data file with the plasma profile data plotted in Figure 9:
s: Normalized enclosed toroidal flux (radial profile coordinate)
pres: Plasma pressure (Pascals)
dids: Absolute value of the derivative of net toroidal current with
with respect to s
Figure_10
---------
fig10_moment_data.csv:
CSV-formatted file containing data for the magnets in the array shown
in Figure 10. Note that the data table contains a row for every magnet
in the arrangement given in the file fig1_magnet_arrangement.csv in the
folder Figure_01; however, not all of those magnets are included in the
solution array. Whether or not they are included is indicated in the column
titled "rho", as described below.
The first seven columns are the same as in the file
fig1_magnet_arrangement.csv in the folder Figure_01:
rid: ID for the group of magnets in the radial dimension
zid: ID for the drawer in the vertical dimension
pid: ID for the drawer in the toroidal dimension (ranges from 9-16)
wid: ID for the magnet within the drawer in the toroidal dimension
hid: ID for for the magnet within the drawer in the vertical dimension
did: ID for the magnet within its radial group (rid)
ioid: ID for drawers on the inboard side (1) or outboard side (2)
The next three columns give the origin point of the dipole moment of
each magnet in the lab frame (coincident with the geometric centroid):
ox: Cartesian x coordinate of the magnet center (meters)
oy: Cartesian y coordinate of the magnet center (meters)
oz: Cartesian z coordinate of the magnet center (meters)
The next three columns give the dipole moment vector in the lab frame:
Mx: Cartesian x component of the dipole moment (A*m^2)
My: Cartesian y component of the dipole moment (A*m^2)
Mz: Cartesian z component of the dipole moment (A*m^2)
The next three columns provide a unit vector perpendicular to the dipole
moment:
px: Cartesian x component of the perpendicular unit vector
py: Cartesian y component of the perpendicular unit vector
pz: Cartesian z component of the perpendicular unit vector
The next column indicates whether the magnet is "on" or "off":
rho: 1 if the magnet indicated in the row is included in the solution
0 if not included
The next column encodes the polarization type:
type: 0 if the magnet is not included in the solution array (rho=0)
1 for face polarization
2 for face-edge polarization
3 for face-corner polarization
The next three columns contain a unit vector indicating the direction of
the dipole moment in the frame of the magnet and its drawer:
cyl_r: component of moment unit vector along the axis perpendicular to
the faces of the magnet whose normal vectors point approximately
in the major radial direction
cyl_p: component of moment unit vector along the axis perpendicular to
the faces of the magnet whose normal vectors point approximately
in the toroidal direction
cyl_z: component of the moment unit vector in the vertical (Cartesian z)
dimension (which is also perpendicular to the top and bottom
faces of the magnet)
The last column is mainly for internal use:
axid: identifier of the dipole moment direction that is unique for magnets
with a given value of pid
To plot the solution in MATLAB, color-coded in a manner similar to
Figure 10, enter the following commands while operating in the Plotting
directory:
geomData = readtable('../Figure_01/fig1_magnet_arrangement.csv');
momentData = readtable('../Figure_10/fig10_moment_data.csv');
is_on = momentData.rho > 0;
fvMagnets = qhex(table2array(geomData(is_on,8:end)), ...
momentData.type(is_on));
figure();
patch(fvMagnets, 'FaceColor', 'Flat');
set(gca, 'DataAspectRatio', [1 1 1]);
Figure_11
---------
fig11a_r.csv:
CSV-formatted data file containing the radial (r) coordinates, in meters,
of the puncture points of the field lines in the toroidal plane phi = 0 deg,
as well as symmetric planes at phi = 120 deg and phi = 240 deg, as shown
in subplot a. Each column represents a different field line.
fig11a_z.csv:
CSV-formatted data file containing the vertical (z) coordinates, in meters,
of the puncture points of the field lines in the toroidal plane phi = 0 deg,
as well as symmetric planes at phi = 120 deg and phi = 240 deg, as shown
in subplot a. Each column represents a different field line.
fig11b_r.csv:
CSV-formatted data file containing the radial (r) coordinates, in meters,
of the puncture points of the field lines in the toroidal plane
phi = 60 deg, as well as symmetric planes at phi = 180 deg and
phi = 300 deg, as shown in subplot b. Each column represents a different
field line.
fig11b_z.csv:
CSV-formatted data file containing the vertical (z) coordinates, in meters,
of the puncture points of the field lines in the toroidal plane
phi = 60 deg, as well as symmetric planes at phi = 180 deg and
phi = 300 deg, as shown in subplot b. Each column represents a different
field line.
Plotting
--------
qhex.m:
Matlab function used to visualize arrangements of hexahedral magnets.
Usage information is available in its documentation string.
Supplemental
------------
This directory contains input and output files from the VMEC and FIELDLINES
codes used for the analysis in the paper.
Documentation for the VMEC code can be found here:
https://princetonuniversity.github.io/STELLOPT/VMEC
Documentation for the FIELDLINES code can be found here:
https://princetonuniversity.github.io/STELLOPT/FIELDLINES
For documentation or access to the FAMUS or MAGPIE codes, please contact
the author at khammond@pppl.gov.
input.c09r00_axis_half_tesla:
VMEC fixed-boundary input file for the target plasma configuration.
wout_c09r00_axis_half_tesla.nc:
NETCDF-formatted VMEC output file for the target plasma configuration.
wout_subset5.nc:
NETCDF-formatted VMEC output file for the free-boundary VMEC calculation
of the plasma equilibrium confined by the NCSX TF coils and the discrete
solution using Subset 5 of the polarizations.
mgrid.subset5:
Data file containing the vacuum magnetic field from the NCSX TF coils and
the magnets from the discrete solution using Subset 5, usable for field
line tracing with the FIELDLINES code and/or free-boundary equilibrium
calculations with the VMEC code.
solution_subset5.famus
Specification of the dipole moments for the discrete magnet solution
using polarizations from Subset 5 in the format used for input to the
FAMUS code.