320 lines
8.4 KiB
Markdown
320 lines
8.4 KiB
Markdown
---
|
||
title: GRAY.INI
|
||
section: 5
|
||
---
|
||
|
||
# NAME
|
||
gray.ini --- Configuration file for **gray**(1)
|
||
|
||
# CONFIGURATION
|
||
The configuration file is written in the INI format. The basic syntax
|
||
is:
|
||
|
||
[group]
|
||
; comment
|
||
parameter = value
|
||
|
||
Group is one of: *raytracing*, *ecrh_cd*, *antenna*, *equilibrium*,
|
||
*profiles*, *misc*.
|
||
|
||
Values are valid Fortran values, including numbers (integers or floating
|
||
points), strings (enclosed in quotes), booleans (*.true.*, *.false.*)
|
||
and named constants (e.g. *MODE_X*).
|
||
|
||
# PARAMETERS
|
||
Valid configuration parameters listed by group
|
||
|
||
Note: parameters with a default value are optional and can be omitted.
|
||
|
||
## raytracing
|
||
Raytracing parameters
|
||
|
||
**nrayr**
|
||
: Number of rays in the radial direction
|
||
|
||
**nrayth**
|
||
: Number of rays in the angular direction
|
||
|
||
**rwmax** (default: **1.0**)
|
||
: Normalized maximum radius of the beam power
|
||
|
||
**igrad** (default: **0**)
|
||
: Switch between simple raytracing (*0*) and beamtracing (*1*)
|
||
|
||
**ipass** (default: **1**)
|
||
: Max number of crossing (out, in, out) of the plasma. When positive
|
||
reflections occur on the plasma limiter provided by the G-EQDSK
|
||
file; when negative on a simple limiter at R=*rwall*, see below.
|
||
|
||
**ipol** (default: **.false.**)
|
||
: Whether to compute the wave polarisation from chi, psi (see below)
|
||
|
||
**dst**
|
||
: Step size (cm) for the numerical integration
|
||
|
||
**nstep** (default: **12000**)
|
||
: Max number of integration steps
|
||
|
||
**idst** (default: **STEP_TIME**)
|
||
: Choice of the integration variable. One of:
|
||
|
||
- *STEP_ARCLEN*, arc length (s)
|
||
- *STEP_TIME*, time (actually c⋅t)
|
||
- *STEP_PHASE*, phase (actually the real part of the eikonal S_r=k₀⋅φ)
|
||
|
||
## ecrh_cd
|
||
ECRH and current drive parameters
|
||
|
||
**iwarm** (default: **ABSORP_FULL**)
|
||
: Choice of the power absorption model. One of:
|
||
|
||
- *ABSORP_OFF*, no absorption at all
|
||
- *ABSORP_WEAK*, weakly relativistic
|
||
- *ABSORP_FULL*, fully relativistic (faster variant)
|
||
- *ABSORP_FULL_ALT*, fully relativistic (slower variant)
|
||
|
||
Note: *iwarm /= ABSORP_OFF* is required for current drive.
|
||
|
||
**ilarm** (default: **5**)
|
||
: Order of the electron Larmor radius expansion (used by some
|
||
absorption models)
|
||
|
||
**imx** (default: **-20**)
|
||
: Max number of iterations for the solution of the dispersion relation
|
||
(used by some absorption models)
|
||
|
||
Note: if negative the result of the first iteration will be used in case
|
||
the result doesn\'t converge within \|imx\| iterations.
|
||
|
||
**ieccd** (default: **CD_NEOCLASSIC**)
|
||
: Current drive model. One of:
|
||
|
||
- *CD_OFF*, no current drive at all
|
||
- *CD_COHEN*, Cohen
|
||
- *CD_NO_TRAP*, no trapping
|
||
- *CD_NEOCLASSIC*, Neoclassical
|
||
|
||
## antenna
|
||
Antenna/beam launcher parameters
|
||
|
||
**alpha**
|
||
: Poloidal launch angle (deg). Positive is down
|
||
|
||
**beta**
|
||
: Toroidal launch angle (deg). Positive is right
|
||
|
||
**power** (default: **1.0**)
|
||
: Injected power (MW)
|
||
|
||
**iox**
|
||
: Polarisation mode. One of:
|
||
|
||
- *MODE_O*, ordinary (O)
|
||
- *MODE_X*, extraordinary (X)
|
||
|
||
**psi** (default: **0.0**)
|
||
: ψ (deg), angle between the x and the major axis of the
|
||
polarisation ellipse. ψ∈[-90, 90] and is positive for
|
||
rotating counterclockwise.
|
||
|
||
Note: only used in alternative to *iox* if *ipol=.true.*.
|
||
|
||
**chi** (default: **0.0**)
|
||
: χ (deg), angle between the principal axes of the polarisation
|
||
ellipse. χ∈[-45, 45] and is defined by tan(χ) = b/a, where
|
||
a,b are the major,minor semi-axis, respective.
|
||
|
||
χ>0 means the ellipse is traced clockwise in the x∧y plane
|
||
with the z axis in the direction of the wave propagation.
|
||
In other words: negative helicity (projection of spin angular
|
||
momentum unto wavevector) or left handed wave (IEEE convention).
|
||
|
||
Note: only used in alternative to *iox* if *ipol=.true.*.
|
||
|
||
**ibeam** (default: **BEAM_0D**)
|
||
: Beam parameters file format. One of:
|
||
|
||
- *BEAM_0D*, fixed beam parameters
|
||
- *BEAM_1D*, 1D steering angle table
|
||
- *BEAM_2D*, 2D steering angles table
|
||
|
||
**filenm**
|
||
: Filepath of the beam data (relative to the gray.ini file)
|
||
|
||
## equilibrium
|
||
MHD equilibrium parameters
|
||
|
||
**iequil** (default: **EQ_EQDSK_FULL**)
|
||
: MHD equilibrium kind. One of:
|
||
|
||
- *EQ_VACUUM*, vacuum (i.e. no plasma at all)
|
||
- *EQ_ANALYTICAL*, analytical model
|
||
- *EQ_EQDSK_FULL*, G-EQDSK format - data valid on the whole domain
|
||
- *EQ_EQDSK_PARTIAL*, G-EQDSK format - data valid only inside the LCFS
|
||
|
||
**filenm**
|
||
: Filepath of the equilibrium data (relative to the gray.ini file)
|
||
|
||
**icocos** (default: **3**)
|
||
: COCOS index of the equilibrium data (G-EQDSK only)
|
||
|
||
**ipsinorm** (default: **.false.**)
|
||
: Whether the poloidal function is normalised (G-EQDSK only)
|
||
|
||
Note: Normalised means ψ(axis)=0, ψ(boundary)=1
|
||
|
||
**idesc** (default: **.true.**)
|
||
: Whether the header starts with a description, a.k.a
|
||
identification string (G-EQDSK only)
|
||
|
||
**ifreefmt** (default: **.false.**)
|
||
: Whether the records have variable length (G-EQDSK only)
|
||
|
||
Note: some non-compliant programs output numbers formatted with variable
|
||
length instead of using the single (5e16.9) specifier.
|
||
|
||
**ixp** (default: **X_IS_MISSING**)
|
||
: Position of the X point. One of:
|
||
|
||
- *X_IS_MISSING*, No X point
|
||
- *X_AT_TOP*, At the top of the plasma
|
||
- *X_AT_BOTTOM*, At the bottom of the plasma
|
||
|
||
**ssplps** (default: **0.005**)
|
||
: Tension for the ψ_n(R,Z) spline, normalised poloidal flux
|
||
|
||
Note: 0 means perfect interpolation
|
||
|
||
**ssplf** (default: **0.01**)
|
||
: Tension for the F(ψ)=R⋅B_T spline, poloidal current function
|
||
|
||
Note: 0 means perfect interpolation
|
||
|
||
**sgnb** (default: **0**)
|
||
: Force the sign of the toroidal field. One of:
|
||
|
||
- *+1*, counter-clockwise (viewed from above)
|
||
- *-1*, clockwise
|
||
- *0*, use sign from COCOS
|
||
|
||
**sgni** (default: **0**)
|
||
: Force the sign of the plasma current. One of: *+1*,
|
||
|
||
- *+1*, counter-clockwise (viewed from above)
|
||
- *-1*, clockwise
|
||
- *0*, use sign from COCOS
|
||
|
||
**factb** (default: **1.0**)
|
||
: Rescaling factor for the magnetic field
|
||
|
||
## profiles
|
||
(input) plasma profiles parameters
|
||
|
||
**iprof**
|
||
: Plasma profiles kind. One of:
|
||
|
||
- *PROF_ANALYTIC*, analytical model
|
||
- *PROF_NUMERIC*, numerical data (ρ, n_e, T_e, table)
|
||
|
||
**irho**
|
||
: Plasma profiles radial coordinate. One of:
|
||
|
||
- *RHO_TOR*, ρ_t = √Φ (where Φ is the normalised toroidal flux)
|
||
- *RHO_POL*, ρ_p = √ψ (where ψ is the normalised poloidal flux)
|
||
- *RHO_PSI*, normalised poloidal flux ψ
|
||
|
||
**filenm**
|
||
: Filepath of the plasma profiles data (relative to the gray.ini file)
|
||
|
||
**sspld** (default: **0.1**)
|
||
: Tension of the electron density spline
|
||
|
||
Note: 0 means perfect interpolation
|
||
|
||
**factte** (default: **1.0**)
|
||
: Rescaling factor for the electron temperature factte = 1
|
||
|
||
**factne** (default: **1.0**)
|
||
: Rescaling factor for the density temperature
|
||
|
||
**iscal** (default: **SCALE_OFF**)
|
||
: Choice of model for rescaling the temperature, density with the
|
||
magnetic field (if factb ≠ 0 only). One of:
|
||
|
||
- *SCALE_OFF*, don't rescale at all
|
||
- *SCALE_COLLISION*, scale while preserving collisionality
|
||
- *SCALE_GREENWALD*, scale while preserving the Greenwald fraction
|
||
|
||
## output
|
||
|
||
Output data parameters
|
||
|
||
**ipec** (default: **RHO_TOR**)
|
||
: ECRH&CD profiles grid: Radial coordinate of the uniform grid.
|
||
One of:
|
||
|
||
- *RHO_TOR*, ρ_t = √Φ (where Φ is the normalised toroidal flux)
|
||
- *RHO_POL*, ρ_p = √ψ (where ψ is the normalised poloidal flux)
|
||
|
||
**nrho** (default: **501**)
|
||
: Number of in the radial grid
|
||
|
||
**istpr** (default: **5**)
|
||
: Subsampling factors for the beam cross section (units 8, 12)
|
||
|
||
**istpl** (default: **5**)
|
||
: Subsampling factors for the outer rays data (unit 33)
|
||
|
||
## misc
|
||
|
||
Other parameters
|
||
|
||
**rwall**
|
||
|
||
: Radius of the inner wall (m). Used to build a simple limiter for
|
||
reflections (only when *ipass\<0*)
|
||
|
||
# EXAMPLE
|
||
|
||
Below is an example of a gray.ini file
|
||
|
||
[raytracing]
|
||
; beamtracing with 16×24 rays
|
||
nrayr = 16
|
||
nrayth = 24
|
||
igrad = 1
|
||
; integrate in the phase
|
||
dst = 0.05
|
||
nstep = 2400
|
||
idst = STEP_PHASE
|
||
|
||
[antenna]
|
||
; vertical launch
|
||
alpha = 89.45
|
||
beta = 0.0
|
||
iox = MODE_X
|
||
ibeam = BEAM_1D
|
||
filenm = "beamdata.txt"
|
||
|
||
[equilibrium]
|
||
filenm = "equilibrium.eqdsk"
|
||
icocos = 2
|
||
|
||
[profiles]
|
||
; analytical profiles
|
||
iprof = PROF_ANALYTIC
|
||
irho = RHO_TOR
|
||
filenm = "profiles.txt"
|
||
sspld = 0.01
|
||
|
||
[output]
|
||
ipec = RHO_POL
|
||
nrho = 1001
|
||
|
||
[misc]
|
||
rwall = 0.6
|
||
|
||
# SEE ALSO
|
||
|
||
**gray**(1), **beamdata.txt**(5), **profiles.txt**(5), **magneticdata.txt**(5)
|