0001 function [info,expert,values] = structinfo_yp(struct,field)
0002
0003
0004
0005
0006
0007 info = '';
0008 expert = 1;
0009 values = [];
0010
0011 switch struct
0012 case 'dkeparam',
0013
0014 switch field
0015
0016 case 'id',expert = 0;values = '';info = 'Provide an id for this structure';
0017 case 'grid_uniformity',expert = 1;values = -1:1;info = 'Pitch-angle and momentum grids uniformity: (0) no, (1) yes (-1 for specific test for DKE, transient and pitch-angle grid only)';
0018 case 'grid_method',expert = 1;values = [0,1];info = 'Pitch-angle grid calculation technique: (0): old method, (1) new method';
0019 case 'nmhu_S',expert = 0;values = 11:10:401;info = 'Number of angular values for the flux grid (WARNING: odd number) (>100 recommended for accurate run)';
0020 case 'np_S',expert = 0;values = 11:10:401;info = 'Number of momentum values for the flux grid (pnmax/np < 0.1 highly recommended for accurate run) WARNING: must be adjusted so that effective momentum point number is larger than thepitch-angle one.';
0021 case 'pnmax_S',expert = 0;values = [-Inf;Inf];info = 'Maximum value of the flux momentum grid (pth_ref)';
0022 case 'rho_S',expert = 0;values = [0;Inf];info = 'Grid points or number of points for radial grid calculation (r/a on horizontal outboard midplane)';
0023 case 'psin_S',expert = 0;values = [0;Inf];info = 'Grid points or number of points for radial grid calculation (normalized poloidal flux)';
0024 case 'sfac0',expert = 1;values = 1:10;info = 'Reduction factor for fine grid near mhu = 0';
0025 case 'sfac1',expert = 1;values = 1:10;info = 'Reduction factor for fine grid near abs(mhu) = 1';
0026 case 'sfact',expert = 1;values = 1:10;info = 'Reduction factor for fine grid near abs(mhu) = mhut';
0027 case 'snmhu0',expert = 1;values = 1:5;info = 'Number of fine grid points near mhu = 0';
0028 case 'snmhu1',expert = 1;values = 1:5;info = 'Number of fine grid points near abs(mhu) = 1';
0029 case 'snmhut',expert = 1;values = 1:5;info = 'Number of fine grid points near abs(mhu) = mhut';
0030 case 'grid_power',expert = 1;values = [1;Inf];info = 'Power for mhu grid step varations (grid_power > 1) (Note: for grid_method = 1 only)';
0031 case 'np_S_ref',expert = 1;values = 2:2:100;info = 'Position in the momentum grid where dpn_S is twice the minimum value (must be ajusted with snp parameter)';
0032 case 'snp',expert = 1;values = [1;Inf];info = 'pgridfactor (Uniform grid: pgridfactor = 1, non-uniform grid: pgridfactor > 1) ';
0033 case 'spfac',expert = 1;values = [1;Inf];info = 'Reduction factor for the momentum supergrid used in collision integrals';
0034 case 'dpsin_dke',expert = 1;values = [0;1];info = 'maximum difference between two consecutive positions used for radial derivatives';
0035 case 'ref_mode',expert = 1;values = [0,1];info = 'Reference values: (0) from core Te and ne, (1) from Te and ne at the normalized radius (paramater only active for a single radial value, otherwise ref_mode = 0)';
0036 case 'coll_mode',expert = 0;values = 0:4;info = '%Relativistic collision operator: (0) Relativistic Maxwellian background, (1) High-velocity limit, (2) Linearized Belaiev-Budker (3) Non-relativistic Lorentz model, (4) Non-relativistic Maxwellian background';
0037 case 'rt_mode',expert = 0;values = 0:5;info = 'RT-DKE power consistency';
0038 case 'abs_lim',expert = 0;values = [0;1];info = 'Relative level of RF power absorption that is accpeted for in the quasilinear convergence loop (0: no threshold, 1: full absorption)';
0039 case 'nit_rf',expert = 0;values = [1,5:5:100];info = 'Maximum number of iteration in ray-tracing. Works only if rt_mode = 1 and more than one radial point (default = 1)';
0040 case 'prec_rf',expert = 1;values = [0;1];info = 'Relative precision in RT-DKE iterations';
0041 case 'n_rf_list',expert = 0;values = [0;Inf];info = 'List of harmonics in the Dql calculations';
0042 case 'delta_rt',expert = 1;values = [0;1];info = 'Smoothering parameter of quasilinear iterations';
0043 case 'Dparparmax',expert = 1;values = [0;Inf];info = 'Upper limit of the quasilinear diffusion coefficient. Important for low temperature plasmas et high power level for stability of the code';
0044 case 'npresmin',expert = 1;values = 0:10;info = 'Minimum number of resonant points for each ray and position';
0045 case 'nit_ohm',expert = 0;values = 0:40;info = 'max number of iterations to converge on the current prescription (nit_ohm > 1). If nit_ohm == 1, frozen current mode is off';
0046 case 'tol_ohm',expert = 1;values = [0;1];info = 'tolerance for converge on the current prescription (nit_ohm > 1)';
0047 case 'efield_ohm',expert = 1;values = [-Inf;Inf];info = '[V/m] initial (uniform) efield guess for convergence (nit_ohm > 1). Used if ohm is empty or any(ohm.epsi == 0)';
0048 case 'Itot_ohm',expert = 0;values = [-Inf;Inf];info = '[MA] scalar target for generated current (nit_ohm > 1). In this mode, the electric field is uniform';
0049 case 'Jtot_ohm',expert = 0;values = [-Inf;Inf];info = '[MA/m^2] target current profile (nit_ohm > 1).';
0050 case 'rho_ohm',expert = 0;values = [-Inf;Inf];info = '(LFS midplane x/a) corresponding rho grid';
0051 case 'bounce_mode',expert = 0;values = {true,false};info = 'Bounce averaging option: (0) no bounce averaging, (1) bounce averaging full implicit method with 15 diagonals';
0052 case 'dke_mode',expert = 1;values = {true,false};info = 'Fokker-Planck equation (0), Drift Kinetic equation (1)';
0053 case 'equil_mode',expert = 1;values = [0,1];info = 'Equilibrium option: (0) circular concentric flux-surfaces, (1) numerical equilibrium';
0054 case 'syn_mode',expert = 1;values = {true,false};info = 'Synergy calculation: (0) none, (1) yes: the code runs twice, including once without RF or electric fields. (only if dke_mode = 1)';
0055 case 'norm_mode_f',expert = 0;values = 0:2;info = 'Local normalization of f0 at each iteration: (0) none (1) with respect to ref density (2) with respect to init density (+1i) adjust for boundary losses and gains';
0056 case 'boundary_mode_f',expert = 0;values = 0:5;info = 'Number of points where the Maxwellian distribution is enforced from p = 0 (p=0, free conservative mode but param_inv(1) must be less than 1e-4, otherwise 1e-3 is OK most of the time. Sensitive to the number of points in p)';
0057 case 'prec0_f',expert = 0;values = [0;1];info = 'Convergence level of the residu';
0058 case 'nit_f',expert = 0;values = [1;Inf];info = 'Maximum number of iterations for f (> 1)';
0059 case 'initguess_f',expert = 1;values = 0:2;info = 'Initial guess for the distribution function: (0) Maxwellian, (1) Fuchs model with Tperp for LH current drive only, (2) from a file';
0060 case 'initfile_f',expert = 1;values = '';info = 'If initguess_f = 2. The file must be in the working directory';
0061 case 'boundary_mode_g',expert = 1;values = 0:5;info = 'Number of points where the first distribution function for the Lorentz model is enforced from p = 0 (p=0, free conservative mode but param_inv(1) must be less than 1e-4, otherwise 1e-3 is OK most of the time. Sensitive to the number of points in p)';
0062 case 'prec0_g',expert = 1;values = [0;1];info = 'Convergence level of the residu (if NaN, iterations stop with nit_g)';
0063 case 'nit_g',expert = 1;values = [1;Inf];info = 'Maximum number of iterations for g';
0064 case 'dtn',expert = 0;values = [0;Inf];info = 'Integration time step (1/nhuth_ref) (dtn > 0: fully implicit time differencing scheme , dtn < 0: Crank-Nicholson time differencing scheme) (WARNING: dtn less than 1 when fast electron radial transport is considered)';
0065 case 'opsplit',expert = 1;values = {true,false};info = 'Operator splitting between momentum and radial dynamics (for tests only) (opsplit = 0: no operator splitting , opsplit = 1: operator splitting). If this field does not exist, it is equivalent to dkeparam.opsplit = 0.';
0066 case 'invproc',expert = 0;values = -4:3;info = 'Iterative matrix inversion methods:\n(3) Matlab built-in qmr iterative method (MatLab built-in partial LU factorization used)\n(2) Matlab built-in bicg iterative method (MatLab built-in partial LU factorization used)\n (1) Matlab built-in cgs iterative method (MatLab built-in partial LU factorizsation used)\n(0) Matlab built-in direct inversion without any LU factorization (NOT RECOMMANDED !)\n(-1): MUMPS parallel (or sequential) fortran 95 direct inversion (LU matrix factorization done for each time a matrix inversion is called)\n(-2): MUMPSMEX sequential fortran 95 inversion using MUMPS LU matrix factorization\n(-3): SUPERLUMEX sequential direct matrix inversion (LU matrix factorization done for each time a matrix inversion is called)\n(-30) PETSc interface (see data structure below)';
0067 case 'ludroptol',expert = 1;values = [0;1];info = 'Drop tolerance for the built-in MatLab partial LU decomposition (recipes: droptol = max(1/dtn/nr,param_inv(1)))';
0068 case 'mlmaxitinv',expert = 1;values = 1:20;info = 'Maximum number of iterations for iterative built-in MatLab matrix inversion method (between 1 and 20 usualy, if empty, mlmaxitinv = min(matrixdim,20). See matlab documentation.';
0069 case 'mlprecinv',expert = 1;values = [0;1];info = 'Accuracy for the MatLab build-in matrix inversion.';
0070 case 'MUMPSparam',expert = 1;info = 'MUMPS matrix solver';
0071 case 'PETScparam',expert = 1;info = 'PETSc matrix solver';
0072 case 'store_mode',expert = 1;values = {true,false};info = 'Temporary storing option for sparse matrices calculations (in RAM: 0, in disk file 1) when memory space is tight';
0073 case 'opt_load',expert = 1;values = {true,false};info = 'Load intermediate calculations';
0074 case 'opt_save',expert = 1;values = {true,false};info = 'Save intermediate calculations';
0075 case 'clustermode',expert = 0;info = 'Distributed calculation parameters';
0076 otherwise,
0077
0078 end
0079
0080 case 'MUMPSparam',
0081
0082 switch field
0083
0084 case 'nproc',expert = 0;info = 'Number of processor used by MUMPS solver (depends of the computer framework). Default is 1';
0085 case 'thresholdpivoting',expert = 1;info = 'Relative threshold for numerical pivoting in the MUMPS partial LU decomposition (default MUMPS = 1e-2: NaN or empty or field not existing). Increasing this parameter will reduce sparcity. Less than 1.';
0086 case 'precinv',expert = 1;info = 'Accuracy for the MUMPS matrix inversion.(default MUMPS: NaN or empty or field not existing). Only for the solve phase.';
0087 otherwise,
0088
0089 end
0090
0091 case 'PETScparam',
0092
0093 switch field
0094
0095 case 'nproc',expert = 0;info = 'Number of processors used by PETSc (depends of the computer framework). Default is 1';
0096 case 'matrixtype',expert = 1;info = 'Matrix type used by PETSc. For SUPERLU use ''-matload_type superlu_dist'' otherwise '' ''. See PETSc documentation';
0097 case 'kspmethod',expert = 1;info = 'KSP method used by PETSc. ''-ksp_type preonly'': no iteration, direct matrix solve. Otherwise ''-ksp_type bicg'' or ''-ksp_type bcgs'' for example. See PETSc documentation';
0098 case 'pcmethod',expert = 1;info = 'Preconditioning method used by PETSc. ''-pc_type lu'' for SUPERLU or ''-pc-type hypre'' for HYPRE. See PETSc documentation';
0099 case 'cloop',expert = 0;info = 'First order collision selfconsistency is done internaly in C (1) or in MatLab (0)';
0100 otherwise,
0101
0102 end
0103
0104
0105 case 'rtparam',
0106
0107 switch field
0108 case 'rayparam',expert = 0;info = 'ray parameters';
0109 case 'waveparam',expert = 0;info = 'wave parameters';
0110 case 'fitparam',expert = 0;info = 'interpolation parameters';
0111 case 'C3POparam',expert = 0;info = 'distributed computing parameters';
0112 case 'C3POdisplay',expert = 0;info = 'display parameters';
0113 otherwise,
0114 end
0115
0116 case 'rayparam',
0117
0118 switch field
0119 case 'testmode',expert = 1;values = {true,false};info = 'test mode';
0120 case 'tensortype',expert = 0;values = 0:4;info = 'type of dielectric tensor (0:cold, 1:warm, 2:hot, 3:weakly relativistic, 4:fully relativistic)';
0121 case 't0',expert = 1;values = [0;Inf];info = 'initial time';
0122 case 'tfinal',expert = 1;values = [0;Inf];info = 'final time';
0123 case 'dt0',expert = 1;values = [0;Inf];info = 'initial time step';
0124 case 'dS',expert = 1;values = [0;Inf];info = 'minimum recorded ray length step';
0125 case 'tol',expert = 1;values = [0;Inf];info = 'tolerance on dispersion relation';
0126 case 'kmax',expert = 1;values = [0;Inf];info = 'maximum number of recorded steps';
0127 case 'ncyclharm',expert = 1;values = 0:50;info = 'number of cyclotron harmonics in kinetic dielectric tensor (only for tensortype > 1)';
0128 case 'reflection',expert = 0;values = -10:1;info = 'negative n: n reflections enforced on vessel; (1) reflection enforced on LCFS';
0129 case 'rel_opt',expert = 0;values = {true,false};info = '(0) non relativistic, or (1) relativistic absorption calculation';
0130 case 'nperp',expert = 1;values = 00:100:5000;info = 'number of pperp points in absorption calculation';
0131 case 'pperpmax',expert = 1;values = 1:20;info = 'maximum value of pperp in absorption calculation';
0132 case 'tau_lim',expert = 0;values = [0;Inf];info = 'value of optical depth for which absorption is considered complete';
0133 case 'kextra',expert = 0;values = 0:50:10000;info = 'optional additional number of recorded steps after tau_lim is reached';
0134 case 'colldamp',expert = 0;values = {1,0};info = '(0) no collisional damping, or (1) no collisional damping';
0135 otherwise,
0136 end
0137
0138 case 'fitparam',
0139
0140 switch field
0141 case 'method',expert = 0;values = {'linear','nearest','spline','pchip','cubic'};info = 'Method for radial interpolation';
0142 case 'nharm',expert = 0;values = [0;Inf];info = 'Number of harmonics in the magnetic equilibrium interpolation (less than ntheta_equil/2)';
0143 case 'ngridresample',expert = 1;values = [0;Inf];info = 'Number of grid points for resampling the radial profile of magnetic equilibrium parameters';
0144 case 'opt_load',expert = 0;values = {true,false};info = 'Reload existing vectorial magnetic equilibrium (1) or overwrite it (0)';
0145 case 'mode_equil',expert = 1;values = [1,2];info = 'Magnetic equilibrium grid type: (1): (psi-theta), (2): (x-y)';
0146 otherwise,
0147 end
0148
0149 case 'clustermode',
0150
0151 switch field
0152 case 'coll_dke_jd',expert = 0;info = 'Distributed calculation of collision operator';
0153 case 'eecoll_dke_yp',expert = 0;info = 'Distributed calculation of electron collision integrals';
0154 case 'wave_solver_yp',expert = 0;info = 'Distributed calculation of RF antennas';
0155 case 'rfdiff_dke_jd',expert = 0;info = 'Distributed calculation of quasilinear operator';
0156 otherwise,
0157 end
0158
0159 case 'coll_dke_jd',
0160
0161 switch field
0162 case 'scheduler',expert = 0;info = 'Scheduler parameters for distributed calculation';
0163 otherwise,
0164 end
0165
0166 case 'eecoll_dke_yp',
0167
0168 switch field
0169 case 'scheduler',expert = 0;info = 'Scheduler parameters for distributed calculation';
0170 otherwise,
0171 end
0172
0173 case 'wave_solver_yp',
0174
0175 switch field
0176 case 'scheduler',expert = 0;info = 'Scheduler parameters for distributed calculation';
0177 otherwise,
0178 end
0179
0180 case 'rfdiff_dke_jd',
0181
0182 switch field
0183 case 'scheduler',expert = 0;info = 'Scheduler parameters for distributed calculation';
0184 otherwise,
0185 end
0186
0187 case 'scheduler',
0188
0189 switch field
0190 case 'mode',expert = 0;values = [-Inf;3];info = 'MatLab distributed computing environment disabled (0), enabled with the dedicated toolbox (1), enabled with a private method (2)';
0191 case 'memory',expert = 0;values = [0;Inf];info = 'Allocated memory (in mb)';
0192 case 'timeout',expert = 1;values = 50:50:500;info = 'MatLab distributed computing environment time out (s). after time out is reached, calculations are performed in a sequential mode on a single processor';
0193 case 'clustersize',expert = 0;values = [0;Inf];info = '%MatLab distributed computing environment cluster size. Can be Inf is all the processors of the cluster are free for distributed calculations';
0194 otherwise,
0195 end
0196
0197 case 'waveparam',
0198
0199 switch field
0200 case 'mmode',expert = 0;values = [-1;1];info = 'Polarization : (1) m (-1) p, (slow/fast LH wave: -1/+1, O/X mode: -1/+1)';
0201 case 'kmode',expert = 0;values = [0,1];info = 'Plasma model for wave propagation : (0:cold, 1:kinetic)';
0202 case 'opt_rf',expert = 0;values = [0,1];info = 'FLR effects : (0:all, 1:small)';
0203 case 'dsmin',expert = 1;values = [0;Inf];info = 'Minimum length of ray fragments';
0204 case 'nd',expert = 0;values = 1:10;info = 'Number of transverse distance positions for beamlets';
0205 case 'nchi',expert = 0;values = 1:10;info = 'Number of angular positions for beamlets';
0206 case 'n_rf_list',expert = 0;values = [];info = 'List of cyclotron harmonics to consider in wave power deposition';
0207 case 'ns',expert = 1;values = 1:100;info = 'Ray smoothing parameter';
0208 otherwise,
0209 end
0210
0211 case 'launch',
0212
0213 switch field
0214 case 'id',expert = 0;values = '';info = 'Provide an id for this launching structure';
0215 case 'omega_rf',expert = 0;values = [0;Inf];info = 'Wave angular frequency (rad/s)';
0216 case 'frequency_GHz',expert = 0;values =[0;Inf];info = 'Wave frequency (GHz)';
0217
0218 case 'LFS',expert = 1;values = [-1,1];info = 'Launching side : (-1) high field side, (1) low field side';
0219 case 'm0',expert = 1;values = [-Inf;Inf];info = 'Initial poloidal mode number (enter ''NaN'' to use toroidal mode number)';
0220 case 'n0',expert = 1;values = [-Inf;Inf];info = 'Initial toroidal mode number (enter ''NaN'' to use poloidal mode number)';
0221 case 'phi0',expert = 1;values = [-pi;pi];info = 'Initial toroidal angle (in rad.)';
0222 case 'phi0_deg',expert = 1;values = [-180;180];info = 'Initial toroidal angle (in deg.)';
0223 case 'bPlhtot',expert = 0;values = [0;Inf];info = 'Initial power in each lobe (W)';
0224 case 'bPlhtot_MW',expert = 0;values = [0;Inf];info = 'Initial power in each lobe (MW)';
0225 case 'bNpar0',expert = 0;values = [-Inf;Inf];info = 'Initial Npar in each lobe';
0226 case 'bNy',expert = 0;values = [-Inf;Inf];info = 'Initial Ny in each lobe';
0227 case 'bNz',expert = 0;values = [-Inf;Inf];info = 'Initial Nz in each lobe';
0228 case 'bdNpar0',expert = 0;values = [0;Inf];info = 'Spectral width in each lobe : specify fixed value, or type ''0'' if minimum width within numerical constraints';
0229 case 'rZ0',expert = 0;values = [-Inf;Inf];info = 'Vertical launching positions (m)';
0230 case 'nrZ0',expert = 0;values = 1:12;info = 'Number of vertical launching positions (m)';
0231 case 'module',expert = 0;values = {'upper','lower','full antenna'};info = 'Launcher module';
0232 case 'tail',expert = 0;info = 'Tail model parameters (m)';
0233
0234 case 'yP_L',expert = 0;values = [0;Inf];info = 'Ray initial power (W)';
0235 case 'yP_L_kW',expert = 0;values = [0;Inf];info = 'Ray initial power (kW)';
0236 case 'yR_L',expert = 0;values = [0;Inf];info = 'Ray initial major radius (m)';
0237 case 'yZ_L',expert = 0;values = [-Inf;Inf];info = 'Ray initial vertical position (m)';
0238 case 'yphi_L',expert = 0;values = [-pi;pi];info = 'Ray initial toroidal position (in rad.)';
0239 case 'yphi_L_deg',expert = 0;values = [-180;180];info = 'Ray initial toroidal position (in deg.)';
0240 case 'yalpha_L',expert = 0;values = [-pi;pi];info = 'Ray initial toroidal angle (with resp. to R) (in rad.)';
0241 case 'yalpha_L_deg',expert = 0;values = [-180;180];info = 'Ray initial toroidal angle (with resp. to R) (in deg.)';
0242 case 'ybeta_L',expert = 0;values = [0;pi];info = 'Ray initial poloidal angle (with resp. to Z) (in rad.)';
0243 case 'ybeta_L_deg',expert = 0;values = [0;180];info = 'Ray initial poloidal angle (with resp. to Z) (in deg.)';
0244 case 'w0',expert = 1;values = [0;Inf];info = 'Beam waist (m)';
0245 case 'z_L',expert = 1;values = [-Inf;Inf];info = 'Distance from last mirror to focal point (m)';
0246 case 'dNpar0',expert = 1;values = [0;Inf];info = 'Beam dNpar : (0) minimal, (0->Inf) specify, (NaN) calculate from beam size';
0247 otherwise,
0248 end
0249
0250 case 'angles',
0251
0252 switch field
0253 case 'id',expert = 0;values = '';info = 'Provide an id for this angles structure';
0254 case 'freq',expert = 0;values = [0;Inf];info = 'Wave frequency (Hz)';
0255 case 'frequency_GHz',expert = 0;values =[0;Inf];info = 'Wave frequency (GHz)';
0256 case 'P0',expert = 0;values = [0;Inf];info = 'Launched power (W)';
0257 case 'P0_kW',expert = 0;values = [0;Inf];info = 'Launched power (kW)';
0258 case 'theta',expert = 0;values = [-pi/2;pi/2];info = 'Launcher tilt angle (in rad.)';
0259 case 'theta_deg',expert = 0;values = [-90;90];info = 'Launcher tilt angle (in deg.)';
0260 case 'phi',expert = 0;values = [-pi;pi];info = 'Launcher rotation angle (in rad.)';
0261 case 'phi_deg',expert = 0;values = [-180;180];info = 'Launcher rotation angle (in deg.)';
0262 case 'w0',expert = 1;values = [0;Inf];info = 'Beam waist (m)';
0263 case 'z_L',expert = 1;values = [-Inf;Inf];info = 'Distance from last mirror to focal point (m)';
0264 case 'P1_R',expert = 1;values = [0;Inf];info = 'First mirror major radius (m)';
0265 case 'P1_Z',expert = 1;values = [-Inf;Inf];info = 'First mirror vertical position (m)';
0266 case 'P1_theta',expert = 1;values = [-pi/2;pi/2];info = 'First mirror angle (in rad.)';
0267 case 'P1_theta_deg',expert = 1;values = [-90;90];info = 'First mirror angle (in deg.)';
0268 case 'P2_R',expert = 1;values = [0;Inf];info = 'Second mirror major radius (m)';
0269 case 'P2_Z',expert = 1;values = [-Inf;Inf];info = 'Second mirror vertical position (m)';
0270 case 'P2_d',expert = 1;values = [0;Inf];info = 'Second mirror thickness (m)';
0271 case 'P3_Z',expert = 1;values = [-Inf;Inf];info = 'Third mirror vertical position (m)';
0272 otherwise,
0273 end
0274
0275 case 'tail',
0276
0277 switch field
0278 case 'mode',expert = 0;values = 0:3;info = 'mode for tail spectrum : (0) no tail model, (1) Gaussian, (2) Linear, (3) calc_tail_jd';
0279 case 'dtn',expert = 1;values = [0;Inf];info = 'statistical autocorrelation time (if dtn is Inf, no fluctuations)';
0280 case 'bfwhm',expert = 1;values =[0;Inf];info = 'Gaussian distribution for npar0';
0281 case 'bNparmax_tail',expert = 0;values =[0;Inf];info = 'maximum value of the high-n// tail (0) : 6.5/sqrt(Te0)';
0282 case 'bopt_tail',expert = 0;values = [0;1];info = 'real part : fraction of final power height. (1) linear tail power profile (+1i) : adjust dNpar0';
0283 case 'bh_tail',expert = 0;values = [0;1];info = 'fraction of final power height -> (1) linear tail power profile';
0284 case 'opt_dnpar0',expert = 0;values = {true,false};info = 'adjust dNpar0 (true) or not';
0285 case 'bn_tail',expert = 0;values = 0:100;info = 'number of peaks in the high-n// tail';
0286 case 'bP_tail',expert = 0;values = [0;1];info = 'fraction of power in the high-n// tail (NaN : main lobe follows tail power distribution)';
0287 otherwise,
0288 end
0289
0290 case 'transpfaste',
0291
0292 switch field
0293 case 'id',expert = 0;values = '';info = 'Provide an id for this transpfaste structure';
0294 case 'Dr0',expert = 0;values = [0;Inf];info = 'Core radial diffusion coefficient (m^2/s)';
0295 case 'Dr_model',expert = 0;values = 0:2;info = 'Radial diffusion type: (0) no vpar dependence, (1) magnetic turbulence model (vpar/vth)';
0296 case 'pDr',expert = 0;values = [-Inf;Inf];info = 'Coefficient for the Dr radial profile';
0297 case 'Vr0',expert = 0;values = [-Inf;Inf];info = 'Core radial pinch coefficient (m/s)';
0298 case 'Vr_model',expert = 0;values = 0:2;info = 'Radial pinch type: (0) no vpar dependence, (1) magnetic turbulence model (vpar/vth)';
0299 case 'pVr',expert = 0;values = [-Inf;Inf];info = 'Coefficient for the Vr radial profile';
0300 case 'vparmin',expert = 0;values = [0;Inf];info = 'Lower limit of the parallel velocity dependence of the radial diffusion and pinch (vth_ref or vth)';
0301 case 'norm_ref',expert = 0;values = [0,1];info = 'Normalization procedure for the lower limit of radial transport parallel velocity dependence: (0) from local values Te and ne, (1) from reference values Te_ref and ne_ref';
0302 otherwise,
0303 end
0304
0305 case 'external',
0306
0307 switch field
0308 case 'basestr',expert = 0;values = '';info = 'Name of the tokamak';
0309 case 'shotnum',expert = 0;values = [0;Inf];info = 'Shot number';
0310 case 'shotime',expert = 0;values = [0;Inf];info = 'Shot time (s)';
0311 case 't1',expert = 0;values = [0;Inf];info = 'Minimum time for data averaging (s)';
0312 case 't2',expert = 0;values = [0;Inf];info = 'Maximum time for data averaging (s)';
0313 otherwise,
0314 end
0315
0316 case 'hxrparam',
0317
0318 switch field
0319 case 'id',expert = 0;values = '';info = 'Provide an id for this hxrparam structure';
0320 case 'mfactor',expert = 1;values = 1:10;info = 'poloidal grid size factor for HXR equil';
0321 case 'method',expert = 1;values = {'linear','nearest','spline','pchip','cubic'};info = 'Method for radial interpolation';
0322 case 'ns',expert = 1;values = [0;Inf];info = 'Number of points to describe chord';
0323 case 'n_gauleg',expert = 0;values = 1:100;info = 'Number of Legendre polynomials for projections of cross-section and electron velocity distribution';
0324 case 'epsi_gauleg',expert = 1;values = [eps;1];info = '%Accuracy of the Legendre projection';
0325 case 'kmin',expert = 0;values = [0;Inf];info = 'Standard minimum value for Tph calculation (LH : 50; EC : 35)';
0326 case 'kmax',expert = 0;values = [0;Inf];info = 'Standard maximum value for Tph calculation (LH : 110; EC : 75)';
0327 case 'kphot',expert = 0;values = [0;Inf];info = 'Photon energy list for FEB calculations';
0328 otherwise,
0329 end
0330
0331
0332
0333 case 'AMRcfg',
0334
0335 switch field
0336 case 'input',expert = 0;info = 'input structure';
0337 case 'output',expert = 0;info = 'output structure';
0338 case 'cluster',expert = 0;info = 'cluster structure';
0339 case 'ray_tracing',expert = 0;info = 'ray_tracing structure';
0340 case 'test_profiles',expert = 0;info = 'test_profiles structure';
0341 case 'profiles',expert = 0;info = 'profiles structure';
0342 case 'integration',expert = 0;info = 'integration structure';
0343 otherwise,
0344 end
0345
0346 case 'input',
0347
0348 switch field
0349 case 'experiment',expert = 0;info = 'experiment name';
0350 case 'shot_number',expert = 0;info = 'shot number';
0351 case 'start_time',expert = 0;info = 'start time of the simulation';
0352 case 'end_time',expert = 0;info = 'end time of the simulation';
0353 case 'time_samples',expert = 0;info = 'no. of time steps';
0354 otherwise,
0355 end
0356
0357 case 'output',
0358
0359 switch field
0360 case 'central_ray_only',expert = 0;info = 'calculate the central rays only';
0361 case 'luke',expert = 0;info = 'generate LUKE output';
0362 otherwise,
0363 end
0364
0365 case 'cluster',
0366
0367 switch field
0368 case 'master_priority',expert = 0;info = 'priority of the master process, i.e. the program itself if run locally 0 = lowest (nice 19), 1 = medium (nice 10), 2 = standard (nice 0)';
0369 otherwise,
0370 end
0371
0372 case 'ray_tracing',
0373
0374 switch field
0375 case 'Zeff',expert = 0;info = 'Zeff (constant)';
0376 case 'accuracy',expert = 0;info = 'Runge-Kutta accuracy';
0377 case 'power_limit',expert = 0;info = 'stopping power value (1-power_limit damped)';
0378 otherwise,
0379 end
0380
0381 case 'test_profiles',
0382
0383 switch field
0384 case 'R_min',expert = 0;info = 'R_min';
0385 case 'R_max',expert = 0;info = 'R_max';
0386 case 'Z_min',expert = 0;info = 'Z_min';
0387 case 'Z_max',expert = 0;info = 'Z_max';
0388 case 'R_dim',expert = 0;info = 'R_dim';
0389 case 'Z_dim',expert = 0;info = 'Z_dim';
0390 otherwise,
0391 end
0392
0393 case 'profiles',
0394
0395 switch field
0396 case 'input_type',expert = 0;info = 'equilibriuam and ne,Te profiles input type (matlab for LUKE)';
0397 case 'export',expert = 0;info = 'equilibriuam and ne,Te profiles input type (matlab for LUKE)';
0398 case 'export_nR',expert = 0;info = 'no. of datapoints in R';
0399 case 'export_nZ',expert = 0;info = 'no. of datapoints in Z';
0400 case 'export_npsi',expert = 0;info = 'no. of datapoints in psi';
0401 case 'extendProfilesDen',expert = 0;info = 'profiles extension behind the last data point';
0402 case 'extendProfilesTe',expert = 0;info = 'profiles extension behind the last data point';
0403 case 'extDataPoints',expert = 0;info = 'profiles extension behind the last data point';
0404 case 'LSOL_den',expert = 0;info = 'profiles extension behind the last data point';
0405 case 'LSOL_Te',expert = 0;info = 'profiles extension behind the last data point';
0406 case 'LSOL',expert = 0;info = 'SOL width, increase for low frequencies with mode conversion close to or out of LCFS';
0407 otherwise,
0408 end
0409
0410 case 'antenna',
0411
0412 switch field
0413 case 'cfg_file',expert = 0;info = 'name of the antenna cfg file';
0414 case 'ids',expert = 0;info = 'name of the antenna cfg file';
0415 otherwise,
0416 end
0417
0418 case 'integration',
0419
0420 switch field
0421 case 'R_min',expert = 0;info = 'min, max in R and r_eff for profiles (deposition, current) integration r_eff = a0*sqrt(psi_normalized)';
0422 case 'R_max',expert = 0;info = 'min, max in R and r_eff for profiles (deposition, current) integration r_eff = a0*sqrt(psi_normalized)';
0423 case 'r_eff_min',expert = 0;info = 'min, max in R and r_eff for profiles (deposition, current) integration r_eff = a0*sqrt(psi_normalized)';
0424 case 'r_eff_max',expert = 0;info = 'min, max in R and r_eff for profiles (deposition, current) integration r_eff = a0*sqrt(psi_normalized)';
0425 case 'tabdim',expert = 0;info = 'no. of datapoints';
0426 otherwise,
0427 end
0428
0429 case 'antennacfg',
0430
0431 switch field
0432 case 'general',expert = 0;info = 'general';
0433 case 'antenna_0',expert = 0;info = 'antenna_0';
0434 otherwise,
0435 end
0436
0437 case 'general',
0438
0439 switch field
0440 case 'noOfCircles',expert = 0;info = 'noOfCircles';
0441 case 'raysPerCircle',expert = 0;info = 'raysPerCircle';
0442 otherwise,
0443 end
0444
0445 case 'general',
0446
0447 switch field
0448 case 'model',expert = 0;info = 'antenna model';
0449 case 'power',expert = 0;info = 'power in kW';
0450 case 'toroidal_angles',expert = 0;info = 'array of toroidal angles (single value for no angle scan)';
0451 case 'poloidal_angles',expert = 0;info = 'array of poloidal angles (single value for no angle scan)';
0452 case 'angles_E_equatorial',expert = 0;info = 'array of polarization angles (single value for no angle scan)';
0453 case 'popolarizationwer',expert = 0;info = 'select polarization(s) (linear | linear_complementary | circular)';
0454 case 'frequencies',expert = 0;info = 'array of frequencies';
0455 otherwise,
0456 end
0457
0458
0459
0460 case 'lukeparam',
0461
0462 switch field
0463 case 'luke_mode',expert = 0;values = 0:2;info = '(0) run LUKE, (1) run LUKE then save output (2) save input then exit';
0464 case 'batch_mode',expert = 0;values = 0:1;info = 'run LUKE in (0) interactive mode, (1) batch mode';
0465 case 'display_mode',expert = 0;values = 0:2;info = '(0) none, (1) limited (2) full display';
0466 case 'rho_display',expert = 1;values = [0;1];info = 'radial position for display [0;1]';
0467 case 'dkeparam',expert = 1;info = 'LUKE run parameters';
0468 case 'equilparam',expert = 1;info = 'equilibrium parameters';
0469 case 'lhparam',expert = 0;info = 'LH parameters';
0470 case 'ecparam',expert = 0;info = 'EC parameters';
0471 case 'transpfaste',expert = 0;info = 'radial transport parameters';
0472 otherwise,
0473 end
0474 case 'equilparam',
0475
0476 switch field
0477 case 'nbpx',expert = 0;values = [0,11:10:201];info = 'number of points in interpolated radial grid (enter 0 if no interpolation required)';
0478 case 'mode',expert = 0;values = {'standard','sqrt(psi)','psi'};info = 'interpolation mode : linear in "standard" (xli), "sqrt(psi)", or "psi"';
0479 case 'expo',expert = 0;values = [-Inf;Inf];info = 'morphing function exponent';
0480 case 'comp',expert = 0;values = {true,false};info = 'control of equilibrium moments reconstructed from LUKE';
0481 otherwise,
0482 end
0483 case 'lhparam',
0484
0485 switch field
0486 case 'freqlh',expert = 0;values = [0;Inf];info = 'Wave frequency (GHz)';
0487 case 'plh',expert = 0;values = [0;Inf];info = 'Wave initial power (W)';
0488 case 'npar0',expert = 0;values = [-Inf;Inf];info = 'Wave initial index of refraction';
0489 case 'mode',expert = 0;values = 0:2;info = 'LUKE LH mode : (0) simple v1, v2, D model, (1) C3PO with ideal antenna, (2) C3PO with prescribed antenna';
0490 case 'plhmin',expert = 1;values = [0;Inf];info = 'Minimum power level to use wave in LUKE (W)';
0491 case 'directivity',expert = 0;values = [0;1];info = 'Spectrum directivity';
0492 case 'lob',expert = 0;values = {true,false};info = 'Include opposite lobe';
0493 case 'dnpar0',expert = 1;values = [0;Inf];info = 'Wave initial spectral width';
0494 case 'z0',expert = 0;values = [-Inf;Inf];info = 'Vertical launching positions (m)';
0495 case 'm0',expert = 1;values = [-Inf;Inf];info = 'Initial poloidal mode number';
0496 case 'phi0',expert = 1;values = [-pi;pi];info = 'Initial toroidal angle (rad)';
0497 case 'i_ref',expert = 1;values = -10:0;info = 'Initial radial position index (relative from edge)';
0498 case 'LFS',expert = 1;values = [-1,1];info = 'Launching side : (-1) high field side, (1) low field side';
0499 case 'mmode',expert = 0;values = [-1,1];info = 'Polarization : (1) m (-1) p, (slow/fast LH wave: -1/+1, O/X mode: -1/+1)';
0500 case 'a_sdNpar',expert = 1;values = [0;Inf];info = 'Spectral broadening factor (m^-1)';
0501 case 'nparp',expert = 1;values = [-Inf;Inf];info = 'Initial additional upshift';
0502 otherwise,
0503 end
0504 case 'ecparam',
0505
0506 switch field
0507 case 'freqec',expert = 0;values = [-Inf;Inf];info = 'Wave frequency (GHz); if negative integer = harmonic number, determined from alpha, xec and polec';
0508 case 'pec',expert = 0;values = [0;Inf];info = 'Wave initial power (W)';
0509 case 'alpha_L',expert = 0;values = [-pi;pi];info = 'Toroidal launching angle (degrees); if NaN, determined from freqec, xec and polec, or from option.sens if freqec=NaN';
0510 case 'mode',expert = 0;values = 0:2;info = 'LUKE LH mode : (0) simple v1, v2, D model, (1) C3PO with ideal antenna, (2) C3PO with prescribed antenna';
0511 case 'pecmin',expert = 1;values = [0;Inf];info = 'Minimum power level to use wave in LUKE (W)';
0512 case 'xec',expert = 0;values = [0;Inf];info = 'Radial location of ECRH deposition (normalized METIS grid)';
0513 case 'polec',expert = 0;values = [0;1];info = 'Poloidal location of ECRH deposition, (degrees); if NaN, determined from freqec, xec and alpha_L';
0514 case 'pabs',expert = 1;values = [0;Inf];info = 'momentum at absorption (for Doppler shift)';
0515 case 'dnpar0',expert = 1;values = [0;Inf];info = 'Wave initial spectral width';
0516 case 'phi0',expert = 1;values = [-pi;pi];info = 'Initial toroidal angle (rad)';
0517 case 'mmode',expert = 0;values = [-1,1];info = 'Polarization : (1) m (-1) p, (O/X mode: -1/+1)';
0518 case 'ns',expert = 1;values = 200:200:5000;info = 'Number of points for stright line calculations';
0519 case 'method',expert = 1;values = {'linear','nearest','spline','pchip'};info = 'Interpolation method';
0520 otherwise,
0521 end
0522
0523
0524
0525 case 'simul',
0526 switch field
0527 case 'mhd', expert = 0; info = 'Structure for MHD_DATA source file';
0528 case 'opt', expert = 0; info = 'Options for the MIKE simulation';
0529 case 'param', expert = 0; info = 'Parameters for the MIKE simulation';
0530 case 'davies', expert = 1; info = 'Parameters for the Davies root finding method';
0531 end
0532 case 'mhd',
0533 switch field
0534 case 'path',expert = 0; values = ''; info = 'path to MHD_DATA file';
0535 case 'filename',expert = 0; values = ''; info = 'name of MHD_DATA file';
0536 case 'machine',expert = 1; values = ''; info = 'name of the tokamak for the simulation';
0537 case 'shot',expert = 1; values = [0;Inf]; info = 'shot number for the simulation';
0538 case 'time',expert = 1; values = [0;Inf]; info = 'time of the simulation';
0539 case 'defname',expert = 1; values = ''; info = 'default prefix for the MIKE simulation filename';
0540 case 'luke_simul',expert = 1; info = 'luke_simul struct of the associated LUKE simulation';
0541 end
0542 case 'opt',
0543 switch field
0544 case 'phmode',expert = 1; values = ''; info = 'Method for dWk calculation (kinetic & fluid, fast & thermal)';
0545 case 'intE',expert = 1; values = 1:2; info = 'Energy integral method (main distribution) \n(1) Zfunction \n(2) Logarithm';
0546 case 'pnmax',expert = 1;values = [0;Inf]; info = 'Maximum value for the momentum grid (NaN for value of LUKE simulation)';
0547 case 'T',expert = 1; values = {true,false}; info = 'Trapped particles only';
0548 case 'bounce',expert = 1; values = 0:1; info = 'Expression for bounce period \n(0) Zonca \n(1) White';
0549 case 'drift',expert = 1; values = 0:1; info = 'Expression for drift frequency \n(0) Zonca \n(1) White';
0550 case 'beta',expert = 1; values = 0:1; info = 'Expression for poloidal beta \n(0) White \n(1) Zonca';
0551 case 'inertia',expert = 1; values = 0:1; info = 'Convention for the inertia term \n(0) Chen \n(1) Zonca';
0552 case 'dWcInp',expert = 0; values = {true,false}; info = 'Enforced dWc';
0553 case 'resistive',expert = 1; values = 0:1; info = 'Inertia term \n(0) Ideal \n(1) Resistive';
0554 case 'mdce',expert = 1; values = 1:3; info = 'Distributed comuting mode \n(1) Sequential computing \n(2) Matlab routine \n(3) LUKE routine';
0555 case 'test',expert = 1; values = {true,false}; info = 'Test/Ideal case';
0556 case 'F',expert = 1; values = 1:6; info = 'Type of analytical distribution (test) \n(1) slowing down \n(2) Maxwellian distribution \n(3) bi-Maxwellian \n(4) BiMaxwellian + slowing-down \n(5) BiMaxwellian + maxwellian';
0557 case 'E',expert = 1; values = {true,false}; info = 'Analytical energy integration (test)';
0558 case 'mhu',expert = 1; values = {true,false}; info = 'Analytical pitch-angle integration (test)';
0559 case 'rho',expert = 1; values = {true,false}; info = 'Analytical radial integration (test)';
0560 case 'k',expert = 1; values = 1:3; info = '(1) constant lambda, (2) constant kappa, (3) constant mhu distribution';
0561 case 'C',expert = 1; values = {true,false}; info = 'Locally normalized distribution';
0562 case 'a',expert = 1; values = {true,false}; info = 'Approximate radial dependences';
0563 case 'b',expert = 1; values = {true,false}; info = 'Neglect the energy derivative term';
0564 end
0565 case 'phmode',
0566 switch field
0567 case 'dist',expert = 1; values = [-1;3]; info = 'Distribution chosen for calculation \n(1) fast -1->0, 0->myFEHM, 1->XFEH, 2->myFEHP, 3->XFM-XF0 \n(2) th e- -1->0, 0->myFE, 1->XFE, 2->XFM, \n(3) th ions -1->0, 0->myFI, 1->XFI';
0568 case 'dWk',expert = 1; values = [0;1]; info = 'Components for dWk\n (1) fast (2) th e- (3) th ions';
0569 case 'dWgp',expert = 1; values = [0;1]; info = 'Components for dWgp\n (1) fast (2) th e- (3) th ions';
0570 end
0571 case 'param',
0572 switch field
0573 case 'action',expert = 0; values = 1:8; info = 'Action for MIKE simulation \n(1) Calculation for given frequency \n(2) Frequency scan \n(3) Growth rate scan \n(4) 2D Scan \n(5) Root search \n(6) Parameter Scan \n(7) Hybrid Scan (frequency) \n(8) Hybrid Scan (growth rate)';
0574 case 'nTor',expert = 1; values = [0;Inf]; info = 'Toroidal mode number';
0575 case 'nh',expert = 1; values = [-Inf;Inf]; info = 'Fast particle fraction';
0576 case 'S',expert = 1; values = [0;Inf]; info = 'Conductivity factor (Inf) for ideal';
0577 case 'dWc',expert = 0; values = [-Inf;Inf]; info = 'Value of dWc when it is enforced';
0578 case 'nz',expert = 1; values = [0;Inf]; info = 'Number of points for energy calc-grid (NaN for no interpolation)';
0579 case 'nm',expert = 1; values = [0;Inf]; info = 'Number of points for pitch-angle calc-grid (NaN for no interpolation)';
0580 case 'ny',expert = 1; values = [0;Inf]; info = 'Number of points for radial calc-grid (NaN for no interpolation)';
0581 case 'q',expert = 0; values = 0:3; info = 'Shape of the q-profile \n(0) CRONOS profile \n(1) Parabolic \n(2) Inverted \n(3) Flat then parabolic';
0582 case 'qpar',expert = 0; values = [-Inf;Inf]; info = 'q-profile parameters \n qfac, qtrs, qmin, qmax, rhos, rhos1, rhos2';
0583 case 'romega',expert = 0; values = [-Inf;Inf]; info = 'Frequency values (kHz) \n(start,end,numpts)';
0584 case 'iomega',expert = 0; values = [-Inf;Inf]; info = 'Growth rate values (kHz) \n(start,end,numpts)';
0585 case 'ScanPar',expert = 0; values = {'dWc','nh','S','qfac','qtrs','qmin','qmax','rhos','rhos1','rhos2'}; info = 'Scan parameter';
0586 case 'parVal',expert = 0; values = [-Inf;Inf]; info = 'Scan parameter values \n(start,end,numpts)';
0587 case 'omega0',expert = 0; values = [-Inf;Inf]; info = 'Starting frequency for root search method (kHz)';
0588 case 'domega',expert = 0; values = [0;Inf]; info = 'Starting radius for root search method (kHz)';
0589 case 'np',expert = 1; values = [0;Inf]; info = 'Number of points for energy original-grid (test)';
0590 case 'nmhu',expert = 1; values = [0;Inf]; info = 'Number of points for pitch-angle original-grid (test)';
0591 case 'nrho',expert = 1; values = [0;Inf]; info = 'Number of points for radial original-grid (test)';
0592 case 'Rp',expert = 1; values = [0;Inf]; info = 'Major radius in meters (test)';
0593 case 'ap',expert = 1; values = [0;Inf]; info = 'Minor radius in meters (test)';
0594 case 'Bt',expert = 1; values = [0;Inf]; info = 'Toroidal magnetic field in teslas (test)';
0595 case 'qpar_t',expert = 1; values = [-Inf;Inf]; info = 'q-profile parameters (test) \n qfac, qtrs, qmin, qmax, rhos, rhos1, rhos2';
0596 case 'Emin',expert = 1; values = [0;Inf]; info = 'SD distribution : lower frequency (test)';
0597 case 'Emax',expert = 1; values = [0;Inf]; info = 'SD distribution : upper frequency (test)';
0598 case 'T',expert = 1; values = [0;Inf]; info = 'Maxwellian distribution : temperature in keV (test)';
0599 case 'Eref',expert = 1; values = [0;Inf]; info = 'Reference energy (test)';
0600 case 'nref',expert = 1; values = [0;Inf]; info = 'Reference density (test)';
0601 case 'mhu0s',expert = 1; values = [-1;1]; info = 'Pitch-angle (mhu), NaN for isotropic (test)';
0602 case 'dmhu',expert = 1; values = [0;Inf]; info = 'Width of pitch-angle distribution (test)';
0603 end
0604 case 'davies',
0605 switch field,
0606 case 'immin',expert = 1; values = [2;Inf]; info = 'minimun number of points (log2) for function evaluation';
0607 case 'immax',expert = 1; values = [3;Inf]; info = 'maximum number of points (log2) for function evaluation';
0608 case 'rapmax',expert = 1; values = [0;Inf]; info = 'tolerance for change in module between neighboring points';
0609 case 'phimax',expert = 1; values = [0;Inf]; info = 'tolerance for change in argument between neighboring points';
0610 case 'convlim',expert = 1; values = [0;Inf]; info = 'precision for root evaluation';
0611 case 'nconv',expert = 1; values = [0;Inf]; info = 'maximum number of iterations';
0612 case 'display_mode',expert = 1; values = [0:2]; info = 'display mode \n(0) only final result \n(1) each iteration results \n(2) all output';
0613 end
0614 case 'luke_simul',
0615 switch field,
0616
0617 case 'id', expert = 1; info = '';
0618 case 'timeid', expert = 1; info = '';
0619 case 'userid', expert = 1; values = ''; info = '';
0620 case 'LUKEversion', expert = 1; values = ''; info = '';
0621 end
0622 otherwise,
0623 end
0624
0625