diff --git a/crpptbx/AUG/aug_requests_mapping.m b/crpptbx/AUG/aug_requests_mapping.m index 92f32ef1ea1ab630f7b29d268b6e845eca2e6b94..92a991d38293cc1906e4debe081f07ed6a8446e9 100644 --- a/crpptbx/AUG/aug_requests_mapping.m +++ b/crpptbx/AUG/aug_requests_mapping.m @@ -357,14 +357,14 @@ switch lower(data_request) 'gdat_tmp=gdat_aug(shot,params_eff);ij=find(~isnan(gdat_tmp.data));' ... 'tmp_data=interpos(gdat_tmp.t,gdat_tmp.data,-3e4);' ... 'gdat_tmp.data_smooth = tmp_data;gdat_tmp.gdat_request=''vloop'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;']; - case 'volume' + case {'volume', 'volume_edge'} mapping.label = 'Volume'; mapping.timedim = 1; mapping.method = 'signal'; mapping.expression = [{'FPG'},{'Vol'},{'AUGD'}]; case 'volume_rho' mapping.timedim = 2; - mapping.label = 'volume\_norm'; + mapping.label = 'Volume'; mapping.method = 'switchcase'; case 'wmhd' mapping.label = 'Wmhd'; diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m index 0c3bc45a2abb5f9597fbe2a1c973cdda2698ef40..b86a199acd90f4482d22b198d499e292f02315a6 100644 --- a/crpptbx/AUG/gdat_aug.m +++ b/crpptbx/AUG/gdat_aug.m @@ -1163,13 +1163,15 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.x(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhopolnorm(:,iaaa); gdat_data.dim{1} = gdat_data.x; gdat_data.dimunits{1} = 'rhopolnorm'; - gdat_data.grids_1d.rhopolnorm = gdat_data.x; - gdat_data.grids_1d.psi = gdat_data.(lower(node_child_nameeff)).psi; - gdat_data.grids_1d.psi(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).psi(:,iaaa); - gdat_data.grids_1d.rhotornorm = gdat_data.(lower(node_child_nameeff)).rhotornorm; - gdat_data.grids_1d.rhotornorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhotornorm(:,iaaa); - gdat_data.grids_1d.rhovolnorm = gdat_data.(lower(node_child_nameeff)).rhovolnorm; - gdat_data.grids_1d.rhovolnorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhovolnorm(:,iaaa); + gdat_data2 = get_grids_1d(gdat_data,2,1,gdat_params.nverbose); + gdat_data.grids_1d = gdat_data2.grids_1d; +% $$$ gdat_data.grids_1d.rhopolnorm = gdat_data.x; +% $$$ gdat_data.grids_1d.psi = gdat_data.(lower(node_child_nameeff)).psi; +% $$$ gdat_data.grids_1d.psi(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).psi(:,iaaa); +% $$$ gdat_data.grids_1d.rhotornorm = gdat_data.(lower(node_child_nameeff)).rhotornorm; +% $$$ gdat_data.grids_1d.rhotornorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhotornorm(:,iaaa); +% $$$ gdat_data.grids_1d.rhovolnorm = gdat_data.(lower(node_child_nameeff)).rhovolnorm; +% $$$ gdat_data.grids_1d.rhovolnorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhovolnorm(:,iaaa); gdat_data.data_fullpath = [gdat_data.data_fullpath ' projected on equilibrium ' gdat_data.gdat_params.equil]; @@ -1806,6 +1808,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.dim{2} = gdat_data.t; gdat_data.dimunits{1} = 'rhopolnorm'; gdat_data.dimunits{2} = 'time [s]'; + gdat_data.volume_edge = gdat_data.vol(end,:); if strcmp(data_request_eff,'volume_rho') gdat_data.data = gdat_data.vol; gdat_data.units = Vol.units; @@ -1826,6 +1829,8 @@ elseif strcmp(mapping_for_aug.method,'switchcase') psi_lcfs(it)= psi_it(end); gdat_data.x(:,it) = sqrt(abs((psi_it-psi_axis(it)) ./(psi_lcfs(it)-psi_axis(it)))); end + % always provide rhotor_edge so field always exists + gdat_data.rhotor_edge = gdat_data.rhotor(end,:); if strcmp(data_request_eff,'rhotor') gdat_data.data = gdat_data.rhotor; gdat_data.units = 'm'; diff --git a/crpptbx/JET/gdat_jet.m b/crpptbx/JET/gdat_jet.m index 3dfdbe7683f1bba58aaf4fbe67be5d87a32c0b3f..82bc31089e787d8a9401bc6a915421134ba8dacc 100644 --- a/crpptbx/JET/gdat_jet.m +++ b/crpptbx/JET/gdat_jet.m @@ -1431,6 +1431,7 @@ elseif strcmp(mapping_for_jet.method,'switchcase') gdat_data.b0 = interpos(b0.t,b0.data,t,-0.1); if strcmp(data_request_eff,'rhotor_edge') gdat_data.data = sqrt(phi(end,:)./pi./reshape(gdat_data.b0,1,numel(gdat_data.b0))); + gdat_data.rhotor_edge = gdat_data.data; % always provide rhotor_edge so field always exists gdat_data.dim = {t}; gdat_data.t = gdat_data.dim{1}; gdat_data.data_fullpath='sqrt(Phi_edge/pi/B0) from {''ppf''},{''EFIT''},{''FTOR''}'; @@ -1438,6 +1439,7 @@ elseif strcmp(mapping_for_jet.method,'switchcase') gdat_data.dimunits{1} = 's'; elseif strcmp(data_request_eff,'rhotor') gdat_data.data = sqrt(phi./(ones(length(x),1)*reshape(gdat_data.b0,1,numel(gdat_data.b0)))./pi); + gdat_data.rhotor_edge = gdat_data.data(end,:); gdat_data.dim{1} = x; gdat_data.dim{2} = t; gdat_data.x = x; @@ -1485,13 +1487,12 @@ elseif strcmp(mapping_for_jet.method,'switchcase') gdat_data.t = t; gdat_data.dim = [{gdat_data.x}, {gdat_data.t}]; gdat_data.dimunits = [{'rhopol'}, {'s'}]; + gdat_data.volume_edge = volpsi(end,:); switch data_request_eff case 'volume_rho' gdat_data.data = volpsi; - gdat_data.volume_edge = volpsi(end,:); case 'rhovol' gdat_data.data = sqrt(volpsi./(ones(length(gdat_data.x),1)*reshape(volpsi(end,:),1,length(gdat_data.t)))); - gdat_data.volume_edge = volpsi(end,:); end otherwise disp(['data_request_eff = ' data_request_eff ' not defined in this section']); diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index ea72c068798591e6de9ab89293965e2160a2fdfa..ee6795efd54e3a5313d69d48035bc0f27755d232 100644 --- a/crpptbx/TCV/gdat_tcv.m +++ b/crpptbx/TCV/gdat_tcv.m @@ -1712,6 +1712,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.t = phi_tor.t; ij=find(isfinite(b0.data)); gdat_data.b0 = interpos(b0.t(ij),b0.data(ij),gdat_data.t); + % always provide rhotor_edge so field always exists gdat_data.rhotor_edge = sqrt(phi_tor.data(end,:)./pi./reshape(gdat_data.b0,1,numel(gdat_data.b0)))'; if strcmp(data_request_eff,'rhotor_edge') gdat_data.data = gdat_data.rhotor_edge; @@ -1772,6 +1773,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if strcmp(data_request_eff,'volume') if length(gdat_data.dim >=2) gdat_data.data = tracetdi.data(end,:); + gdat_data.volume_edge = gdat_data.data; gdat_data.dim{1} = tracetdi.dim{2}; gdat_data.dimunits{1} = tracetdi.dimunits{2}; else @@ -1788,11 +1790,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.dim = tracetdi.dim; gdat_data.x = gdat_data.dim{1}; gdat_data.dimunits = tracetdi.dimunits; + % to always have field volume_edge + gdat_data.volume_edge = gdat_data.data(end,:); if strcmp(data_request_eff,'volume_rho') gdat_data.request_description = 'volume(rho)'; gdat_data.data_fullpath=['Volume(rho) from ' nodenameeff]; elseif strcmp(data_request_eff,'rhovol') - gdat_data.volume_edge = gdat_data.data(end,:); gdat_data.data = sqrt(gdat_data.data./repmat(reshape(gdat_data.volume_edge,1,size(gdat_data.data,2)),size(gdat_data.data,1),1)); gdat_data.data_fullpath=['sqrt(volume/volume(edge) from ' nodenameeff]; gdat_data.request_description = 'sqrt(volume(rho)/volume(edge))'; diff --git a/crpptbx/get_grids_1d.m b/crpptbx/get_grids_1d.m index 57d2be4f157a3262c53b50ae829869aba14557f1..fbda005d3e50b5cae3bcd4d76df8296d42ff25dd 100644 --- a/crpptbx/get_grids_1d.m +++ b/crpptbx/get_grids_1d.m @@ -28,16 +28,20 @@ end params_eff = gdat_data.gdat_params;params_eff.doplot=0; params_eff.data_request='rhotor_norm'; rhotor_norm = gdat(gdat_data.shot,params_eff); +ndim_x_rhotor = length(find(size(rhotor_norm.x)>1)); params_eff.data_request='rhovol'; rhovol = gdat(gdat_data.shot,params_eff); +ndim_x_rhovol = length(find(size(rhotor_norm.x)>1)); params_eff.data_request='psi_axis'; psi_axis = gdat(gdat_data.shot,params_eff); -psi0 = interpos(psi_axis.t,psi_axis.data,gdat_data.t,-0.01); +params_eff.data_request='psi_edge'; +psi_edge = gdat(gdat_data.shot,params_eff); +psi0_edge = interpos(63,psi_axis.t,psi_axis.data-psi_edge.data,gdat_data.t,-0.01); if (nbdim_x == 1) - gdat_data.grids_1d.psi = gdat_data.grids_1d.rhopolnorm.^2*reshape(psi0,1,length(psi0)); + gdat_data.grids_1d.psi = gdat_data.grids_1d.rhopolnorm.^2*reshape(psi0_edge,1,length(psi0_edge)); elseif (nbdim_x == 2) - gdat_data.grids_1d.psi = gdat_data.grids_1d.rhopolnorm.^2.*repmat(reshape(psi0,1,length(psi0)),size(gdat_data.grids_1d.rhopolnorm,1),1); + gdat_data.grids_1d.psi = gdat_data.grids_1d.rhopolnorm.^2.*repmat(reshape(psi0_edge,1,length(psi0_edge)),size(gdat_data.grids_1d.rhopolnorm,1),1); else if nverbose>=0; disp(['option: nbdim_x = ' numstr(nbdim_x) ' not implemented, check with O. Sauter']); end return @@ -58,21 +62,37 @@ for it=1:length(gdat_data.t) end if (nbdim_x == 1) if length(ii)==length(gdat_data.grids_1d.rhopolnorm) - gdat_data.grids_1d.rhotornorm(:,it)=interpos(rhotor_norm.x,rhotor_norm.data(:,it_rt_eff),gdat_data.grids_1d.rhopolnorm); + if ndim_x_rhotor==1 + gdat_data.grids_1d.rhotornorm(:,it)=interpos(-13,rhotor_norm.x,rhotor_norm.data(:,it_rt_eff),gdat_data.grids_1d.rhopolnorm); + else + gdat_data.grids_1d.rhotornorm(:,it)=interpos(-13,rhotor_norm.x(:,it_rt_eff),rhotor_norm.data(:,it_rt_eff),gdat_data.grids_1d.rhopolnorm); + end if ~isempty(rhovol.x) - gdat_data.grids_1d.rhovolnorm(:,it)=interpos(rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm); + if ndim_x_rhovol==1 + gdat_data.grids_1d.rhovolnorm(:,it)=interpos(-13,rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm); + else + gdat_data.grids_1d.rhovolnorm(:,it)=interpos(-13,rhovol.x(:,it_vol_eff),rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm); + end end end else if length(ii)==size(gdat_data.grids_1d.rhopolnorm,1) - gdat_data.grids_1d.rhotornorm(:,it)=interpos(rhotor_norm.x,rhotor_norm.data(:,it_rt_eff),gdat_data.grids_1d.rhopolnorm(:,it)); + if ndim_x_rhotor==1 + gdat_data.grids_1d.rhotornorm(:,it)=interpos(-13,rhotor_norm.x,rhotor_norm.data(:,it_rt_eff),gdat_data.grids_1d.rhopolnorm(:,it)); + else + gdat_data.grids_1d.rhotornorm(:,it)=interpos(-13,rhotor_norm.x(:,it_rt_eff),rhotor_norm.data(:,it_rt_eff),gdat_data.grids_1d.rhopolnorm(:,it)); + end if ~isempty(rhovol.x) - gdat_data.grids_1d.rhovolnorm(:,it)=interpos(rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(:,it)); + if ndim_x_rhovol==1 + gdat_data.grids_1d.rhovolnorm(:,it)=interpos(-13,rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(:,it)); + else + gdat_data.grids_1d.rhovolnorm(:,it)=interpos(-13,rhovol.x(:,it_vol_eff),rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(:,it)); + end end end end end -gdat_data.grids_1d.rhotor_edge=interpos(rhotor_norm.t',rhotor_norm.rhotor_edge,gdat_data.t',-0.01); -gdat_data.grids_1d.volume_edge=interpos(rhovol.t',rhovol.volume_edge,gdat_data.t',-0.01); +gdat_data.grids_1d.rhotor_edge=interpos(-63,rhotor_norm.t',rhotor_norm.rhotor_edge,gdat_data.t',-0.01); +gdat_data.grids_1d.volume_edge=interpos(-63,rhovol.t',rhovol.volume_edge,gdat_data.t',-0.01);