The IPEC outputs are entirely specified by flags (bool types t or f) set in the IPEC_output section of IPEC.in. All outputs are ASCII files, and can be grouped into two major categories.
A number of the flag options in IPEC.in instruct IPEC to output ASCII file data. Some of these outputs are always available. Some, however, require a input error field instead of a hard coded harmonic_flag call. Both groups are listed in detail here.
Outputs Always Available
These IPEC outputs can always be obtained from a equil.bin file output from DCON.
IPEC_response_n#.out
Flag resp_flag
Info Energy for DCON eigenmodes and stability indices. Eigenvalues and eigenvectors for vacuum and plasma inductance (virtual casing currents to fields), plasma permeability (external fields to total fields), and plasma reluctance.
IPEC_singcoup_matrix_n#.out
Flag singcoup_flag
Info The coupling matrix to resonant fields, coupling matrix to singular currents, and to island half-widths is given for each rational surface within the plasma (q=2, 3, etc) for each surface the real and imaginary coupling constants are given for each poloidal mode number on the control surface.
IPEC_singcoup_svd_n#.out
Flag singcoup_flag
Info The SVD singular values (s) and eigen vectors for each coupling matrix in IPEC_singcoup_matrix_n#.out. Large s corresponds to large amplification, with the largest (most important mode) listed at the top. The results should be dotted with the unweighted normal field spectrum to give physical meaning.
Outputs Available When Error Field is Provided
These outputs are only available when an external error field file is provided as an input to IPEC. This means IPEC.in must have the data_flag turned on and a infile specified.
IPEC_control_n#.out
Flag
Info The Plasma response for an external perturbation on the control surface. This includes the vacuum energy, surface energy, plasma energy, real and imaginary vacuum input mathbf{B}_{in} and total field on plasma boundarymathbf{B}_{out}as a function of poloidal mode number.
IPEC_singfld_n#.out
Flag singfld_flag
Info The Psi_{N}, total resonant mathbf{B} (real and imaginary), singular current (real and imaginary), island half width in units of normalized flux and Chirikov parameter at rational surface inside the plasma.
Flag singcoup_flag
Info Additional section showing the overlap field and overlap percentage for each eigenmode in the singcoup_svd output.
IPEC_pmod_n#.out
Flag pmodb_flag
Info Eulerian and Lagrangian left|mathbf{B}right|(real and imaginary) for each poloidal mode number at each value of Psi_{N} output. This output is necessary for NTV post processing.
IPEC_xbnormal_n#.out
Flag xbnormal_flag
Info The normal components of the displacement, magnetic field without the plasma response, and magnetic field with the plasma response included for each poloidal mode number at each value of Psi_{N} output.??
IPEC_*rzphi_n#.out
A number of output files have a similar structure. Here the * in the file name is replaced by the appropriate leading letters of the corresponding flag. For example the xrzphi_flag for n=1 creates a IPEC_xrzphi_n1.out file. some common properties of these files are:
real and imaginary components: Output files contain two dimensional data on an left(r,zright) grid for a single toroidal harmonic. To translate into three dimensions, perform the transformationBleft(r,z,phiright)=B_{real}left(r,zright)cosleft(nphiright)+B_{imag}left(r,zright)sinleft(nphiright)
l parameter: 1 designates points inside plasma, 0 points in vacuum, -1 points near/on surface (singularity)
Flag eqbrzphi_flag
Info The original equilibrium field on a left(r,z,phiright) grid.
Flag brzphi_flag
Info The left(r,z,phiright)components of the perturbed magnetic fields inside the plasma on the left(r,z,phiright) grid.
Flag xrzphi_flag
Info The displacement on the left(r,z,phiright) grid.
Flag vbrzphi_flag
Info The false perturbed magnetic field in the vacuum region on the left(r,z,phiright) grid calculated using the IPEC boundary surface current composed of both the vacuum component and the plasma response.
Flag vpbrzphi_flag
Info The true perturbed magnetic field in the vacuum region on the left(r,z,phiright) grid due to the plasma response alone calculated from the plasma response surface condition.
Flag vvbrzphi_flag
Info The false perturbed magnetic field in the vacuum region on the left(r,z,phiright) grid calculated using the IPEC boundary surface current from the external fields alone.
Flag ssbrzphi_flag
Info The false perturbed magnetic field in the vacuum region on the left(r,z,phiright) grid calculated using the IPEC boundary surface current from the external fields alone.
These files are designed for quick and easy visualization of results using the xdraw command. For more details on using xdraw see the devoted section on this page.
xbnormal.bin
Flag bin_flag
Info The normal displacement and magnetic field as functions of Psi_{N} for xdraw.
xbnormal_2d.bin
Flag bin_2d_flag
Info Contour profiles of the normal displacement and magnetic field in (R,z) for xdraw.
pflux_re(im)_2d.bin
Flag bin_2d_flag
Info Contour profiles of the real (imaginary) perturbed flux in (R,z) for xdraw.
bnormal_spectrum.bin
Flag bin_flag
Info Surfmn type contours of the normal perturbed magnetic fields as a function of poloidal harmonic number and Psi_{N}.
The binary IPEC outputs can be viewed using the commandxdraw filenamewhere filename is one of the .bin files created by IPEC (“.bin” excluded). This is a quick way to view results immediately as they are produced. The xdraw tool provides a highly interactive environment that takes keystroke inputs to change plot display options, navigate plots, display single or multiple responses at once, do limited post processing (get a gradient, or ratio), and save figures. For a full list of the command options, enter the xdraw environment and press “k”.
A review of the NTV calculation and definitions of the involved variables can be found in Ref. [Park, 2009]. For the detailed mathematics, although important, are not the subject of this manual. The important highlights for the user to keep in mind are the following:
– Force balance and the neoclassical value of the poloidal velocity are used to calculate the radial electric field.qnleft(E_{r}-v_{phi}B_{theta}+v_{theta}B_{phi}right) = frac{partial P}{partial r} v_{theta} = frac{c_{p}}{eB_{theta}}frac{partial T_{i}}{partial r}approxfrac{1.17}{eB_{theta}}frac{partial T_{i}}{partial r}
– Specifically, the experimental profiles used are ion temperature T_{i}, electron temperature T_{e}, electron density n_{e}, impurity density n_{iz}, the effective charge Z_{eff}, and toroidal rotation V_{phi}. Optionally the Etimes B rotation and deuterium rotation can be specified as well.
– CP rightarrow Collisional Plateau regimes transport estimated by Shaing [Zhu2006, and references therein].
– IN rightarrow Generalized combination of the 1/nu and nu regimes. This is the most trusted result at the time of this manual’s writing.
The first step in an NTV calculation for any given shot is to run the corresponding IPEC calculation. The output files necessary are the control, singfld, and pmodb, files. These should use the functional outputs.
Having obtained the required output files, the user should enter the IDL environment and run one of the two NTV routines. These routines are ‘total_energy_torque.pro’ and ‘simple_energy_torque.pro’. The first requires full experimental data and should be initialized in the package script found at ‘/u/jpark/analysis/lib/init_routines_jkp.idl’, while the second defines analytic profiles for the necessary variables in order to calculate results from IPEC outputs and can be used on its own.
An example of the run process within the IDL environment is shown here:
IDL> @/u/jpark/analysis/lib/init_routines_jkp.idl
IDL> gfile='g145117.03600_d3d_kinetic' ;efit equilibrium
IDL> kdir = 'samplepath' ;directory of GA kinetic file
IDL> path1 = 'samplepath' ;directory of equilibrium file
IDL> path2 = 'samplepath' ;directory of IPEC outputs
IDL> numstr = '145117.03600' ;shot.time
IDL> t = total_energy_torque(nn=3,/adata,/atime, kdir=kdir,gfile=gfile,/diamag,/magpre,/counter,path1=path1,path2=path2,nl=8,numstr=numstr)
The result can be saved using:
IDL> save,file='t145117.03600_d3d_kinetic_ievenc1_counter.tsav',t
or the user’s choice of save file path. The result holds a huge amount of information. The structure can be found using the command:
IDL> help, /str, tor
IDL> help, /str, t.TOT.L.NTVetc.
This example uses a number of specific call words, and there are many more that can be examined by looking into the nuts and bolts of the script ‘total_energy_torque.pro’. So as not to leave the reader hanging, we will quickly review the calls used above. The keywords ‘/adata’ and ‘/atime’ tell the routine that it will be using data from Andrea Garofalo, the structure of which has been hard-coded into the routine and would need to be edited for any new data format. The keyword ‘/counter’ changes the sign of some of Andrea Garofalo’s data to be consistent with other conventions. The keywords ‘/diamag’ and ‘/magpre’ tell the routine to use the diamagnetic rotation and magnetic precession respectively, and should be called for almost all non-debugging calculation purposes. Finally, the variable ‘nl’ specifies the number of bounce harmonics to include in the calculation. There are many other arguments that could be passed to the total_energy_torque such as specifying a separate machine, or individual profiles. However, the user will be required to familiarize themselves with the internal structures of the function and the data before extending themselves to use its full functionality.