Contents
RAPTOR Tutorial 5: Time varying kinetic profiles
Example of how to input time-varying kinetic profiles ne,ni,ti,zeff These are provided externally to the simulation.
addpath(fullfile(pwd,'..','RAPTOR_code'),'-end'); % add RAPTOR path % % load the default parameters, [config] = RAPTOR_config; % load default config [~,model,params,init] = RAPTOR_config(config); % generate model structure for these params. params.debug.iterdisp = 10; % display every 10 % simple inputs: constant current plasma U = 200e3*ones(size(params.tgrid.tgrid)); % input Ip trace % initial conditions [x0,g0,v0] = RAPTOR_initial_conditions(U(1),model,init); % Define the initial condition
loading CHEASE equilibrium from /home/ffelici/matlab/RAPTOR-RT/chease_equils/TCV_41083_cheasedata Scaling Te initial condition to match edge value boundary value (50)
time varying ne: scale ne by time-dependent factor
ne0 = v0(model.ne.ind); % initialize V0 V0 = repmat(v0,1,params.tgrid.nt); % factor nefactor = linspace(1,3,params.tgrid.nt); % clip to 2 nefactor(round(numel(nefactor)/2):end) = nefactor(round(numel(nefactor)/2)); % substitute new time-varying ne0 V0(model.ne.ind,:) = bsxfun(@times,ne0,nefactor); % run RAPTOR simulation simres = RAPTOR_predictive(x0,g0,V0,U,model,params); out1 = RAPTOR_out(simres,model,params);
istep telaps newt res t[ms] dt[ms] Ip[kA] Icd[kA] Ibs[kA] Ioh[kA] qe qmin q0 Vl[V] Te0[keV] ne0[e19] Wi[kJ] We[kJ] f_ss
1 0.029 5 4.6e-15 0 1 200 0 9.99 190 6.36 2.26 2.26 4.5e+00 0.85 1.00 7.60 0.55 1.8e+01
11 0.2 3 2.9e-11 10 1 200 0 9.63 190 6.36 1.57 1.57 3.3e+00 0.82 1.40 9.85 0.72 1.2e+01
21 0.35 3 4.5e-11 20 1 200 0 9.99 190 6.36 1.13 1.13 3.2e+00 0.86 1.80 11.40 0.88 9.5e+00
31 0.52 3 4.5e-11 30 1 200 0 9.97 190 6.36 0.854 0.854 3.0e+00 0.91 2.00 12.64 0.96 7.4e+00
41 0.64 2 4.4e-09 40 1 200 0 9.76 190 6.36 0.704 0.704 2.7e+00 0.99 2.00 13.62 0.99 5.6e+00
51 0.76 2 2.6e-09 50 1 200 0 9.62 190 6.36 0.616 0.616 2.5e+00 1.05 2.00 14.39 1.01 4.3e+00
time varying Zeff
ze0 = v0(model.ze.ind); % get original Zeff profile coefficients V0 = repmat(v0,1,params.tgrid.nt); % reset to old values zefactor = 1+linspace(1,0,numel(ze0))'*linspace(0,2,params.tgrid.nt); % Zeff ramp by factor 3 in core only, keep edge fixed V0(model.ze.ind,:) = bsxfun(@times,ze0,zefactor); simres = RAPTOR_predictive(x0,g0,V0,U,model,params); out2 = RAPTOR_out(simres,model,params); % end of tutorial
istep telaps newt res t[ms] dt[ms] Ip[kA] Icd[kA] Ibs[kA] Ioh[kA] qe qmin q0 Vl[V] Te0[keV] ne0[e19] Wi[kJ] We[kJ] f_ss
1 0.027 5 4.6e-15 0 1 200 0 9.99 190 6.36 2.26 2.26 4.5e+00 0.85 1.00 7.60 0.55 1.8e+01
11 0.16 2 3.2e-11 10 1 200 0 8.86 191 6.36 1.62 1.62 3.0e+00 0.97 1.00 9.68 0.61 9.9e+00
21 0.28 2 1.3e-12 20 1 200 0 8.82 191 6.36 1.26 1.26 2.7e+00 1.19 1.00 10.96 0.68 7.5e+00
31 0.4 2 3.0e-13 30 1 200 0 8.89 191 6.36 1.01 1.01 2.5e+00 1.39 1.00 11.90 0.73 5.8e+00
41 0.53 2 9.8e-14 40 1 200 0 9.03 191 6.36 0.864 0.864 2.4e+00 1.57 1.00 12.63 0.79 4.4e+00
51 0.65 2 3.5e-14 50 1 200 0 9.2 191 6.36 0.772 0.772 2.3e+00 1.73 1.00 13.19 0.83 3.3e+00