gray/input/gray.ini
Michele Guerini Rocco 92b3ad9bd3
src/gray_core.f90: implement adaptive step control
This implements a method to control the integrator step size based on
the integration error and resonance conditions. The main advantages are that:

  - the ray trajectories have a bounded error;
  - the initial step size can be large as to quickly traverse the vacuum;
  - the results no longer depend on the choice of the step size.

The error is estimated from the real part of the dispersion relation
Λ(x̅, N̅), which if solved exactly should be zero.
The error bound is set to a strict value when crossing the plasma
boundary to ensure a correct coupling and is relaxed afterwards.

Finally, when the ray is approaching a resonance the controller ensures
the step size is small compared to the absorption profile.
2024-02-26 14:44:19 +01:00

198 lines
4.8 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[raytracing]
; Number of rays in the radial/angular direction
nrayr = 1
nrayth = 16
; Normalized maximum radius of the beam power
rwmax = 1
; Switch between simple raytracing (0) and beamtracing (1)
igrad = 0
; Max number of passes inside the plasma [multipass module]
; 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.
ipass = 1
; Whether to compute the wave polarisation
ipol = 0
; Step size (cm) for the numerical integration
dst = 0.1
; Max number of integration steps
nstep = 12000
; Choice of the integration variable
; 0: path length (s)
; 1: "time" (actually c⋅t)
; 2: real part of the eikonal (S_r)
idst = 0
; Choice of the integration method
; 0: Explicit Euler (1⁰ order)
; 1: Semi-implicit Euler (1⁰ order, symplectic)
; 2: Velocity Verlet (2⁰ order, symplectic)
; 3: 2-stage Runge-Kutta (2⁰ order)
; 4: 4-stage Runge-Kutta (4⁰ order)
integrator = 4
; Whether to automatically adjust the integration step
; size based on the local error. If true `dst` will set
; the initial step size.
adaptive_step = false
[ecrh_cd]
; Choice of the power absorption model
; 0: no absorption at all
; 1: weakly relativistic
; 2: fully relativistic (faster variant)
; 3: fully relativistic (slower variant)
; 4: tenuous plasma (very fast)
; Note: iwarm>0 is required for current driver
iwarm = 2
; Order of the electron Larmor radius expansion
; (used by some absorption models)
ilarm = 5
; 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.
imx = -20
; Current drive model
; 0: no current drive at all
; 1: Cohen
; 2: no trapping
; 3: Neoclassical
ieccd = 3
[antenna]
; Wave launch angles (deg)
alpha = 45 ; Poloidal angle (positive → up)
beta = 0 ; Toroidal angle (positive → right)
; Injected power (MW)
power = 1
; Polarisation mode
; 1: ordinary (O)
; 2: extraordinary (X)
iox = 1
; Alternatively, parameters of the polarisation ellipse
; χ: angle between the principal axes and the (x,y) axes
; ψ: atan(ε), where ε is the ellipticity
chi = 0
psi = 0
; Beam description kind
; 0: simple beam shape
; 1: 1D table
; 2: 2D table
ibeam = 0
; Filepath of the beam data (relative to this file)
filenm = "beamdata.txt"
[equilibrium]
; MHD equilibrium kind
; 0: vacuum (i.e. no plasma at all)
; 1: analytical
; 2: G-EQDSK format - data valid on the whole domain
; 3: G-EQDSK format - data valid only inside the LCFS
iequil = 3
; Filepath of the equilibrium data (relative to this file)
filenm = "magneticdata.eqdsk"
; COCOS index
icocos = 0
; Normalisation of the poloidal function
; 0: G-EQDSK, ψ → |ψ - ψ(edge)|/|ψ(axis) - ψ(edge)|
; 1: no normalisation
ipsinorm = 0
; G-EQDSK format parameters
; Whether header starts with a description, a.k.a identification string
idesc = 1
; Whether the records have variable length
; Note: some non-compliant programs output numbers formatted with variable length
; instead of using the single (5e16.9) specifier.
ifreefmt = 0
; Position of the X point
; -1: bottom
; 0: no X point
; +1: top
ixp = 0
; Tension of splines
; Note: 0 means perfect interpolation
ssplps = 0.005 ; for ψ(R,Z), normalised poloidal flux
ssplf = 0.01 ; for I(ψ)=R⋅B_T, poloidal current function
; Sign of toroidal field/current (used when COCOS index is 0,10)
; When viewing from above: +1 → counter-clockwise, -1 → clockwise
sgnb = -1
sgni = +1
; Rescaling factor for the magnetic field
factb = 1
[profiles]
; (input) plasma profiles parameters
; Profiles kind
; 0: analytical
; 1: numerical
iprof = 1
; Profile radial coordinate
; 0: ρ_t = √Φ (where Φ is the normalised toroidal flux)
; 1: ρ_p = √ψ (where ψ is the normalised poloidal flux)
; 2: normalised poloidal flux ψ
irho = 0
; Filepath of the equilibrium (relative to this file)
filenm = "profiles.txt"
; Tension of the density spline
; Note: 0 means perfect interpolation
sspld = 0.1
; Rescaling factor for electron temperature/density
factte = 1
factne = 1
; Choice of model for rescaling the temperature/density with the
; magnetic field
; 1: costant Greenwald density (ab=1)
; 2: no rescaling (ab=0)
iscal = 2
[output]
; Output data parameters
; ECRH&CD profiles grid:
; Radial coordinate
; 1: ρ_p = √ψ (where ψ is the normalised poloidal flux)
; 2: ρ_t = √Φ (where Φ is the normalised toroidal flux)
ipec = 1
; Number of points
nrho = 501
; Subsampling factors:
istpr = 5 ; beam cross section (units 8, 12)
istpl = 5 ; outer rays data (unit 33)
[misc]
; Other parameters
; Radius of the inner wall (m) [multipass module]
; (when ipass<0, used to build a simple limiter for reflections)
rwall = 1.36