The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
oft_gs_util Module Reference

Detailed Description

Grad-Shafranov utility subroutines for TokaMaker.

Authors
Chris Hansen
Date
September 2017

Data Types

type  sauter_interp
 Need docs. More...
 

Functions/Subroutines

subroutine gs_calc_vloop (self, vloop)
 Compute plasma loop voltage.
 
subroutine gs_comp_globals (self, itor, centroid, vol, pvol, dflux, tflux, bp_vol)
 Compute various global quantities for Grad-Shafranov equilibrium.
 
subroutine gs_profile_load (filename, f)
 Create flux function object from definition file.
 
subroutine gs_profile_save (filename, f)
 Save flux function object to definition file.
 
subroutine gs_save_eqdsk (gseq, filename, nr, nz, rbounds, zbounds, run_info, limiter_file, psi_pad, rcentr_in, trunc_eq, lcfs_press, error_str)
 Save equilibrium to General Atomics gEQDSK file.
 
subroutine gs_save_ifile (gseq, filename, npsi, ntheta, psi_pad, lcfs_press, pack_lcfs, single_prec, error_str)
 Needs docs.
 
subroutine sauter_apply (self, cell, f, gop, val)
 Evaluate terms in augmented tracing ODE for computing Sauter factors (see sauter_fc)
 
subroutine sauter_fc (gseq, nr, psi_q, fc, r_avgs, modb_avgs)
 Compute factors required for Sauter bootstrap formula.
 

Variables

class(flux_func), pointer ff_fit => NULL()
 
class(gs_eq), pointer gs_fit => NULL()
 
real(8), dimension(:,:), pointer tmpprof => NULL()
 

Function/Subroutine Documentation

◆ gs_calc_vloop()

subroutine gs_calc_vloop ( class(gs_eq), intent(inout)  self,
real(8), intent(out)  vloop 
)

Compute plasma loop voltage.

Parameters
[in,out]selfG-S object
[out]vlooploop voltage

◆ gs_comp_globals()

subroutine gs_comp_globals ( class(gs_eq), intent(inout)  self,
real(8), intent(out)  itor,
real(8), dimension(2), intent(out)  centroid,
real(8), intent(out)  vol,
real(8), intent(out)  pvol,
real(8), intent(out)  dflux,
real(8), intent(out)  tflux,
real(8), intent(out)  bp_vol 
)

Compute various global quantities for Grad-Shafranov equilibrium.

Parameters
[in,out]selfG-S object
[out]itorToroidal current
[out]centroidCurrent centroid [2]
[out]volPlasma volume
[out]pvol\( \int P dV \)
[out]dfluxDiamagnetic flux
[out]tfluxContained toroidal flux
[out]bp_vol\( \int B_p^2 dV \)

◆ gs_profile_load()

subroutine gs_profile_load ( character(len=*), intent(in)  filename,
class(flux_func), intent(out), pointer  f 
)

Create flux function object from definition file.

Parameters
[in]filenameFile storing function definition
[out]fFlux function object

◆ gs_profile_save()

subroutine gs_profile_save ( character(len=*), intent(in)  filename,
class(flux_func), intent(in), pointer  f 
)

Save flux function object to definition file.

Parameters
[in]filenameFile to store function definition
[in]fFlux function object

◆ gs_save_eqdsk()

subroutine gs_save_eqdsk ( class(gs_eq), intent(inout)  gseq,
character(len=oft_path_slen), intent(in)  filename,
integer(4), intent(in)  nr,
integer(4), intent(in)  nz,
real(8), dimension(2), intent(in)  rbounds,
real(8), dimension(2), intent(in)  zbounds,
character(len=40), intent(in)  run_info,
character(len=oft_path_slen), intent(in)  limiter_file,
real(8), intent(in)  psi_pad,
real(8), intent(in), optional  rcentr_in,
logical, intent(in), optional  trunc_eq,
real(8), intent(in), optional  lcfs_press,
character(len=oft_error_slen), intent(out), optional  error_str 
)

Save equilibrium to General Atomics gEQDSK file.

Parameters
[in,out]gseqEquilibrium to save
[in]filenameOutpute filename
[in]nrNumber of radial points for flux/psi grid
[in]nzNumber of vertical points for flux grid
[in]rboundsRadial extents for flux grid
[in]zboundsRadial extents for flux grid
[in]run_infoRun information string [40]
[in]limiter_filePath to limiter file
[in]psi_padPadding at LCFS in normalized units
[in]rcentr_inValue to use for RCENTR (otherwise geometric center is used)
[in]trunc_eqTruncate equilibrium at psi_pad
[in]lcfs_pressLCFS pressure

◆ gs_save_ifile()

subroutine gs_save_ifile ( class(gs_eq), intent(inout)  gseq,
character(len=oft_path_slen), intent(in)  filename,
integer(4), intent(in)  npsi,
integer(4), intent(in)  ntheta,
real(8), intent(in)  psi_pad,
real(8), intent(in), optional  lcfs_press,
logical, intent(in), optional  pack_lcfs,
logical, intent(in), optional  single_prec,
character(len=oft_error_slen), intent(out), optional  error_str 
)

Needs docs.

Parameters
[in,out]gseqG-S object
[in]filenameOutpute filename
[in]npsiNumber of points in flux coordinate
[in]nthetaNumber of points in poloidal coordinate
[in]psi_padPadding at LCFS in normalized units
[in]lcfs_pressLCFS pressure
[in]pack_lcfsUse quadratic packing toward LCFS?
[in]single_precSave file with single precision fields?

◆ sauter_apply()

subroutine sauter_apply ( class(sauter_interp), intent(inout)  self,
integer(4), intent(in)  cell,
real(8), dimension(:), intent(in)  f,
real(8), dimension(3,3), intent(in)  gop,
real(8), dimension(:), intent(out)  val 
)

Evaluate terms in augmented tracing ODE for computing Sauter factors (see sauter_fc)

Parameters
[in,out]selfInterpolation object
[in]cellCell for interpolation
[in]fPosition in cell in logical coord [3]
[in]gopLogical gradient vectors at f [3,3]
[out]valReconstructed field at f [8]

◆ sauter_fc()

subroutine sauter_fc ( class(gs_eq), intent(inout)  gseq,
integer(4), intent(in)  nr,
real(8), dimension(nr), intent(in)  psi_q,
real(8), dimension(nr), intent(out)  fc,
real(8), dimension(nr,3), intent(out)  r_avgs,
real(8), dimension(nr,2), intent(out)  modb_avgs 
)

Compute factors required for Sauter bootstrap formula.

Parameters
[in,out]gseqG-S object
[in]nrNumber of flux sample points
[in]psi_qLocation of flux sample points
[out]fcTrapped particle fraction \( f_c \)
[out]r_avgsFlux surface averaged radial coordinates \(<R>\), \(<1/R>\), \(<a>\)
[out]modb_avgsFlux surface averaged field strength \(<|B|>\), \(<|B|^2>\)

Variable Documentation

◆ ff_fit

class(flux_func), pointer ff_fit => NULL()

◆ gs_fit

class(gs_eq), pointer gs_fit => NULL()

◆ tmpprof

real(8), dimension(:,:), pointer tmpprof => NULL()