From 4f61df785e2fb39033703152b83db5507b9a904c Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Tue, 26 Mar 2019 13:35:47 +0000
Subject: [PATCH] fix profiles_1d psi

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11645 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m | 7 ++++---
 crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m | 4 ++--
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m b/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m
index 710a5c3d..e931cbb3 100644
--- a/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m
+++ b/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m
@@ -247,6 +247,7 @@ profiles_1d.f = gdat(params_equilibrium.shot,'rbphi_rho','machine',machine);
 profiles_1d.phi = gdat(params_equilibrium.shot,'phi_tor','machine',machine);
 profiles_1d.pressure = gdat(params_equilibrium.shot,'pressure','machine',machine);
 % psi = gdat(params_equilibrium.shot,'psi_rho','machine',machine); % (could take from .x of any like rhotor and psi_axis, psi_edge from global_quantities)
+profiles_1d.psi.data = temp_2d.equil.psi;
 profiles_1d.q = gdat(params_equilibrium.shot,'q_rho','machine',machine);
 profiles_1d.rho_tor = gdat(params_equilibrium.shot,'rhotor','machine',machine);
 %rho_tor_norm = gdat(params_equilibrium.shot,'rhotor_norm','machine',machine); % from rho_tor
@@ -265,6 +266,7 @@ profiles_1d.volume = gdat(params_equilibrium.shot,'volume_rho','machine',machine
 
 profiles_1d_fieldnames = fieldnames(profiles_1d);
 special_fields = {'geometric_axis', 'rho_tor_norm', 'psi'}; % fields needing non-automatic treatments
+special_fields = {'geometric_axis', 'rho_tor_norm'}; % fields needing non-automatic treatments
 for it=1:length(ids_equilibrium.time)
   for i=1:length(profiles_1d_fieldnames)
     if ~any(strcmp(profiles_1d_fieldnames{i},special_fields))
@@ -280,15 +282,14 @@ for it=1:length(ids_equilibrium.time)
     end
   end
 end
-
 % special cases
 nrho = length(profiles_1d.rho_tor.x);
 ntime = length(temp.psi_axis.data);
 for it=1:length(ids_equilibrium.time)
   ids_equilibrium.time_slice{it}.profiles_1d.rho_tor_norm = ids_equilibrium.time_slice{it}.profiles_1d.rho_tor./ ...
       ids_equilibrium.time_slice{it}.profiles_1d.rho_tor(end);
-  ids_equilibrium.time_slice{it}.profiles_1d.psi = (1-profiles_1d.rho_tor.x.^2).*temp.psi_axis.data(it) + ...
-      global_quantities.psi_boundary.data(it);
+  % ids_equilibrium.time_slice{it}.profiles_1d.psi = temp.psi_axis.data(it) + ...
+  %     profiles_1d.rho_tor.x(:,it).^2.*(global_quantities.psi_boundary.data(it)-temp.psi_axis.data(it));
 end
 
 %
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
index 4a35c83c..cff57510 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
@@ -241,8 +241,8 @@ ntime = length(temp.psi_axis.data);
 for it=1:length(ids_equilibrium.time)
   ids_equilibrium.time_slice{it}.profiles_1d.rho_tor_norm = ids_equilibrium.time_slice{it}.profiles_1d.rho_tor./ ...
       ids_equilibrium.time_slice{it}.profiles_1d.rho_tor(end);
-  ids_equilibrium.time_slice{it}.profiles_1d.psi = (1-profiles_1d.rho_tor.x.^2).*temp.psi_axis.data(it) + ...
-      global_quantities.psi_boundary.data(it);
+  ids_equilibrium.time_slice{it}.profiles_1d.psi = temp.psi_axis.data(it) + ...
+      profiles_1d.rho_tor.x.^2.*(global_quantities.psi_boundary.data(it)-temp.psi_axis.data(it));
 end
 
 %
-- 
GitLab