From d99e6a7ce996d9bfa09077052ccc5539afcac066 Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Sat, 12 Sep 2015 14:18:12 +0000
Subject: [PATCH] add powers and q_rho, changed names with _rho

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@4989 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx_new/TCV/gdat_tcv.m                   |  88 +++++++++++++++++--
 crpptbx_new/TCV/tcv_requests_mapping.m       |   1 +
 crpptbx_new/gdat_data_request_names_rho.xlsx | Bin 12069 -> 12073 bytes
 3 files changed, 84 insertions(+), 5 deletions(-)

diff --git a/crpptbx_new/TCV/gdat_tcv.m b/crpptbx_new/TCV/gdat_tcv.m
index 201b04d8..d77241c7 100644
--- a/crpptbx_new/TCV/gdat_tcv.m
+++ b/crpptbx_new/TCV/gdat_tcv.m
@@ -236,6 +236,15 @@ if liuqe_version==2 || liuqe_version==3
   substr_liuqe = ['_' num2str(liuqe_version)];
 end
 
+% special treatment for model shot=-1 or preparation shot >=100'000
+begstr = '';
+if shot==-1 || shot>=100000
+  % requires FBTE
+  liuqe_version = -1;
+  begstr = 'tcv_eq( "';
+  substr_liuqe = '", "FBTE" )';
+end
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 % Specifications on how to get the data provided in tcv_requests_mapping
@@ -244,8 +253,12 @@ gdat_data.label = mapping_for_tcv.label;
 
 ishot=NaN;
 if do_mdsopen_mdsclose
-  mdsdefaultserver tcv1.epfl.ch; % should be in tcv general path, but set-it in the meantime...
-  ishot = mdsopen(shot); % if ishot equal to shot, then mdsclose at the end
+  % mdsdefaultserver tcv1.epfl.ch; % should be in tcv general path, but set-it in the meantime...
+  if liuqe_version==-1
+    ishot = mdsopen('pcs', shot);
+  else
+    ishot = mdsopen(shot); % if ishot equal to shot, then mdsclose at the end
+  end
   if ishot~=shot
     warning(['cannot open shot= ' num2str(shot)])
     return
@@ -273,7 +286,14 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
       return
     end
   else
-    eval_expr = ['tdi(''' mapping_for_tcv.expression substr_tdi ''');'];
+    if liuqe_version==-1
+      if strcmp(lower(mapping_for_tcv.expression(1:8)),'\results')
+        mapping_for_tcv_expression_eff = mapping_for_tcv.expression(11:end);
+      end
+      eval_expr = ['tdi(''' begstr mapping_for_tcv_expression_eff substr_liuqe ''');']
+    else
+      eval_expr = ['tdi(''' mapping_for_tcv.expression substr_tdi ''');'];
+    end
     aatmp=eval(eval_expr);
   end
   if isempty(aatmp.data) || isempty(aatmp.dim) % || ischar(aatmp.data) (to add?)
@@ -403,7 +423,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     % B0 at R0=0.88
     R0EXP=0.88;
     if liuqe_version==-1
-      mdsopen( 'pcs', shot); %synthetic shot generated with FBT and MGAMS.
       nodenameeff = 'tcv_eq("BZERO","FBTE")';
       tracetdi=tdi(nodenameeff);
       gdat_data.data = tracetdi.data;
@@ -455,7 +474,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     gdat_data.data = 100.*beta.data ./ abs(ip_t).*1.e6 .* abs(b0_t) .* a_minor_t;
     gdat_data.data_fullpath='100*beta/ip*1e6*b0*a_minor, each from gdat_tcv';
     gdat_data.units = '';
-    gdat_data.dimunits = beta.dimunits;
+    gdat_data.dimunits = 's';
     
    case {'cxrs'}
     %not yet finished, just started
@@ -697,6 +716,65 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
       gdat_data.error_bar = 1.6022e-19 .* (gdat_data.ne.data .* gdat_data.te.error_bar ...
           + gdat_data.te.data .* gdat_data.ne.error_bar);
     end
+
+   case {'powers'}
+    % note: same time array for all main, ec, ohm, nbi, ...
+    % At this stage fill just ech, later add nbi
+    nodenameeff='\results::toray.input:p_gyro';
+    tracetdi=tdi(nodenameeff);
+    gdat_data.ec.data = tracetdi.data*1e3; % at this stage p_gyro is in kW'
+    gdat_data.ec.units = 'W';
+    gdat_data.ec.dim=tracetdi.dim;
+    gdat_data.ec.dimunits=tracetdi.dimunits;
+    gdat_data.ec.t=tracetdi.dim{1};
+    gdat_data.ec.x=tracetdi.dim{2};
+    gdat_data.ec.data_fullpath=[nodenameeff];
+    gdat_data.ec.label='P_{EC}';
+    % set ec time as reference
+    gdat_data.t = gdat_data.ec.t;
+    gdat_data.dim{1} = gdat_data.t;
+    gdat_data.dimunits{1} = 's';
+    gdat_data.units = 'W';
+    
+    % get ohmic power simply from vloop*Ip (minus sign for TCV)
+    ip=gdat([],'ip');
+    vloop=gdat([],'vloop');
+    tension = -1e5;
+    vloop_smooth=interpos(vloop.t,vloop.data,gdat_data.t,tension);
+    ip_t = interp1(ip.t,ip.data,gdat_data.t);
+    gdat_data.ohm.data = -vloop_smooth.*ip_t;
+    gdat_data.ohm.units = 'W';
+    gdat_data.ohm.dim=gdat_data.dim;
+    gdat_data.ohm.dimunits=gdat_data.dimunits;
+    gdat_data.ohm.t=gdat_data.t;
+    gdat_data.ohm.x=[];
+    gdat_data.ohm.data_fullpath=['-vloop(tens=' num2str(tension,'%.0e') ')*ip, from gdat'];
+    gdat_data.ohm.label='P_{OHM}';
+    
+    % total power from all above
+    gdat_data.data = gdat_data.ec.data(:,10) + gdat_data.ohm.data;
+    gdat_data.data_fullpath=['tot power from EC and ohm'];
+    gdat_data.label = 'P_{tot}=P_{EC}+P_{ohm}';
+
+   case {'q_rho'}
+    % q profile on psi from liuqe
+    nodenameeff='\results::q_psi';
+    if liuqe_version==-1
+      nodenameeff=[begstr 'q_psi' substr_liuqe];
+    end
+    tracetdi=tdi(nodenameeff);
+    gdat_data.data = tracetdi.data;
+    gdat_data.dim = tracetdi.dim;
+    gdat_data.t = gdat_data.dim{2};
+    gdat_data.data_fullpath=[nodenameeff ' on rhopol'];
+    rhopol_eff = ones(size(tracetdi.dim{1}));
+    rhopol_eff(:) = sqrt(linspace(0,1,length(tracetdi.dim{1})));
+    gdat_data.dim{1} = rhopol_eff;
+    gdat_data.dimunits{1} = '';
+    gdat_data.dimunits{2} = 's';
+    gdat_data.units = '';
+    gdat_data.request_description = 'q(rhopol\_norm)';
+
    otherwise
     warning(['switchcase= ' data_request_eff ' not known in gdat_tcv'])
     error_status=901;
diff --git a/crpptbx_new/TCV/tcv_requests_mapping.m b/crpptbx_new/TCV/tcv_requests_mapping.m
index 2478786a..5c40373a 100644
--- a/crpptbx_new/TCV/tcv_requests_mapping.m
+++ b/crpptbx_new/TCV/tcv_requests_mapping.m
@@ -131,6 +131,7 @@ switch lower(data_request)
   mapping.timedim = 2;
   mapping.method = 'switchcase'; % especially since might have option fit, etc
  case 'powers'
+  mapping.timedim = 1;
   mapping.label = 'various powers';
   mapping.method = 'switchcase';
  case 'q0'
diff --git a/crpptbx_new/gdat_data_request_names_rho.xlsx b/crpptbx_new/gdat_data_request_names_rho.xlsx
index a291e3bd6b325ee1e93a860aaa627486929ad29e..7816b8dab8164387a65273c5600312467169ac69 100644
GIT binary patch
delta 2563
zcmV+e3jFn@Ua4NNyc-FaXMLEi2><}Rv&9>K0e|A4m#*skTlNPunFUWpT^HLw^Ox6J
zPj?Nr=d$>j?eu_jziOnagINH+5Ndp&Qy5hBKOM_`=xb&=QKM)&Hw`~Uwjq2~1hD>`
z(a|pFBS=^5Q+<cF1Ir%$-Y}WyZ2Y6_J*8DPFE;<p*Yzt<1#Z^abNaTaiE-2)jl$7z
z9DiNeU;iw=f6f$3(B`Ut4L_{jDqzkUAwyK6+^pXpvT6kx3KP=@2Qac#v4LU0-`+M?
zOARtC{b8okj3SCihsJL+K5TDV0$sW#e111A<8gm78DEE!c0}HmFzdP{d}7NmCVf`*
zyGnH!Sx4_9^Z}pfBMSTBa2g-!8@SSa!+&Qp>g&#q#@GNpn+7L!1YUJV@Yw`8?WAX5
zW=1E@Lt3YIw`K9Y2h~U=G-N!~w(thZ;4jX43=49l+<a1gW&unWWJ3kkZ+BOt+rc+T
z&=o>p!3fBe3z>T$V;AxuAww6j@Hn}4A&CbvaUn|&Wa>gb8^~BMNubkms@D4XoPWYf
zYDiU%W&vcfC3V6WyZ1mCV{-$6$+cb>9S;U!R<N4Q1vezzu;hl%#sG<Idl|PAGobW9
zJeQ$IIdbU<S;|R7#4^qxy2xpKsPd-C;fBN*TKbm6;6x7f<T8;fM=UYeD!BJR7&~(V
z>5APTNMdk9!VODeaAJp=c$wIhBY!vcn9aIGO!%}LNLT0vK|<$-gd3K`;Dio~;xeHt
zM{el6#!AG5u`@T2uFwsFgw72KH!O+42^}`5%Y?2RxuLT%cP|kW#?IV8AVUvULg{46
zoGc8aWhdc=B{4W;sLPCt><h{fTmEbbNCexw<_6KlMdQO3K5j^iffPPsaDO77UMh0s
zh(*pevwH~%S#6vfNLTEQ6B|1>B*s8uCk7{WCA=>)?b;LD@c54B!|>vVn6CJ(8%uz&
zBxoTNP>ajK$7CjvM4=H~R1<}~{v!sKVY|+G3LvJF1KHJ-$*+YSPQz2;>3qsc)e<q9
zIhUu4NypIWF^2;o$UPXL$bXNkM_*Sg;ss(z)kI6IFZ-0PT2hS5%Ec68=#h+q6@zh@
z<H`yB(ClHvJ=m_=6~uL7;u{Y0vqX$1S1zU|L#Y)*zPlpEVMWxH<AM_15N#nWiLflG
z#m$V1smf4_#*ptUh@l*eMP?jVmbR-lGlaH846Ut))Ma=vd8s|I{eOjB7T^0YTv{Ne
zOJZ6#EeDNsZ7Zoznb^v+7O2jI@4tR{WzR9B0*v^jRp`NpJUFg3t(%sE#&OGm5SQ4>
z!vU3-ALBr($B3=<`_N#VdcdzV5Yw3lTtY6e5#1?-%%m8%9#EnAF%G1RjD*hcVE83R
zcwB2Dq}>S@*3t@?h=1)131Vo4IHW)$sz5))iuUAIh=}hLJ`Ag*bHsFIhIM0Chp;4Q
zAskSPlNk|JpdaHv%EE|ON!{BlaCQp5TOy`Qfg*%thOi`Pp&Xb2$_f!tb@?$4<gw$F
z@0PkZH&>>Nr#WIeIcU0S^FVeU@=Lq~JyTl9k)@j&R9=3J7Jn%(r)+c7x250`7S^i0
zI0=XR>O|eU0#N7r;A(P#jY#DbmL;{gBv3W^F%qPjj06c16AKQGtI5bf=rW7hM!Y~w
zyM_|9(9|$~JS&Fk%a5_*Ikx0`s=5isk2d+9ikQyKXxy|bM(9g)LpeC4FC(fi8xG<=
ztS0|$Kzs8-o_|Hg{8~%<W{0`_3KTJ&5sMQ`Y(&?BP?Hqnt_3B!nuEGuiMWw(?b43L
z?r1PHWy2vCkC6d&mc^#8c9OXzK{s@g4aSq`KJj?UBulAyEjB}m35Q}gG@#Cq8$WHx
z+>%5>D^iO)%Ra4mO31zgMlKB_ABby11a-zN4kE2*dw-4K=__WN@e(m|;$xpSJb?w>
z&Rx0JyvlnpF;@VH=~~^^jh%P2kku_LOKNfEJ@zTVQzG^p2l5K8eKXC&D>!00BW}8C
zBj%O_-H^piEpEg<-FHgF9+k(hg<}tfmovn4Ml4jGb!_t-Ei~dok}md1x>F*S0xlL=
zEzbwXVt<a0>o+|_l`8EV%Nxt`&hnvK%dt<tof5HBVk0rf9*mgd<7!P0(T%uq+|Dsk
zV)}0T5?gsHmrt9W60uZSBe9MR#<_mu)jKwruIh~tI>)l}YyNPGZPm(%5lgToVmz#z
zsn%l8y=AV}d>F3Q5Yx#DKj~X|9E<Y~#L(4$=zpeje5QWW?b!L}kUwza1@T925Y)+n
z5O7}4A~}eH!v%6k)5T|MI^B*vX24~v55o_65Yt)qg{1R1=9hE{VrVK5+2?M3XNtU7
z>bDWswTN+wgjf#p_>bQxLN{$R3t>rwWl1eg#QJg3GcI0qJ2vZl>qCqaF;9KObj`Z$
z%71QsXd!}5SeDe{Mtr8A8%aSo;dAW6@Y@}T>5NziI_ubOeP|(BO)YN3X9~KJ=j3cC
zLiT|~%*SsF+s@iq<{~da42}7aq#K<n>2y0cudl?javn*?s~P&~oMkTH7QW7za!L?G
zIXEQpMrVpV-Hvg<B@bepwaqWq5Yx4-A%BEaGhs=DWl1e=rk^SD;4K4wly=3h(GlZB
zEb{#L?OfYco9FxhE<p^PV{zPOp6WLbXIDj8Kh|lT;d>Jiyf+cTW5LQkFLvu(y$WJ~
z`vkv1=L6eHy(RII{W~pR@?F*2z}pDw5q$`>G|%<x@9>6$w!%Qn%LmPWukZp(23QYd
z4EvCW&qYx;|3Dwg?_*ZK?cp_veO5l^KjC3|*yD;ahZh0#8!EG452Gy8yoUR*VE<Xb
z51WU54v(0_`!Ioe6Q|Bsj;XxK;q{L4%i08D-@Cc{KLC@V0~7?m&&i^*pd}{(f6Gq8
zFc3xeNc=<Oed0WL6e~%^LtTMDY7mH>Wlvj+*s*Mvw11D2v>_ENSbFZAGj~SL=Q~*k
zUtp|gRDqHxMgb_+aG}-(daV}W3<cIv#cACrD9|1(nwRHiIn#tS23|~~!8idn@FZmk
z(*@c%rwPWEZ9q~Rd57}isxgu}fB!UVtSS4XYrtt7UttN3a_T7VfT13V=z!#GMCz@n
zdjMw`YLK9u#YvRlAFl%=?Vk<3GI2`b_S)}sh&yF-Hi)BpXT@l2+cs*mK8DYq;P<D;
zWxr}DRCg-|sLVMd%m8(bDQ~$HN?2#8gRRN&MC#61Q|q4m#a9CO-M)NYN9Oo<)${uJ
z0~C1R1Cb&AQF+VmAF2f^(>S>d<5`%@s`!SaDT%X>Zs<vW7jP)Z!{~ny)9Wft$VEot
zWI{Xw%0Bn$rzpPxlc56?vmhwv1qqmEeVDEZ006v`5H39gzt72{lTj`f0g{twE<OSl
ZD3dNIDU;DIDgh{y{4OH~?JEEP008oL&UpX;

delta 2548
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
K2I(sR0001eVy?sh

-- 
GitLab