Tutorial on adding the ion temperature to the list of solved equations

By default only psi, Te are solved. Let's add Ti as well.

run(fullfile(pwd,'..','RAPTOR_path.m')); % add RAPTOR path
close all hidden; clear;
[config] = RAPTOR_config; % load default params
config.debug.iterdisp = 10;
config.grid.tgrid = [0:2e-3:0.4];

Use BgB transport model since that outputs ion and electron transport coefficients separately

config.chi_e = chi_e('BgB');

Ti defined as independent state to be solved for

config.ti.method = 'state';
config.ti.BCtype = 'Te'; % prescribe edge temperature
config.ti.BCval = config.te.BCval; % same edge temperature as electrons

config.pei.active = true; % source electron-ion equipartitions, switch it on.
[model,params,init,g,v,U] = build_RAPTOR_model(config); % generate model structure for these params.

Inputs

params.echcd.active = true;
params.nbhcd.active = true;
params.nbhcd.frac_to_electrons = 0.5;

rampfun = @(t,tmin,ymin,tmax,ymax) ...
    max(ymin,min((ymax-ymin)/(tmax-tmin)*(t-tmin),ymax-ymin)+ymin); % anonymous function for ramps

U(1,:) = rampfun(params.tgrid,0,80e3,0.2,150e3); % input Ip trace: constant 80kA
U(params.echcd.uindices(1),params.tgrid>=0.1 & params.tgrid<=0.15) = 500e3; % briefly add some ECH (electron only)
U(params.nbhcd.uindices,:) = rampfun(params.tgrid,0.2,0e3,0.25,500e3); % input NBI: heat those ions
init.Ip0 = U(1); % initial condition for current
x0 = RAPTOR_initial_conditions(model,init,g(:,1),v(:,1)); % Define the initial condition

run RAPTOR and get outputs

simres = RAPTOR_predictive(x0,g,v,U,model,params);
out = RAPTOR_out(simres,model,params);
     it  telaps newt     res   t[ms]  dt[ms]  Ip[kA] Icd[kA] Ibs[kA] Ioh[kA]      qe    qmin      q0   Vl[V] Te0[keV] Ti0[keV] ne0[e19]   f_ss  
      1   0.089    6 1.1e-11       0       2      80       0    1.41    78.5    15.3    5.42    5.42 2.1e+00    0.28    0.17    1.00 4.6e+00 
     11    0.38    2 1.3e-12      20       2      87       0    5.02    81.9    14.1    2.88    2.88 1.5e+00    0.57    0.10    1.00 2.8e+00 
     21    0.63    2 6.2e-14      40       2      94       0    5.63    88.3      13    2.05    2.05 1.4e+00    0.72    0.11    1.00 2.1e+00 
     31    0.87    2 6.9e-15      60       2     101       0    6.04    94.9    12.1    1.67    1.67 1.3e+00    0.83    0.11    1.00 1.8e+00 
     41     1.1    2 7.1e-15      80       2     108       0    6.34     102    11.4    1.46    1.46 1.2e+00    0.93    0.11    1.00 1.6e+00 
     51     1.4    6 7.1e-11     100       2     115       0    6.59     108    10.7    1.32    1.32 8.3e-01    2.79    0.09    1.00 2.7e+00 
     61     1.7    2 2.0e-14     120       2     122       0    20.9     101    10.1    1.24    1.24 4.5e-01    3.61    0.07    1.00 1.3e+00 
     71     1.9    2 1.4e-14     140       2     129       0    20.6     108    9.51    1.16    1.16 4.6e-01    3.71    0.07    1.00 1.3e+00 
     81     2.3    3 3.6e-12     160       2     136       0    8.42     128    9.02     1.1     1.1 1.0e+00    1.32    0.10    1.00 1.5e+00 
     91     2.5    2 3.2e-14     180       2     143       0    7.23     136    8.58    1.04    1.04 1.1e+00    1.26    0.12    1.00 1.5e+00 
    101     2.8    2 3.4e-14     200       2     150       0    7.34     143    8.18   0.985   0.985 1.1e+00    1.33    0.12    1.00 1.4e+00 
    111       3    2 2.5e-12     220       2     150       0    10.8     139    8.18    0.94    0.94 7.0e-01    1.75    0.84    1.00 8.6e-01 
    121     3.2    2 2.7e-12     240       2     150       0    14.6     135    8.18   0.908   0.908 5.0e-01    2.17    1.55    1.00 5.1e-01 
    131     3.5    2 2.3e-13     260       2     150       0    16.9     133    8.18   0.886   0.886 4.2e-01    2.40    1.91    1.00 3.3e-01 
    141     3.7    1 8.1e-09     280       2     150       0    16.9     133    8.18   0.867   0.867 4.1e-01    2.41    1.94    1.00 2.7e-01 
    151     3.9    1 3.7e-09     300       2     150       0    16.9     133    8.18    0.85    0.85 4.1e-01    2.42    1.96    1.00 2.1e-01 
    161       4    1 2.1e-09     320       2     150       0    16.8     133    8.18   0.836   0.836 4.0e-01    2.43    1.98    1.00 1.7e-01 
    171     4.2    1 1.3e-09     340       2     150       0    16.8     133    8.18   0.826   0.826 4.0e-01    2.43    1.99    1.00 1.3e-01 
    181     4.4    1 7.5e-10     360       2     150       0    16.8     133    8.18   0.817   0.817 4.0e-01    2.44    2.00    1.00 1.0e-01 
    191     4.5    1 4.5e-10     380       2     150       0    16.8     133    8.18    0.81    0.81 3.9e-01    2.44    2.01    1.00 8.0e-02 
     it  telaps newt     res   t[ms]  dt[ms]  Ip[kA] Icd[kA] Ibs[kA] Ioh[kA]      qe    qmin      q0   Vl[V] Te0[keV] Ti0[keV] ne0[e19]   f_ss  
    201     4.7    1 2.7e-10     400       2     150       0    16.8     133    8.18   0.805   0.805 3.9e-01    2.44    2.01    1.00 6.2e-02 

Plots

subplot(211)
plot(out.time,out.Ip(end,:)/1e6,'b',...
out.time,out.Pec/1e6,'k--',...
out.time,out.Pnbe/1e6,'k',...
out.time,out.ne(1,:)/1e19,'m'); legend('I_p [MA]','P_{EC} [MW]','P_{NB,el} [MW]','n_{e0,19}');
subplot(212)
plot(out.time,out.te(1,:),'b',out.time,out.ti(1,:),'r');legend('T_{e0}','T_{i0}');