diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m index da75ccc23d3497ea87fc4ea135d8d00b4a70ff0c..0478fbc4abddd0adab20e523f213b2f92a988086 100644 --- a/matlab/TCV/gdat_tcv.m +++ b/matlab/TCV/gdat_tcv.m @@ -1439,6 +1439,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') rethrow(ME); end end + % set default inputs if not given if ~isfield(gdat_data.gdat_params,'error_bar') || isempty(gdat_data.gdat_params.error_bar) gdat_data.gdat_params.error_bar = 'delta'; end @@ -1572,9 +1573,17 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % EC if strcmp(lower(source_icd.ec),'toray') if isempty(gdat_data.gdat_params.trialindx) - [pabs_gyro,icdtot,pow_dens,currentdrive_dens,rho_dep_pow,drho_pow,pmax,icdmax,currentdrive_dens_w2,rho_dep_icd,drho_icd] = astra_tcv_EC_exp(shot); % centralized function for toray nodes + % centralized function for toray nodes + [pabs_gyro,icdtot,pow_dens,currentdrive_dens,rho_dep_pow,drho_pow,... + pmax,icdmax,currentdrive_dens_w2,rho_dep_icd,drho_icd,... + ~,power_integrated,currentdrive_integrated] = ... + astra_tcv_EC_exp(shot,[],[],[],[],[],[],1); else - [pabs_gyro,icdtot,pow_dens,currentdrive_dens,rho_dep_pow,drho_pow,pmax,icdmax,currentdrive_dens_w2,rho_dep_icd,drho_icd] = astra_tcv_EC_exp(shot,[],[],[],[],[],gdat_data.gdat_params.trialindx); % centralized function for toray nodes + % centralized function for toray nodes + [pabs_gyro,icdtot,pow_dens,currentdrive_dens,rho_dep_pow,drho_pow,... + pmax,icdmax,currentdrive_dens_w2,rho_dep_icd,drho_icd,... + ~,power_integrated,currentdrive_integrated] = ... + astra_tcv_EC_exp(shot,[],[],[],[],[],gdat_data.gdat_params.trialindx,1); end if gdat_data.mapping_for.tcv.gdat_timedim ==2 tgrid_to_change = {'pabs_gyro','icdtot','pow_dens','currentdrive_dens','rho_dep_pow','drho_pow','pmax', ... @@ -1585,8 +1594,13 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end ec_help = 'from toray icdint with extracting of effective Icd for given launcher depending on nb rays used'; % All EC related quantities, each substructure should have at least fields data,x,t,units,dim,dimunits,label to be copied onto gdat_data - launchers_label = {'1','2','3','4','5','6','7','8','9','tot'}; - launchers_grid = [1:10]'; + if size(pabs_gyro.data,1)>9 + launchers_label = {'1','2','3','4','5','6','7','8','9','10','11','tot'}; + else + launchers_label = {'1','2','3','4','5','6','7','8','9','tot'}; + end + launchers_grid = [1:size(pabs_gyro.data,1)+1]'; + % power deposition related: ec_data.p_abs_plasma.data = pabs_gyro.data * 1e6; ec_data.p_abs_plasma.data(end+1,:) = sum(ec_data.p_abs_plasma.data,1,'omitnan'); @@ -1607,6 +1621,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ec_data.p_dens.dim = {ec_data.p_dens.x, launchers_grid, ec_data.p_dens.t}; ec_data.p_dens.dimunits = {'rhotor_norm', launchers_label, 's'}; % + ec_data.p_integrated.data = power_integrated.data * 1e6; + ec_data.p_integrated.data(:,end+1,:) = sum(ec_data.p_integrated.data,2,'omitnan'); + ec_data.p_integrated.label = [strrep(power_integrated.comment,'MW','W') ' ; last index is total']; + ec_data.p_integrated.units = 'W'; + ec_data.p_integrated.x = power_integrated.rgrid'; + ec_data.p_integrated.rhotor_norm = ec_data.p_integrated.x; + ec_data.p_integrated.t = power_integrated.tgrid; + ec_data.p_integrated.dim = {ec_data.p_integrated.x, launchers_grid, ec_data.p_integrated.t}; + ec_data.p_integrated.dimunits = {'rhotor_norm', launchers_label, 's'}; + % ec_data.max_pow_dens.data = pmax.data * 1e6; ec_data.max_pow_dens.label = strrep(pmax.comment,'MW','W'); ec_data.max_pow_dens.units = 'W/m^3'; @@ -1630,6 +1654,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ec_data.width_pow_dens.t = drho_pow.tgrid; ec_data.width_pow_dens.dim = {ec_data.width_pow_dens.t}; ec_data.width_pow_dens.dimunits = {'s'}; + % current drive deposition related: ec_data.cd_tot.data = icdtot.data * 1e6; ec_data.cd_tot.data(end+1,:) = sum(ec_data.cd_tot.data,1,'omitnan'); @@ -1648,7 +1673,17 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ec_data.cd_dens.rhotor_norm = ec_data.cd_dens.x; ec_data.cd_dens.t = currentdrive_dens.tgrid; ec_data.cd_dens.dim = {ec_data.cd_dens.x, launchers_grid, ec_data.cd_dens.t}; - ec_data.cd_dens.dimunits = {'rhotor_norm', launchers_label, 's'}; + ec_data.cd_dens.dimunits = {'rhotor_norm', launchers_label, 's'}; + % + ec_data.cd_integrated.data = currentdrive_integrated.data * 1e6; + ec_data.cd_integrated.data(:,end+1,:) = sum(ec_data.cd_integrated.data,2,'omitnan'); + ec_data.cd_integrated.label = [strrep(currentdrive_integrated.comment,'MA','A') ' ; last index is total']; + ec_data.cd_integrated.units = 'A'; + ec_data.cd_integrated.x = currentdrive_integrated.rgrid'; + ec_data.cd_integrated.rhotor_norm = ec_data.cd_integrated.x; + ec_data.cd_integrated.t = currentdrive_integrated.tgrid; + ec_data.cd_integrated.dim = {ec_data.cd_integrated.x, launchers_grid, ec_data.cd_integrated.t}; + ec_data.cd_integrated.dimunits = {'rhotor_norm', launchers_label, 's'}; % ec_data.max_cd_dens.data = icdmax.data * 1e6; ec_data.max_cd_dens.label = strrep(icdmax.comment,'MA','A'); @@ -1679,6 +1714,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') for subfields={'x','rhotor_norm','t','dim','dimunits','units'} ec_data.cd_dens_doublewidth.(subfields{1}) = ec_data.cd_dens.(subfields{1}); end + else disp(['source_icd.ec = ' source_icd.ec ' not yet implemented, ask O. Sauter']) ec_data.p_abs_plasma = []; @@ -1687,6 +1723,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ec_data.p_dens = []; ec_data.p_dens(end+1,:) = []; ec_data.p_dens_label = []; + ec_data.p_integrated = []; + ec_data.p_integrated(end+1,:) = []; + ec_data.p_integrated_label = []; ec_data.max_pow_dens = []; ec_data.max_pow_dens_label = []; ec_data.rho_max_pow_dens = []; @@ -1700,6 +1739,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ec_data.cd_dens = []; ec_data.cd_dens(:,end+1,:) = []; ec_data.cd_dens_label = []; + ec_data.cd_integrated = []; + ec_data.cd_integrated(:,end+1,:) = []; + ec_data.cd_integrated_label = []; ec_data.max_cd_dens = []; ec_data.max_cd_dens_label = []; ec_data.rho_max_cd_dens = [];