From f2990598445251e6e3775122885b377c80da32f3 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Wed, 13 Mar 2019 15:04:24 +0000 Subject: [PATCH] add various ec data output first in ec_data git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11569 d63d8f72-b253-0410-a779-e742ad2e26cf --- crpptbx/TCV/gdat_tcv.m | 87 +++++++++++++++++++++++------- crpptbx/TCV/tcv_requests_mapping.m | 12 ++--- 2 files changed, 75 insertions(+), 24 deletions(-) diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index ac276d35..45efc732 100644 --- a/crpptbx/TCV/gdat_tcv.m +++ b/crpptbx/TCV/gdat_tcv.m @@ -1129,7 +1129,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'pdens','icds'} + case {'ec_data', 'aux', 'h_cd', 'nbi_data', 'ic_data', 'lh_data'} % note: same time array for all at main.data level, then individual at .ec, .nbi levels % At this stage fill just eccd, later add nbi sources_avail = {'ec','nbi'}; % can be set in parameter source @@ -1196,24 +1196,75 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % EC if strcmp(lower(source_icd.ec),'toray') if isempty(gdat_data.gdat_params.trialindx) - % [ p_gyro,icdtot,ECH,ECCD,rho_dep,drho,pmax,icdmax,ECCD_w2] = astra_tcv_EC_exp(shot,time,cd_sign,smooth_pgyro,slices,toray_trialindex) - [pabs_gyro,icdtot,ECH,ECCD,rho_dep_pow,drho_pow,pmax,icdmax,ECCD_w2,rho_dep_icd,drho_icd] = astra_tcv_EC_exp(shot); % 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] = astra_tcv_EC_exp(shot); % centralized function for toray nodes else - [pabs_gyro,icdtot,ECH,ECCD,rho_dep_pow,drho_pow,pmax,icdmax,ECCD_w2,rho_dep_icd,drho_icd] = astra_tcv_EC_exp(shot,[],[],[],[],[],gdat_data.gdat_params.trialindx); % 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] = astra_tcv_EC_exp(shot,[],[],[],[],[],gdat_data.gdat_params.trialindx); % centralized function for toray nodes end data_fullpath = ['from toray nodes using astra_tcv_EC_exp(shot), total icd per gyrotron including effective absorbed power, jcd etc in .extra']; ec_help = 'from toray icdint with extracting of effective Icd for given launcher depending on nb rays used'; - if isfield(icdtot,'tgrid'); icdtot.t = icdtot.tgrid; end - if isfield(icdtot,'data'); - icdtot.data = icdtot.data * 1e6; % MA -> A - icdtot.data = icdtot.data'; - icdtot.data(:,end+1) = sum(icdtot.data,2); - end + % All EC related quantities + % power deposition related: + ec_data.p_abs_plasma = pabs_gyro.data * 1e6; + ec_data.p_abs_plasma(end+1,:) = nansum(ec_data.p_abs_plasma,1); + ec_data.p_abs_plasma_label = [strrep(pabs_gyro.comment,'MW','W') ' ; last index is total']; + ec_data.p_dens = pow_dens.data * 1e6; + ec_data.p_dens(:,end+1,:) = nansum(ec_data.p_dens,2); + ec_data.p_dens_label = [strrep(pow_dens.comment,'MW','W') ' ; last index is total']; + ec_data.max_pow_dens = pmax.data * 1e6; + ec_data.max_pow_dens_label = strrep(pmax.comment,'MW','W'); + ec_data.rho_max_pow_dens = rho_dep_pow.data * 1e6; + ec_data.rho_max_pow_dens_label = strrep(rho_dep_pow.comment,'MW','W'); + ec_data.width_pow_dens = drho_pow.data; + ec_data.width_pow_dens_label = drho_pow.comment; + % current drive deposition related: + ec_data.cd_tot = icdtot.data * 1e6; + ec_data.cd_tot(end+1,:) = nansum(ec_data.cd_tot,1); + ec_data.cd_tot_label = [strrep(icdtot.comment,'MA','A') ' ; last index is total']; + ec_data.cd_dens = currentdrive_dens.data * 1e6; + ec_data.cd_dens(:,end+1,:) = nansum(ec_data.cd_dens,2); + ec_data.cd_dens_label = [strrep(currentdrive_dens.comment,'MA','A') ' ; last index is total']; + ec_data.max_cd_dens = icdmax.data * 1e6; + ec_data.max_cd_dens_label = strrep(icdmax.comment,'MA','A'); + ec_data.rho_max_cd_dens = rho_dep_icd.data; + ec_data.rho_max_cd_dens_label = rho_dep_icd.comment; + ec_data.width_cd_dens = drho_icd.data; + ec_data.width_cd_dens_label = drho_icd.comment; + ec_data.cd_dens_doublewidth = currentdrive_dens_w2.data * 1e6; + ec_data.cd_dens_doublewidth_label = [strrep(currentdrive_dens_w2.comment,'MA','A') ' ; last index is total']; else disp(['source_icd.ec = ' source_icd.ec ' not yet implemented, ask O. Sauter']) + ec_data.p_abs_plasma = []; + ec_data.p_abs_plasma(end+1,:) = []; + ec_data.p_abs_plasma_label = []; + ec_data.p_dens = []; + ec_data.p_dens(end+1,:) = []; + ec_data.p_dens_label = []; + ec_data.max_pow_dens = []; + ec_data.max_pow_dens_label = []; + ec_data.rho_max_pow_dens = []; + ec_data.rho_max_pow_dens_label = []; + ec_data.width_pow_dens = []; + ec_data.width_pow_dens_label = []; + % current drive deposition related: + ec_data.cd_tot = []; + ec_data.cd_tot(end+1,:) = []; + ec_data.cd_tot_label = []; + ec_data.cd_dens = []; + ec_data.cd_dens(:,end+1,:) = []; + ec_data.cd_dens_label = []; + ec_data.max_cd_dens = []; + ec_data.max_cd_dens_label = []; + ec_data.rho_max_cd_dens = []; + ec_data.rho_max_cd_dens_label = []; + ec_data.width_cd_dens = []; + ec_data.width_cd_dens_label = []; + ec_data.cd_dens_doublewidth = []; + ec_data.cd_dens_doublewidth_label = []; + gdat_data.ec.ec_data = ec_data; return end - if isempty(icdtot.data) || isempty(icdtot.t) || ischar(icdtot.data) + gdat_data.ec.ec_data = ec_data; + if isempty(icdtot.data) || isempty(icdtot.tgrid) || ischar(icdtot.data) if (gdat_params.nverbose>=1) warning(['problems loading data for ' source_icd.ec ... ' for data_request= ' data_request_eff]); @@ -1221,7 +1272,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') else gdat_data.ec.data = icdtot.data; gdat_data.ec.units = 'A'; - gdat_data.ec.dim{1} = icdtot.t; + gdat_data.ec.dim{1} = icdtot.tgrid; gdat_data.ec.dim{2} = [1:size(gdat_data.ec.data,2)]; gdat_data.ec.dimunits={'s','launcher i, total'}; gdat_data.ec.t=gdat_data.ec.dim{1}; @@ -1230,7 +1281,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.ec.label='I_{cd}'; gdat_data.ec.help = ec_help; % add to main, assume 1st one so just use this time base - gdat_data.data(:,end+1) = gdat_data.ec.data(:,end); + gdat_data.data(end+1,:) = gdat_data.ec.data(end,:); gdat_data.t = gdat_data.ec.t; gdat_data.x(end+1) = 1; gdat_data.label{end+1}=gdat_data.ec.label; % label was defined in tcv_mapping_request as char so replace 1st time @@ -1260,12 +1311,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end % % add all to last index of .data(:,i) - gdat_data.data(:,end+1) = sum(gdat_data.data(:,:),2); - gdat_data.x(end+1) = size(gdat_data.data,2); + gdat_data.data(end+1,:) = sum(gdat_data.data(:,:),1); + gdat_data.x(end+1) = size(gdat_data.data,1); gdat_data.label{end+1}='total current'; - gdat_data.dim{1} = gdat_data.t; - gdat_data.dim{2} = gdat_data.x; - gdat_data.dimunits = {'s', 'index for each source + total CD'}; + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits = {'index for each source + total CD', 's'}; gdat_data.data_fullpath = 'see in individual source substructure'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/crpptbx/TCV/tcv_requests_mapping.m b/crpptbx/TCV/tcv_requests_mapping.m index c4f6821c..1f989879 100644 --- a/crpptbx/TCV/tcv_requests_mapping.m +++ b/crpptbx/TCV/tcv_requests_mapping.m @@ -131,10 +131,10 @@ switch lower(data_request) mapping.label = 'Halpha'; mapping.method = 'switchcase'; mapping.expression = ''; - case 'icds' - mapping.timedim = 1; - mapping.label = 'various driven current'; - mapping.method = 'switchcase'; +% $$$ case 'icds' +% $$$ mapping.timedim = 1; +% $$$ mapping.label = 'various driven current'; +% $$$ mapping.method = 'switchcase'; case 'ids' mapping.timedim = 1; mapping.label = 'ids ala imas'; @@ -229,9 +229,9 @@ switch lower(data_request) 'gdat_tmp2=gdat_tcv(shot,params_eff);ij=find(gdat_tmp2.data==0);gdat_tmp2.data(ij)=NaN;' ... 'tmp_data2=interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t,[],NaN);' ... 'gdat_tmp.data = gdat_tmp.data./(tmp_data2+1e-5);']; - case {'pdens'} + case {'ec_data', 'aux', 'h_cd', 'nbi_data', 'ic_data', 'lh_data'} mapping.timedim = 1; - mapping.label = 'various Pdens'; + mapping.label = 'various Pdens, Icd, jcd'; mapping.method = 'switchcase'; case {'phi_tor', 'phitor', 'toroidal_flux'} mapping.timedim = 2; -- GitLab