![]() |
LION
|
Gives additional info about input variables
In 'standalone mode', the equilibrium computation and mapping is done in the ideal MHD code CHEASE. Please consult the CHEASE user manual for information about input variables specifying the geometry, profiles and mesh.
Note that the $EQDATA input namelist of chease must contain 'nideal=2,' so that the data transfer from chease to lion is done correctly.
The data transfered from chease contains the following information on the I/O channels named below:
NSAVE namelist $NCHEAS containing, among other things:
'npsi': number of radial intervals
'nchi': number of poloidal intervals all around (please note
that in LION this becomes variable 'npol', and that
'nchi' is defined in lion as the number of poloidal
intervals in the upper half-plane)
'cpsrf': psi at plasma surface
'qiaxe': 1 / q at magnetic axis
and other variables.
MEQ equilibrium quantities (i,jchi),js=1,npsi+1 -> eq(i,jchi,js)
NVAC surface quantities for vacuum calculation
NDES (r,z) quantities needed for plotsThe files NSAVE, MEQ, NVAC and NDES should be saved after running CHEASE under the names TAPE8, TAPE4, TAPE17 and TAPE16, respectively, so that they can be used by LION
When LION is integrated into the ITM or IMAS, the equilibrium quantities are read from the respective data bases.
In 'standalone' mode, input variables are specified in the std input file, namelist $NEWRUN. Plasma physics related variables are:
! 'nlcold' : switch off ion cyclotron damping
! .t. ==> cold plasma dielectric tensor
! .f. ==> warm ions diel. tens. (order 0 in larmor)
!
! 'nlcole' : switch off electron Landau & TTMP damping of fast wave:
! .t. ==> no additionnal term in epsilon_perpperp
! .f. ==> additionnal damping term in epsilon_perpperp.
! Note that the alfven wave electron Landau damping rate
! is evaluated as a diagnostic of the obtained solution
! irrespectively of the value of nlcole.
!
! 'neldttmp': type of model for electron Landau & TTMP damping
! 1 ==> additional damping term in epsilon_{perp,perp},
! with k_perp from fast wave dispersion relation;
! see wepsel in subroutine quaequ.
! 2 ==> additional damping term propto b_parallel,
! consistent in the weak variational form;
! see wepsttmp in subroutine quaequ, const1,2,3, etc.
! Factor 1/2 for combined eld and TTMP of fast waves.
!
! 'neldttmpcor': correction (perturbative) to electron Landau & TTMP damping diagnostics
! 0 (default): do not correct
! 1 : do the correction; option valid only for neldttmp=1;
! Warning: the powers will not be consistent
!
! 'anu' : collisional damping (nu/omega) (cold model only)
!
! 'delta' : phenomenological damping (both models)
!
! 'nrspec' : number of ion species.
!
! 'acharg()': atomic charges of ion species [atomic units]
!
! 'amass()' : atomic masses of ion species [atomic units]
!
! 'cenden()': number densities of ion species [m**-3] on magnetic
! axis (m.a.).
!
! 'centi()' : parallel ion temperatures [ev] on m.a. (warm model only)
!
! 'centip() : perpendicular " [ "] " (warm model only)
!
! 'cente' : electron temperature [ "] " (both models)
!
! 'nharm' : maximum absolute value of the harmonic number used in
! constructing the warm plasma dielectric tensor, i.e. the
! tensor includes components for harmonic numbers
! from -nharm to +nharm (warm model only)
!
! 'ndens', 'ndarg', 'nddeg', 'ad(.)', 'eqdens', 'eqkapd'
! specify the total mass density profile [normalized to total mass
! density on magnetic axis] :
!
! ndens = -2 ===> proportional to sqrt(equilibrium_pressure)
!
! rho = sqrt (p/p_axis)
!
! ndens = -1 ===> polynomial function of
!
! s**2 if ndarg = 1
! s if ndarg = 2
!
! rho = 1. + sum(j=1,nddeg) {ad(j)*arg**j}
!
! ndens = 0 ===>
!
! rho = (1. - eqdens * s*s) **eqkapd
!
! ndens = 1 ===>
!
! rho = 1. for s < eqdens
! rho = eqkapd + (1.-eqkapd) * cos (pi/2*(s-eqdens)) **2
!
! ndens = 2 ===>
!
! rho = 1. for s < eqdens
! rho = a cubic function of s such that:
! rho (s=eqdens) = 1.
! drho/ds (s=eqdens) = 0.
! rho (s=1) = eqkapd
! drho/ds (s=1) = eqalfd
!
! ndens = 3 ==>
!
! rho = t^2/q^2 * q0^2/t0^2 (so that omegaxtae is flat)
!
! (function densit, p1c2s34)
!
!
! 'eqti()', eqkapt()', 'eqte', 'eqkpte', 'ntemp':
! specify the ion parallel and perpendicular
! temperature profiles [ev] :
!
! ntemp = -2 ==> proportional to sqrt(equilibrium_pressure)
! ti(parallel) = centi(i) * sqrt (p/p_axis)
! ti(perp) = centip(i) * sqrt (p/p_axis)
!
! ntemp = -1 ==> polynomial function of
!
! s**2 if ndarg = 1
! s if ndarg = 2
!
! te/ti()/tip() = cente/centi()/centip() *
! (1. + sum(j=1,nddeg) {ate/ati/atip(j)*arg**j})
!
! ntemp = 0 (default) ==>
!
! ti(parallel) = centi(i) * (1.-eqti(i)*s*s) **eqkapt(i)
! (subroutine tempi)
!
! ntemp = -2 ==> proportional to sqrt(equilibrium_pressure)
! ti(perp) = centip(i) * sqrt (p/p_axis)
!
! ntemp = -1 ==> polynomial (see above)
!
! ntemp = 0 (default) ==>
!
! ti(perp) = centip(i) * (1.-eqti(i)*s*s) **eqkapt(i)
! (subroutine temprp)
!
!
! 'eqte', 'eqkpte', 'ntemp':
! specify the electron temperature profile [ev] :
!
! ntemp = -2 ==> proportional to sqrt(equilibrium_pressure)
! te = cente * sqrt (p/p_axis)
!
! ntemp = -1 ==> polynomial (see above)
!
! ntemp = 0 (default) ==>
!
! te = cente * (1. - eqte * s*s) ** eqkpte
! (function tempel)
!
! Note that the consistency of beta_axis with the equilibrium value
! is not checked with ntemp = -2 and ndens = -2.
!
! 'bnot': magnetic field on m.a. [tesla]. (not the vacuum field)
!
! 'rmajor': major radius (distance axis of the torus, m.a.) [m]
!
!--------------------------------------------------------------------------
The variables below are pertinent to the Alfven mode destabilization by fast ions, in a perturbative approach.
! 'nlfast': .t. ==> fast particles are introduced (!diagnostic!): ! ! ==> 'nrspec' is forced to 1 (1 bulk ion species) ; ! ! ==> 'acharg(2)' is the atomic charge of fast particles ; ! ! ==> 'amass(2)' is the atomic mass of fast particles ; ! ! ==> 'cenden(2)' is the density of fast particles on ! magnetic axis [m**-3] (cenden(2) << cenden(1)); ! ! ==> the density profile of fast particles is specified by ! 'cenden(2)', 'eqfast', 'eqkapf(jf)'jf=1,nfakap : ! ! n_fast = cenden(2) * (1.-eqfast*s*s) **eqkapf(jf) [m**-3] ! ! ==> 'vbirth' is the birth velocity of fast particles [m/s] ! ! the code computes the power absorptions from drift kinetic ! model, and the central density of fast particles for ! marginal stability, for nfakap different fast particle ! density profiles characterized by eqkapf(jf), jf=1..nfakap. ! ! it can also, for each fast particle density profile, ! compute the marginal stability for various bulk densities ! and temperatures or magnetic field values which are taken ! so as to make a constant bulk beta scan. ! ! 'nfakap': number of fast particle desity profiles ! ! 'nbcase': number of cases for the constant beta scan ! ! 'eqkapf()': parameter for fast particle density profile ! ! 'eqfast': parameter for fast particle density profiles ! ! 'cen0()': central ion densities for constant beta scan ! ! 'nbtype': type of constant beta scan: ! ! 1 ==> n_i(o) is varied (cen0()), ! t_i(o) and t_e(o) as 1/n_i(o), ! bo is kept constant. ==> v_a(o) is varied ! ! 2 ==> n_i(o) is varied (cen0()), ! bo as sqrt(n_i(o)), ==> v_a(o) constant ! t_i(o) and t_e(o) are kept constant ! ! 'nlttmp': .f. ==> switch off TTMP by putting b_parallel to 0 in dke ! power expressions.
! The variable 'nantyp' selects the type of antenna.
!
! nantyp =-1 ====> "helical volume antenna". volume antenna currents in
! the plasma between s=samin and s=samax, directed
! along psi=const surfaces, defined by:
!
! j_a = grad psi x grad sigma,
!
! with sigma(s,chi,phi) = h(s-samin) * h(samax-s) *
! ( sum[j=1..mancmp] { cursym(j)*cos(mpolwn(j)*chi)
! + curasy(j)*sin(mpolwn(j)*chi) } )
! * exp{i*wntoro*phi}.
!
! Note that in this case there is no antenna in the
! vacuum region: the vacuum contribution to the right-
! hand side is put to zero by setting sautr(j) to zero.
!
! nantyp = 1 ====> "helical antenna". current sheet at a constant
! distance of the plasma surface. the currents
! are harmonic functions of the poloidal angle
! theta, with poloidal wavenumbers given by
! 'mpolwn(j)':
!
! sautr(theta) = sum(j=1 to mancmp) of
! cursym(j)*cos(mpolwn(j)*theta) +
! i*curasy(j)*sin(mpolwn(j)*theta).
!
! There are no feeders.
!
! nantyp = 2 ====> lfs or hfs antenna. specified by the input
! parameters thant(j), j=1,4 and cursym(1).
!
! thant(j) are angles given in degrees, with values
! between 0 and 360. thant(j) are measured from the
! magnetic axis horizontal.
! The lfs or hfs antenna is a current sheet which,
! between theta = thant(2) and thant(3), is at a
! constant distance of the plasma surface and
! carries constant pure poloidal currents :
!
! sautr(theta) = cursym(1),
!
! Between theta = thant(1) and theta = thant(2)
! and theta = thant(3) and theta = thant(4) are
! the feeders, where the distance from the
! plasma surface increases smoothly up to the
! wall surface.
!
! The lfs antenna extends across the theta=0
! line. Therefore thant(3) < thant(4) < thant(1)
! < thant(2).
! The hfs antenna cannot cross the theta=0
! line. Therefore thant(1) < thant(2) < thant(3)
! < thant(4).
!
! The selection of either lfs or hfs antenna
! automatic :
!
! thant(3).lt.thant(2) selects lfs antenna
! thant(2).gt.thant(3) selects hfs antenna
!
! Note that we must have thant(1) < thant(2)
! and thant(3) < thant(4).
!
! nantyp = 3 ====> top/bottom antenna. The antenna surface is up/
! down symmetric, at constant distance of the
! plasma surface between theta = antup and
! theta = pi - antup. The currents are defined
! as for nantyp = 1.
!
! nantyp = 4 ====> saddle coil antenna. The antenna surface is the
! same as for the helical antenna: current sheet
! at a distance antrad-1 of the plasma surface.
! The current = cursym(1) in [thant(1),thant(2)]
! and in [thant(3),thant(4)], smoothly decaying
! to zero near thant(j).
!
! 'nant_itm' 0 (default), 1 it uses antennas_in and antennas_tools to define the antenna geometry
!
! 'nsaddl' selects the type of saddle coil phasing in
! the poloidal plane.
! This is discarded unless nantyp = 4.
!
! nsaddl = 0 ==> only 1 saddle coil antenna is connected:
! between thant(1) and thant(2).
! nsaddl = 1 ==> 2 saddle coils are connected. The connection
! is done in opposite directions for the 2
! coils, thus defining a predominantly 'm=1'
! antenna current component: (+-) phasing.
! nsaddl = 2 ==> 2 saddle coils are connected. The connection
! is done in the same direction for the 2
! coils, thus defining a predominantly 'm=2'
! antenna current component: (++) phasing.
! This is the default value.
!
!
! 'nldip' selects monopole or dipole antenna. The dipole option
! has not been programmed yet. default: f ==> monopole.
!
! 'antrad' distance antenna-magnetic axis in units of the minor
! radius in the z=0 plane.
!
! 'nantsheet' number of antenna current sheets. For nantsheet>1,
! the "power at antenna" might be wrong ...
! and hopefully the "power at plasma surface" is right.
! The current sheets are placed equidistantly between
! antrad and antradmax. The current distribution as fct
! of theta is identical for all sheets.
!
! 'antradmax' max distance antenna-magnetic axis
!
! 'walrad' distance wall-magnetic axis in units of the minor
! radius in the z=0 plane.
!
! 'freqcy' is the generator frequency in hz.
!
! 'deltaf' is the frequency increment for frequency traces.
!
! 'nrun' is the number of runs for frequency traces.
!
! 'wntoro' is the toroidal wave number.
!
! 'wntdel' is the toroidal wavenumber increment for toroidal wn scans
!
! 'ntorsp' is the number of toroidal wn's for toroidal wn scansNote that many features of output and plot are probably broken in the actual LION. We give nevertheless the situation as it was in the legacy LION code.
! 'nldiso' : switch computation and diagnostics of the solution.
!
! .true. ==> the solution is computed everywhere.
! diagnostics are performed, printed and/or
! plotted according to nlotp5() and nlplo5()
! (see below).
! with this option (which is the default)
! running the lion code requires scratch
! disk space for matrix storage:
! 96 * npsi * npol**2 (bytes)
!
! .false.==> the solution is computed only at the plasma-
! vacuum interface.
! the only diagnostic is the total power,
! which is permanent output. it is correct
! as long as there is no source inside the
! plasma.
! no other diagnostics are perfomed, irres-
! pectively of nlotp5() and nlplo5().
! with this option the lion code does not
! use disk space for matrix storage, therefore
! the turnaround time is reduced.
!
! 'nlotp0' : general switch for line-printer output and graphics.
!
! note that the total power is permanent output.
!
! 'nlotp1()' : line-printer output for equilibrium quantities (lion1).
! (1) :
! (2) :
! (3) :
! (4) :
! (5) :
!
! 'nlotp2()' : line-printer output for vacuum quantities (lion2).
! (1) : geometrical quantities at plasma surface.
! (2) : positions of plasma surface, antenna and wall.
! (3) : antenna current potential vs chi and theta.
! (4) : non-hermicity of vacuum matrix.
! (5) :
!
! 'nlotp3()' : line-printer output for matrix construction (lion3).
! (1) :
! (2) :
!
! 'nlotp4()' : line-printer output for matrix solver (lion4).
! (1) : namelist
! (2) : ohm-vector
! (3) : solution at plasma boundary
! (4) :
! (5) :
!
! 'nlotp5()' : line-printer output for solution diagnostics (lion5).
! (1) : namelist
! (2) : radial power absorptions and other diagnostics
! (3) : extended output of radial diagnostics
! (4) : 2-d power absorption density
! (5) : 2-d power absorbed in each cell
! (6) : 2-d normal component of poynting
! (7) : 2-d perp component of poynting
! (8) : 2-d parallel component of poynting
! (9) :
! (10) : 2-d real part of e-normal
! (11) : 2-d real part of e-perp
! (12) : 2-d imaginary part of e-normal
! (13) : 2-d imaginary part of e-perp
! (14) : 2-d polarazation norm of e-plus squared
! (15) : 2-d polarization norm of e-minus squared
! (16) : electric field on outer equatorial plane (chi=0)
! (17) :
! (18) : poloidal fourier components of e-normal in theta
! for m = 'mfl', mfl+1, .., mfu(=mfl+md2fp1-1)
! (19) : poloidal fourier components of e-perp in theta
! (20) : poloidal fourier components of e-normal in chi
! (21) : poloidal fourier components of e-perp in chi
! (22) : 2-d epsilon sub-n-n - n**2 / r**2
! (23) : 2-d imaginary part of epsilon sub n-n
! (24) : 2-d omega - omegaci
! (25) : shear alfven frequencies (neglecting toroidal
! coupling; for single species plasma only),
! for m = 'mfl', mfl+1, .., mfu(=mfl+md2fp1-1)
! (26) : density, minor and major radius, in normalised and
! s.i. units, on the outer equatorial plane (chi=0).
!
!
! (31) : poloidal fourier components of b_n in theta
! for m = 'mfl', mfl+1, .., mfu(=mfl+md2fp1-1)
! (32) : poloidal fourier components of b_b in theta
! (33) : poloidal fourier components of b_par in theta
! (34) : poloidal fourier components of b_n in chi
! (35) : poloidal fourier components of b_b in chi
! (36) : poloidal fourier components of b_par in chi
!
! the 2-d tables give the values on the centers of the cells
! of the (s,chi) mesh. a line in the table corresponds to a psi =
! const surface. it goes from chi=0 to chi=pi in the upper half-plane
! and from chi=pi to chi=2*pi in the lower half-plane. the values
! are normalized to their maximum value. the first and the last lines
! of the tables give the poloidal numbering of the cells. the first
! column gives the radial numbering of the cells. all output is in
! code-normalized units unless specified.
!
! 'nlplo5()' : graphical output for lion5
! (1) : general switch for graphical plots
! (2) : radial power absorption and flux
! (3) : fast ion beta_critical and p_dk(s). writes tables
! on tape26 and tape27
! => matlab (plotfast.m and plotpdks(.,.).m)
! (4) : 2-d graphical plots :
!
! - if npltyp = 1 (default): prepares plot files for use
! with the graphical package baspl:
! writes a file coords (tape18) of (r,z)
! coordinates of mesh cells centers and a file fields
! (tape19)
! of (r,z) components of e, power absorption density,
! normal and binormal components of e, normal, binormal
! and parallel componemts of b. the
! plots are then done with the graphical package baspl.
! it allows to make color plots, arrow plots, contour
! plots, ... interactively.
!
! - if npltyp = 2 : plot file for use with the graphical
! package explorer:
! writes a file corfields (tape19) containing coordinates
! and fields.
!
! (5) : poloidal fourier components (cabs) of e_n, e_b, b_n,
! b_b and b_//. writes a table on tape25 =>
! => matlab (plotfour.m).
!
! not active:(6) : 2-d arrows of poynting vector (normal,perp)
! not active:(7) : 2-d arrows of real (e-normal,e-perp) at various
! toroidal angles ('anglet(j)' j=1 to 'ncut')
! not active:(8) : 2-d contours of norm of e-plus
! not active:(9) : 2-d contours of real(e-normal) at anglet(j)
! not active:(10) : 2-d contours of real(e-perp) at anglet(j)
! not active:(11) : 2-d contours of poynting vector (parallel)
! not active:(12) : 2-d line epsilon sub (n,n) - n**2/r**2 = 0
! not active:(13) : 2-d contours of imaginary part of epsilon (n,n)
! not active:(14) : 2-d line(s) omega=omegaci
!
! (15) to (25) : free
!
! the dimension of the 2-d plots is specified by 'alarg' and
! 'aheigt'. the number of contour lines is given by 'ncontr'. the
! arrows have a size normalized to their maximum value. this size
! is controlled by the variable 'arsize'.
!
! the fourier analysis in poloidal angle (chi and/or theta) is
! made for values of m = mfl, mfl+1, mfl+2, .. , mfu=mfl+md2fp1-1.
! the value of 'mfl' can be given in the input namelist $newrun.
!
! the same holds for the "cylindrical" alfven frequencies.! The mesh is specified in the equilibrium code chease. ! please consult the chease user manual for the specification of the ! mesh size (npsi, nchi) and mesh packing. note that the number of ! poloidal mesh points is 'nchi' in the chease code, and 'npol' in ! the lion code.
! There is the possibility to extract the rapid poloidal phase ! variation which is usual for tae modes (and kinks) by setting ! ! 'nlphas' to true ! ! The poloidal phase transformation (change of variables) is defined ! as: ! ! E(s,chi) = E~(s,chi) * exp (-i*n*q*chi_sfl), if chi<chi_cut; ! E~(s,chi) * exp (-i*n*q*(chi_sfl-2pi)) if chi>chi_cut. ! ! In the above, chi_sfl is the chi angle defined with the "Princeton ! Jacobian" (straight field line). It needs not to coincide with chi. ! the angle of cut, chi_cut, is near chi=pi, more precisely at the ! index j_chi = npol/2 + 1 (=nchi in lion). !