Welcome to EPEC’s documentation!


EPEC

Short Description

Suite of programs to simulate island dynamics in presence of RMP

Keywords

tokamak, magnetic island, dynamics, resonant magnetic perturbation (RMP), GPEC code

Long Description

Suite of programs to simulate multi-harmonic magnetic island chain dynamics in presence of resonant magnetic perturbation in time-varying toroidal tokamak equilibrium. The simulation scheme is based on asymptotic matching.

Relevant Publications

  • R. Fitzpatrick, SangKyeun Kim, and Jaehyun Lee. Modeling of q95 windows for the suppression of edge localized modes by resonant magnetic perturbations in the KSTAR tokamak. Phys. Plasmas 28, 082511 (2021).

  • R. Fitzpatrick. Further modeling of q95 windows for the suppression of edge localized modes by resonant magnetic perturbations in the DIII-D tokamak. Phys. Plasmas 28, 022503 (2021).

  • R. Fitzpatrick. Modeling q95 windows for the suppression of edge localized modes by resonant magnetic perturbations in the DIII-D tokamak. Phys. Plasmas 27, 102511 (2020).

  • R. Fitzpatrick, and A.O. Nelson. An improved theory of the response of DIII-D H-mode discharges to static resonant magnetic perturbations and its implications for the suppression of edge localized modes. Phys. Plasmas 27, 072501 (2020).

Programs

/FLUX

Program to read gFile(s) and write equilibrium data needed by NEOCLASSICAL and PHASE to fFile(s)

/NEOCLASSICAL

Program to read FLUX data from fFile(s), profile data from pFile(s) and cFiles(s), and write neoclassical data needed by PHASE to nFile(s)

/PHASE

Program to read FLUX data from fFile(s), NEOCLASSICAL data from nFile(s), GPEC data from uFile(s), mFiles(s), and lFile(s), and perform island dynamics simulation. Final state of plasma saved in sFile.

/RESCALE

Program to rescale equilibrium gFile, as well as profile pFile and cFile, so as to scan physical quantity as function of time. Allowed scans are electron density (n_e), electron temperature (T_e), major radius (R_0), toroidal momentum diffusivity (chi_p), total pressure (P), ExB frequency (w_E), and edge safety-factor (q_95).

/GPEC

Independent OMFIT module used to calculate ideal-MHD response of tokamak plasma equilibirum to resonant magnetic perturbation

Calculation Phases

  • PHASE 1: PHASE reads gFile(s) and outputs plasma equilibrium data for Stage 2

  • PHASE 2: PHASE constructs flux coordinate system, calculates metric quantities, locates resonant surfaces, calculates neoclassical data at resonant surfaces, calculates tearing stability matrix, calculates GGJ data, calculates island saturation data, and outputs all data to fFile(s).

  • PHASE 3: NEOCLASSICAL reads fFile(s), pFile(s), and cFiles(s), calculates neoclassical/profile data at resonant surfaces, and outputs data to nFile(s).

  • PHASE 4: PHASE reads fFile(s), nFile(s), lfiles(s), uFile(s), mFile(s) for Stages 5 & 6, and calculates vacuum island widths as function of relative RMP coil phase.

  • PHASE 5: PHASE performs island dynamics simulation in fixed equilibrium.

  • PHASE 6: PHASE performs island dynamics simulation in dynamic equilibrium.

Servers

EPEC can be run either directly on the local server (assuming that the EPEC source is installed on the local server) or via SLURM on a SLURM server, depending on whether the “SLURM” checkbox on the MAIN screen of the GUI is unchecked or checked, respectively. There is also a “Batch” checkbox on the MAIN screen: if checked this enables batch execution of SLURM jobs (when practical and advantageous). The SLURM server can be changed in the MAIN screen of the GUI.

Filesystems

  • Local OMFIT file system. Usually in /tmp/<username>/OMFIT/ on local machine.

  • Remote OMFIT file system. Usually in /tmp/<username>/OMFIT/ on SLURM server.

  • Local EPEC-runs database.
    • In projectsDir/../EPEC-runs/<Device>.<Shot>.<Time>.<runid>

    • Alternately in projectsDir/EPEC-runs/<Device>.<Shot>.<Times[0]>.<Times[-1]>.<runid> on local machine.

    • Here, <Device>, <Shot>, <Time>, <Times[]>, <runid> are set on the MAIN page of the GUI.

    • Previous runs of EPEC can be loaded from the EPEC-runs database using the “Load Previous run …” button, which will appear on the MAIN page of the GUI if the run is present in the database.

    • The present run can be saved to the database by giving “runid” on the MAIN page of the GUI a unique value, and then hitting the “Save run” button on the MAIN page.

Test Data

Test data can be loaded into EPEC using the TEST DATA page of the GUI. The following data is available:

  • NSTX Shot 127317 at 400 ms, n=1 RMP.

  • KSTAR Shot 18594 at 6450 ms, n=2 RMP.

  • DIIID Shot 145380 at 3400 ms, n=3 RMP.

  • DIIID Shot 145380 between 2000 and 4500 ms, 50 ms interval, n=3 RMP.

Workflows

  • Test run * Hit ‘DIIID #145380 3400 ms n=3’ button on the TEST DATA page of the GUI. * Hit ‘Run FLUX + NEOCLASSICAL + PHASE’ on the EPEC page of the GUI.

  • Basic run
    • Edit the namelists that control FLUX, NEOCLASSICAL, and PHASE:
      • EPEC/INPUTS/epec_namelist - should not need to change.

      • FLUX/INPUTS/flux_namelist - need to choose NTOR, PSIPED.

      • NEOCLASSICAL/INPUTS/neoclassical_namelist - need to choose ExB, NN, LN, YN.

      • PHASE/INPUTS/phase_namelist - need to choose TSTART, TEND, DT, MID, COPT, FREQ.

      • PHASE/INPUTS/rmp_waveform - need to specify RMP waveform.

    • Load the gFile into FLUX/INPUTS/.

    • Load the pFile into NEOCLASSICAL/INPUTS/.

    • Load the cFile into NEOCLASSICAL/INPUTS/.

    • Load the gFile into GPEC.

    • Run GPEC with 1kA (with the correct toroidal mode number) flowing in the desired coil-set. The toroidal mode number ‘nn’ in the GPEC GUI namelist must match NTOR in FLUX/INPUTS/flux_namelist.

    • Hit ‘Import l/u/m files from GPEC (attempts to guess coil set)’ on EPEC page of GUI.

    • Repeat the previous two steps until all coil-sets have been accounted for. (The maximum allowed number of coil-sets is presently 3.)

    • Hit ‘Run FLUX + NEOCLASSICAL + PHASE’ on the EPEC page of the GUI.

    • The RMP waveform can be modified by changing entries in the PHASE/INPUTS/rmp_waveform namelist. Once the waveform is changed, it is only necessary to rerun PHASE (hit the ‘Run PHASE’ button on the PHASE page of the GUI).

  • Interpolated run
    • Edit the namelists that control EPEC, FLUX. NEOCLASSICAL, and PHASE:
      • EPEC/INPUTS/epec_namelist - need to choose TSTART, TEND, DTF, DTP.

      • FLUX/INPUTS/flux_namelist - need to choose NTOR, PSIPED.

      • NEOCLASSICAL/INPUTS/neoclassical_namelist - need to choose ExB, NN, LN, YN.

      • PHASE/INPUTS/phase_namelist - need to choose DT, MID, COPT, FREQ.

      • PHASE/INPUTS/rmp_waveform - need to specify RMP waveform.

    • Load the gFiles into FLUX/INPUTS/gFiles/. Load the Index into FLUX/INPUTS/gFiles/. The Index should list the g-filenames and the corresponding experimental times in two columns, in order of increasing time.

    • Load the pFiles into NEOCLASSICAL/INPUTS/pFiles/. Load the Index into NEOCLASSICAL/INPUTS/pFiles/. The Index should list the p-filenames and the corresponding experimental times in two columns, in order of increasing time.

    • Load the cFiles into NEOCLASSICAL/INPUTS/pFiles/. Load the Index into NEOCLASSICAL/INPUTS/cFiles/. The Index should list the c-filenames and the corresponding experimental times in two columns, in order of increasing time.

    • Load the gFiles into GPEC.

    • Run GPEC with 1kA (with the correct toroidal mode number) flowing in the desired coil-set. The toroidal mode number ‘nn’ in GPEC GUI must match NTOR in FLUX/INPUTS/flux_namelist.

    • Hit ‘Import l/u/m files from GPEC (attempts to guess coil set)’ on the EPEC page of the GUI.

    • Repeat previous two steps until all coil-sets have been accounted for. (The maximum allowed number of coil-sets is presently 3.)

    • Hit ‘Generate fFiles and nFiles’ on the EPEC page of the GUI.

    • Hit ‘Run EPEC’ on the EPEC page of the GUI.

    • The RMP waveform can be modified by changing entries in the PHASE/INPUTS/rmp_waveform namelist. Once the waveform is changed, you can hit ‘Run EPEC’ again.

  • Rescaled run
    • Edit the namelists that control EPEC, RESCALE, FLUX. NEOCLASSICAL, and PHASE:
      • EPEC/INPUTS/epec_namelist - need to choose TSTART, TEND, DTF, DTP and RESCALE parameters.

      • FLUX/INPUTS/flux_namelist - need to choose NTOR, PSIPED.

      • NEOCLASSICAL/INPUTS/neoclassical_namelist - need to choose ExB, NN, LN, YN.

      • PHASE/INPUTS/phase_namelist - need to choose DT, MID, COPT, FREQ.

      • PHASE/INPUTS/rmp_waveform - need to specify RMP waveform.

    • Load the gFile into FLUX/INPUTS/.

    • Load the pFile into NEOCLASSICAL/INPUTS/.

    • Load the cFile into NEOCLASSICAL/INPUTS/.

    • Hit one of the buttons on the SCAN page of the GUI. This will rescale the gFile/pFile/cFile (e.g., by changing q_95). The rescaled files will be loaded into FLUX/INPUTS/gFiles, NEOCLASSSICAL/INPUTS/pFiles, and NEOCLASSICAL/INPUTS/cFiles, together with the appropriate Index files.

    • Load the gFiles into GPEC.

    • Run GPEC with 1kA (with the correct toroidal mode number) flowing in the desired coil-set. The toroidal mode number ‘nn’ in GPEC GUI must match NTOR in FLUX/INPUTS/flux_namelist.

    • Hit ‘Import l/u/m files from GPEC (attempts to guess coil set)’ on the EPEC page of the GUI.

    • Repeat the previous two steps until all coil-sets have been accounted for. (The maximum allowed number of coil-sets is presently 3.)

    • Hit ‘Generate fFiles and nFiles’ on the EPEC page of the GUI.

    • Hit ‘Run EPEC’ on the EPEC page of the GUI.

    • The RMP waveform can be modified by changing entries in the PHASE/INPUTS/rmp_waveform namelist. Once the waveform is changed, you can hit ‘Run EPEC’ again.


EPEC NAMELIST

Short Description

Description of EPEC namelist

Keywords

namelist

Namelist Variables

TSTART

Simulation start time (ms)

TEND

Simulation end time (ms)

PSTART

Start time for PHASE/EPEC plots (ignored if negative) (ms)

PEND

End time for PHASE/EPEC plots (ignored if negative) (ms)

MPOL

PHASE/EPEC plots only show data for mode with poloidal mode number MPOL (ignored if negative)

DTR

Time interval between successive RESCALE calculations (ms)

DTF

Time interval between successive fFile/nFile calculations (ms)

DTP

Time interval between successive PHASE runs (ms)

RESTART

Flag for restarting each PHASE run, rather than using previous run as initial condition

ANSTART

Initial AN for RESCALE n_e scan

ANEND

Final AN for RESCALE n_e scan

ATSTART

Initial AT for RESCALE T_e scan

ATEND

Final AT for RESCALE T_e scan

ARSTART

Initial AR for RESCALE R_0 scan

AREND

Final AR for RESCALE R_0 scan

ACSTART

Initial AC for RESCALE CHI_PHI scan

ACEND

Final AC for RESCALE CHI_PHI scan

APSTART

Initial AP for RESCALE P scan

APEND

Final AP for RESCALE P scan

AWSTART

Initial AW for RESCALE w_E scan

AWEND

Final AW for RESCALE w_E scan

QSTART

Initial Q95 for RESCALE q_95 scan

QEND

Final Q95 for RESCALE q_95 scan


FLUX

Short Description

Program to calculate equilibrium data needed by EPEC.

Keywords

equilibrium

Long Description

Program to read gFile(s) and write plasma equilibrium data needed by NEOCLASSICAL and PHASE to fFile(s).

Stage 1:

Read gFile(s) and output plasma equilibrium data for Stage 2

Stage 2:

Construct flux coordinate system. Calculate metric quantities. Locate rational surfaces. Calculate neoclassical data. Calculate tearing stability matrix. Calculate GGJ data. Calculate island saturation data.

Contents

Inputs:
Flux.nml:

Fortran_90 namelist control file

gFile:

Equilibrium EQDSK gFile

gFiles:
Directory containing gFiles for interpolation:
Index:

List of gFile names and experimental times

gFiles:

Actual gFiles

Outputs:
fFile:

File containing data for NEOCLASSICAL and PHASE

fFiles:
Directory containing fFiles associated with interpolated gFiles
Index:

List of fFile names and experimental times

fFiles:

Actual fFiles

Stage1.nc:

NETCDF data file from Stage 1 calculation

Stage2.nc:

NETCDF data file from Stage 2 calculation

Plots:
*.py:

Python scripts to plot Stage 1 and Stage2 data

gFile Format

read (100, ‘(a48, 3i4)’) string, i3, NRBOX, NZBOX
read (100, ‘(5e16.9)’) RBOXLEN, ZBOXLEN, R0, RBOXLFT, ZOFF
read (100, ‘(5e16.9)’) RAXIS, ZAXIS, PSIAXIS, PSIBOUND, B0
read (100, ‘(5e16.9)’) CURRENT, zero, zero, zero, zero
read (100, ‘(5e16.9)’) zero, zero, zero, zero, zero
read (100, ‘(5e16.9)’) (T (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) (P (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) (TTp (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) (Pp (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) ((PSI (i, j), i = 1, NRBOX), j = 1, NZBOX)
read (100, ‘(5e16.9)’) (Q (i), i = 1, NRBOX)
read (100, ‘(2i5)’) NBOUND, NLIM
read (100, ‘(5e16.9)’) (RBOUND (i), ZBOUND (i), i = 1, NBOUND)
read (100, ‘(5e16.9)’) (RLIM (i), ZLIM (i), i = 1, NLIM)

Anything after this is ignored


FLUX NAMELIST

Short Description

Description of FLUX namelist

Keywords

namelist

Namelist Variables

NTOR

Toroidal mode number of RMP

MMIN

Minimum poloidal mode number of resonant surfaces included in calculation

MMAX

Maximum poloidal mode number of resonant surfaces included in calculation

PSILIM

Maximum PsiN for safety-factor calculation

PSIRAT

Resonant surfaces in region PsiN > PSIRAT are ignored

PSIPED

PsiN value at top of pedestal

INTG

Flag for interpolating gFiles

TIME

Experimental time (ms) (only relevant when INTG = 1)

RW

Radius of resistive wall (units of minor radius)

NPSI

Number of points in PsiN grid

PACK
Packing index for PsiN grid:

PsiN[i] = PSILIM * (1. - (1. - s)^PACK) for i = 0, NPSI-1, where s = i /(NPSI-1)

NTHETA

Number of points in theta grid (must be odd)

NNC

Number of neoclassical harmonics included in calculation

NSMOOTH

Number of smoothing cycles for calculation of higher derivatives of q

H0

Initial integration step-length

ACC

Adaptive integration accuracy

ETA

Regularization factor for Green’s function

NEOANG

Flag for using neoclassical, as opposed to straight, angle in E-matrix calculation


NEOCLASSICAL

Short Description

Program to generate profile data needed by EPEC.

Keywords

profile, neoclassical

Long Description

Program to read FLUX data from fFile(s), profile data from pFile(s) and cFiles(s), and write neoclassical/profile data needed by PHASE to nFile(s)

Stage 3:

Read input files, calculate neoclassical/profile data at resonant surfaces, and output nFile(s)

Contents

Inputs:
Neoclassical.nml:

Fortran_90 namelist control file

fFile:

Equiulibrium data from PHASE

fFiles:
Directory containing fFiles for interpolation
Index:

List of fFile names and experimental times

*.f:

Actual fFiles

pFile:

Osborne pFile containing profile data

pFiles:
Directory containing pFiles for interpolation
Index:

List of pFile names and experimental times

pFiles:

Actual pFiles

cFile:

Perpendicular diffusivity data from TRANSP

cFiles:
Directory containing cFiles for interpolation
Index:

List of cFile names and experimental times

cFiles:

Actual cFiles

Outputs:
nFile:

File containing neoclassical/profile data for PHASE

nFiles:
Directory containing interpolated nFiles
Index:

List of nFile names and experimental times

*.n:

Actual nFiles

Stage3.nc:

NETCDF file from Stage 3 calculation

Plots:
*.py:

Python scripts to plot Stage 3 data

pFile Format

n “psinorm ne(10^20/m^3) dnedpsiN”
for (int i = 0; i < n; i++)
PSI, NE, dNEdPSI
n “psinorm te(KeV) dtedpsiN”
for (int i = 0; i < n; i++)
PSI, TE, dTEdPSI
n “psinorm ni(10^20/m^3) dnidpsiN”
for (int i = 0; i < n; i++)
PSI, NI, dNIdPSI
n “psinorm ti(KeV) dtidpsiN”
for (int i = 0; i < n; i++)
PSI, TI, dTIdPSI
n “psinorm nb(10^20/m^3) dpbdpsiN”
for (int i = 0; i < n; i++)
PSI, NB, dNBdPSI
n “psinorm pb(kPa) dnbdpsiN”
for (int i = 0; i < n; i++)
PSI, PB, dPBdPSI
n “psinorm ptot(kPa) dptotdpsiN”
for (int i = 0; i < n; i++)
PSI, PTOT, dPTOTdPSI
n “psinorm omeg(kRad/s) domeg/dpsiN”
for (int i = 0; i < n; i++)
PSI, WPHI, dWPHIdPSI
n “psinorm omegp(kRad/s) domegp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WTHE, dWTHEdPSI
n “psinorm omegvb(kRad/s) domevb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WVB, dWVBdPSI
n “psinorm omegpp(kRad/s) domepp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WPP, dWPPdPSI
n “psinorm omgeb(kRad/s) domgeb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WEB, dWEBdPSI
n “psinorm er(kV/m) der/dpsiN”
for (int i = 0; i < n; i++)
PSI, ER, dERdPSI
n “psinorm ommvb(kRad/s) dommvb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WMVB, dWMVBdPSI
n “psinorm ommpp(kRad/s) dommpp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WMPP, dWMPPdPSI
n “psinorm omevb(kRad/s) domevb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WEVB, dWEVBdPSI
n “psinorm omepp(kRad/s) domepp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WEPP, dWEPPdPSI
n “psinorm kpol(km/s/T) dkpol/dpsiN”
for (int i = 0; i < n; i++)
PSI, KPOL, dKPOLdPSI
n “psinorm omghb() domghb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WMGB, dWMGBdPSI
n “psinorm nz1(10^20/m^3) dnz1dpsiN”
for (int i = 0; i < n; i++)
PSI, NI, dNIdPSI
n “psinorm vtor1(km/s) dvtor1psiN”
for (int i = 0; i < n; i++)
PSI, VTOR1, dVTOR1dPSI
n “psinorm vpol1(km/s) dvpol1psiN”
for (int i = 0; i < n; i++)
PSI, VPOL1, dVPOL1dPSI
n “N Z A of ION SPECIES”
for (int i = 0; i < n; i++)
N, Z, A (i=0 impurity, i=1 majority; i=2 fast)
PSI:

Normalized poloidal flux

NE:

Electron number density (10^20/m^3)

TE:

Electron temperature (keV)

NI:

Thermal ion number density (10^20/m^3)

TI:

Thermal ion temperature (keV)

NB:

Fast ion number density (10^20/m^3)

WPHI:

Impurity ion toroidal angular velocity on outboard midplane (krad/s)

WTHE:

Impurity ion poloidal angular velocity on outboard midplane (krad/s)

WEB:

ExB frequency (krad/s)

NI:

Impurity ion number density (10^20/m^3)

N:

Ion atomic number

Z:

Ion charge (units of e)

A:

Ion mass number

Fields can occur in any order. Additional fields are ignored.

cFile Format

n
for (int i = 0; i < n; i++)
PSI, CHI_PHI, CHI_E, D_PERP, CHI_I
PSI:

Normalized poloidal flux

CHI_PSI:

Perpendicular toroidal momentum diffusivity (m^2/s)

CHI_E:

Perpendicular electron energy diffusivity (m^2/s)

D_PERP:

Perpendicular particle diffusivity (m^2/s)

CHI_I:

Perpendicular ion energy diffusivity (m^2/s)


NEOCLASSICAL NAMELIST

Short Description

Description of NEOCLASSICAL namelist

Keywords

namelist

Namelist Variables

EXB
Switch for calculating ExB frequency from neoclassical theory:
0:

Use ExB frequency profile from pFile

1:

Use ExB frequency profile derived from pFile toroidal and poloidal velocity profiles (should be same as EXB = 0)

2:

Use ExB frequency profile derived from pFile toroidal velocity profile and neoclassical poloidal velocity profile

IMPURITY

Flag for inclusion of impurities in calculation

NEUTRAL

Flag for inclusion of neutrals in claculation

NTYPE

If 0/1 then flux-surface averaged neutral density distribution exponential/Lorentzian

NN

Flux-surface averaged neutral density on LCFS (m^-3)

LN

Flux-surface averaged neutral density decay lengthscale (m)

YN

Neutral peaking factor at X-point

SVN

Charge exchange rate constant (m^3/s)

EN

Incoming neutral energy/ion energy

INTF

Flag for fFile interpolation

INTP

Flag for pFile interpolation

INTC

Flag for cFile interpolation

CATS

Flag for linear-only interpolation of cFiles

DMIN

Minimum allowed value of diffusvities at resonant surfaces (m^2/s)

DMAX

Maximum allowed value of diffusvities at resonant surfaces (m^2/s)

TIME

Experimental time (ms) (only relevant with interpolation of pFiles/fFiles/cFiles)

TAUMIN

Minimum allowed value of tau (parameter in calculation of linear layer widths)

COULOMB

Coulomb logarithm

NSMOOTH

Number of smoothing cycles for calculation of higher derivatives of profiles


PHASE

Short Description

Program to perform EPEC island dynamics simulation.

Keywords

island, RMP

Long Description

Program to read FLUX data from fFile(s), NEOCLASSICAL data from nFile(s), GPEC data from uFile(s), mFiles(s), and lFile(s), and perform island dynamics simulation. Final state of plasma saved in sFile.

Stage 4:

Read data and calculate vacuum island widths as function of relative RMP coil phase

Stage 5:

Perform island dynamics simulation in fixed equilibrium

Stage 6:

Perform island dynamics simulation in dynamic equilibrium

Contents

Inputs:
Phase.nml:

Fortran_90 namelist control file

Waveform.nml:

Fortran_90 namelist file specifing RMP coil current waveform

fFile:

Equilibrium data from FLUX

fFiles:
Directory containing fFiles for interpolation
Index:

List of fFile names and experimental times

fFiles:

Actual fFiles

nFile:

Neoclassical/profile data from NEOCLASSICAL

nFiles:
Directory containing nFiles for interpolation
Index:

List of nFile names and experimental times

nFiles:

Actual nFiles

lFile:

Ideal response data to 1kA current flowing in lower RMP coil set from GPEC

lFiles:
Directory containing lFiles for interpolation
Index:

List of lFile names and experimental times

lFiles:

Actual lFiles

uFile:

Ideal response data to 1kA current flowing in (optional) upper RMP coil set from GPEC

uFiles:
Directory containing uFiles for interpolation
Index:

List of uFile names and experimental times

uFiles:

Actual uFiles

mFile:

Ideal response data to 1kA current flowing in (optional) middle RMP coil set from GPEC

mFiles:
Directory containing mFiles for interpolation
Index:

List of mFile names and experimental times

mFiles:

Actual mFiles

Outputs:
sFile:

File specifying final plasma state (used for restarting calculation)

Stage4.nc:

NETCDF file from Stage 4 calculation

Stage5.nc:

NETCDF file from Stage 5 calculation

ncFiles/*.nc:

NETCDF files from Stage 6 calculation

Plots:
*.py:

Python scripts to plot Stage 4 and 5 data

../EPEC/PLOTS/*.py:

Python scripts to plot Stage 6 data

lFile, uFile, mFile Format

Files are gpec_singfld_n?.out files from GPEC with singular field and ascii flags set


PHASE NAMELIST

Short Description

Description of PHASE namelist

Keywords

namelist

Namelist Variables

PMAX

RMP coil relative phase scan from -PMAX*M_PI/2 to PMAX*M_PI/2 in Stage 4

STAGE5

Flag for proceeding to Stage5 calculation

TSTART

Simulation start time (ms)

TEND

Simulation end time (ms)

DT

Data recorded every DT ms

TOFF

If not restarting calculation run simulation for TOFF ms before recording data

MID
Number of coil sets:
1:

Requires lFile

2:

Requires lFile and uFile

3:

Requires lFile, uFile, and mFile

COPT
Switch for optimaiztion of relative amplitudes/phases of coils currents:
0:

No optimization

1:

Maximize drive at resonant surface closest to top of pedestal (restricted)

2:

Maximize drive at resonant surface closest to top of pedestal (unrestricted)

3:

Maximize drive at resonant surface closest to top of pedestal and minimize drive at innermost resonant surface (unrestricted)

CORE

Core drive minimization factor when COPT = 3 (0.0 = no minimization, 1.0 = complete minmization)

FREQ
Switch for selecting natural frequency type:
0:

Use linear/nonlinear natural frequency with linear layer width as switch

1:

Use linear/nonlinear natural frequency with electron pressure flattening width as switch

2:

Use linear/ExB/nonlinear natural frequency with linear layer width as switch

3:

Use w_natural = FFAC * w_linear + (1-FFAC) * w_EB

FFAC

Parameter for selecting natural frequency (when FREQ = 3)

LIN

Flag for purely linear island dynamics simulation

CXD

Flag for including charge exhange damping in angular equations of motion

POEM

Flag for including island saturation terms in Rutherford equations

BOOT

Flag for including bootstrap current terms in Rutherford equations

CURV

Flag for including magnetic field-line curvature terms in Rutherford equations

POLZ

Flag for including ion polarization current terms in Rutherford equations

WALL

FLag for including resistive wall in calculation

TAUW

Time constant of resistive wall (ms)

CHIR

Maximum Chirikov parameter for vacuum islands

MSTOP

Stop claculation if m = MSTOP mode locks (only active if MSTOP > 0)

INTF

Flag for fFile interpolation

INTN

Flag for nFile interpolation

INTU

Flag for uFile/mFile/lFile interpolation

NATS

Flag for linear-only nFile interpolation

RATS

Flag for linear-only interpolation of uFiles/mFiles/lFiles

OLD

Flag for restarting old calculation

HIGH

Flag for higher-order transport analysis

SCALE

GPEC scalefactor

NFLOW

Number of flow harmonics included in calculation


WAVEFORM

Keywords

namelist

Short Description

Description of WAVEFORM namelist

Waveform Control

TYPE

Waveform type (1=programmed, 2=spike, 3=repeated ramp)

Type 1 Waveform

NCTRL

Number of RMP control points in waveform

TCTRL

List of RMP control times (ms)

ICTRL

List of RMP currents at control times (kA)

PCTRL

List of relative phases of RMP coil currents at control times (units of PI)

Type 2 Waveform

SSTART

Time of start of RMP spike (ms)

SEND

Time of end of RMP spike (ms)

SAMP

RMP coil currents at start of RMP spike (kA)

SPHA

Relative phase of RMP coil currents at start of spike (units of PI)

SPVE

Phase velocity of RMP coil currents during spike (krad/s)

BACK

Background RMP coil currents (kA)

Type 3 Waveform

RPERIOD

Repeated RMP ramp repetition period (ms)

RSTART

RMP coil currents at start of ramp (first ramp starts at t=0) (kA)

REND

RMP coil currents at end of ramp (kA)

RPHA

Relative phase of RMP coil currents during ramp (units of PI)

NTM Trigger

MPOL

Poloidal mode number of NTM whose triggering is under investigation

AMIN

Minimum amplitude of applied type 2 RMP spike (kA)

AMAX

Maximum amplitude of applied type 2 RMP spike (kA)

DA

Resolution to which trigger amplitude determined (kA)

PSTART

Minumum duration of applied type 2 RMP spike (starts at SSTART) (ms)

PEND

Maximum duration of applied type 2 RMP spike (ms)

DP

Difference between durations of applied type 2 RMP spikes (ms)

FSTART

Minumum phase velocity of applied type 2 RMP spike (starts at SSTART) (kA)

FEND

Maximum phase velocity of applied type 2 RMP spike (kA)

DF

Difference between phase velocities of applied type 2 RMP spikes (kA)


RESCALE

Short Description

Program to rescale equilibrium and profile data needed by EPEC.

Keywords

rescale, equilibrium

Long Description

Program to read gFile, pFile, and cFile, rescale equilibrium, and write out new gFile, pFile, and cFile

Contents

/Inputs:
Rescale.nml:

Fortran_90 namelist control file

gFile:

Initial gFile

pFile:

Initial pFile

cFile:

Initial cFile

/Outputs:
gFile:

Rescaled gFile

pFile:

Rescaled pFile

cFile

Rescaled cFile

gFile Format

read (100, ‘(a48, 3i4)’) string, i3, NRBOX, NZBOX
read (100, ‘(5e16.9)’) RBOXLEN, ZBOXLEN, R0, RBOXLFT, ZOFF
read (100, ‘(5e16.9)’) RAXIS, ZAXIS, PSIAXIS, PSIBOUND, B0
read (100, ‘(5e16.9)’) CURRENT, zero, zero, zero, zero
read (100, ‘(5e16.9)’) zero, zero, zero, zero, zero
read (100, ‘(5e16.9)’) (T (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) (P (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) (TTp (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) (Pp (i), i = 1, NRBOX)
read (100, ‘(5e16.9)’) ((PSI (i, j), i = 1, NRBOX), j = 1, NZBOX)
read (100, ‘(5e16.9)’) (Q (i), i = 1, NRBOX)
read (100, ‘(2i5)’) NBOUND, NLIM
read (100, ‘(5e16.9)’) (RBOUND (i), ZBOUND (i), i = 1, NBOUND)
read (100, ‘(5e16.9)’) (RLIM (i), ZLIM (i), i = 1, NLIM)

Anything after this is ignored

pFile Format

n “psinorm ne(10^20/m^3) dnedpsiN”
for (int i = 0; i < n; i++)
PSI, NE, dNEdPSI
n “psinorm te(KeV) dtedpsiN”
for (int i = 0; i < n; i++)
PSI, TE, dTEdPSI
n “psinorm ni(10^20/m^3) dnidpsiN”
for (int i = 0; i < n; i++)
PSI, NI, dNIdPSI
n “psinorm ti(KeV) dtidpsiN”
for (int i = 0; i < n; i++)
PSI, TI, dTIdPSI
n “psinorm nb(10^20/m^3) dpbdpsiN”
for (int i = 0; i < n; i++)
PSI, NB, dNBdPSI
n “psinorm pb(kPa) dnbdpsiN”
for (int i = 0; i < n; i++)
PSI, PB, dPBdPSI
n “psinorm ptot(kPa) dptotdpsiN”
for (int i = 0; i < n; i++)
PSI, PTOT, dPTOTdPSI
n “psinorm omeg(kRad/s) domeg/dpsiN”
for (int i = 0; i < n; i++)
PSI, WPHI, dWPHIdPSI
n “psinorm omegp(kRad/s) domegp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WTHE, dWTHEdPSI
n “psinorm omegvb(kRad/s) domevb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WVB, dWVBdPSI
n “psinorm omegpp(kRad/s) domepp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WPP, dWPPdPSI
n “psinorm omgeb(kRad/s) domgeb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WEB, dWEBdPSI
n “psinorm er(kV/m) der/dpsiN”
for (int i = 0; i < n; i++)
PSI, ER, dERdPSI
n “psinorm ommvb(kRad/s) dommvb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WMVB, dWMVBdPSI
n “psinorm ommpp(kRad/s) dommpp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WMPP, dWMPPdPSI
n “psinorm omevb(kRad/s) domevb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WEVB, dWEVBdPSI
n “psinorm omepp(kRad/s) domepp/dpsiN”
for (int i = 0; i < n; i++)
PSI, WEPP, dWEPPdPSI
n “psinorm kpol(km/s/T) dkpol/dpsiN”
for (int i = 0; i < n; i++)
PSI, KPOL, dKPOLdPSI
n “psinorm omghb() domghb/dpsiN”
for (int i = 0; i < n; i++)
PSI, WMGB, dWMGBdPSI
n “psinorm nz1(10^20/m^3) dnz1dpsiN”
for (int i = 0; i < n; i++)
PSI, NI, dNIdPSI
n “psinorm vtor1(km/s) dvtor1psiN”
for (int i = 0; i < n; i++)
PSI, VTOR1, dVTOR1dPSI
n “psinorm vpol1(km/s) dvpol1psiN”
for (int i = 0; i < n; i++)
PSI, VPOL1, dVPOL1dPSI
n “N Z A of ION SPECIES”
for (int i = 0; i < n; i++)
N, Z, A (i=0 impurity, i=1 majority; i=2 fast)
PSI:

Normalized poloidal flux

NE:

Electron number density (10^20/m^3)

TE:

Electron temperature (keV)

NI:

Thermal ion number density (10^20/m^3)

TI:

Thermal ion temperature (keV)

NB:

Fast ion number density (10^20/m^3)

WPHI:

Impurity ion toroidal angular velocity on outboard midplane (krad/s)

WTHE:

Impurity ion toroidal angular velocity on outboard midplane (krad/s)

WEB:

ExB frequency (krad/s)

NI:

Impurity ion number density (10^20/m^3)

N:

Ion atomic number

Z:

Ion charge (units of e)

A:

Ion mass number

Fields can occur in any order. Additional fields are ignored.

cFile Format

n
for (int i = 0; i < n; i++)
PSI, CHI_PHI, CHI_E, D_PERP, CHI_I
PSI:

Normalized poloidal flux

CHI_PSI:

Perpendicular toroidal momentum diffusivity (m^2/s)

CHI_E:

Perpendicular electron energy diffusivity (m^2/s)

D_PERP:

Perpendicular particle diffusivity (m^2/s)

CHI_I:

Perpendicular ion energy diffusivity (m^2/s)


RESCALE NAMELIST

Short Description

Description of RESCALE namelist

Keywords

namelist

Namelist Variables

TYPE

Rescaling type (1=density, 2=temperature, 3=size, 4=chi, 5=pressure, 6=wE, 7=q)

SCALE

Rescaling factor (TYPE=1,2,3,4)

PSHIFT

Pressure profile shift factor (kPa) (TYPE=5)

WSHIFT

ExB frequency profile shift factor (krad/s) (TYPE=6)

Q95

Target safety-factor at 95% flux surface (TYPE=7)

OPOINT

Flag for recalculating O-point position in rescaled equilibirum

XPOINT

Flag for recalculating X-point position in rescaled equilibirum