From 24d81f7fbe61f25e4163dc7ff4b58eb82d660e7a Mon Sep 17 00:00:00 2001
From: Francesco Carpanese <francesco.carpanese@epfl.ch>
Date: Thu, 31 Jan 2019 13:20:22 +0000
Subject: [PATCH] Ongoing redefinition of functions to be compliant with
 Oliviers type call of the equilibrium

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11377 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/TCV_IMAS/get_ids.m                    | 13 -------------
 crpptbx/TCV_IMAS/tcv2ids.m                    |  3 +++
 crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m     |  5 ++---
 crpptbx/TCV_IMAS/tcv_get_ids_circuit.m        |  7 +++----
 crpptbx/TCV_IMAS/tcv_get_ids_coil.m           |  4 ++--
 crpptbx/TCV_IMAS/tcv_get_ids_descprition_2d.m | 11 ++++++-----
 crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m      |  2 +-
 crpptbx/TCV_IMAS/tcv_get_ids_ip.m             |  2 +-
 crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m      | 11 +++++++++++
 crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m      | 12 ++++++++++++
 crpptbx/TCV_IMAS/tcv_ids_get_wall.m           |  5 +++++
 11 files changed, 46 insertions(+), 29 deletions(-)
 delete mode 100644 crpptbx/TCV_IMAS/get_ids.m
 create mode 100644 crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m
 create mode 100644 crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
 create mode 100644 crpptbx/TCV_IMAS/tcv_ids_get_wall.m

diff --git a/crpptbx/TCV_IMAS/get_ids.m b/crpptbx/TCV_IMAS/get_ids.m
deleted file mode 100644
index ce31b641..00000000
--- a/crpptbx/TCV_IMAS/get_ids.m
+++ /dev/null
@@ -1,13 +0,0 @@
-function [ids_structures] =  get_ids(shot)
-
-load('ids_structures_20190128.mat')
-addpath(genpath(pwd))
-
-ids_structures.magnetics.bpol_probe = imasget_bpol_probe(shot, ids_structures);
-ids_structures.magnetics.flux_loop = imasget_flux_loop(shot, ids_structures);
-ids_structures.magnetics.method = imasget_ip(shot, ids_structures);
-ids_structures.pf_active.circuit = imasget_circuit(shot, ids_structures);
-ids_structures.pf_active.coil = imasget_coil(shot, ids_structures);
-ids_structures.wall.description_2d = imasget_description_2d(shot, ids_structures);
-
-end
\ No newline at end of file
diff --git a/crpptbx/TCV_IMAS/tcv2ids.m b/crpptbx/TCV_IMAS/tcv2ids.m
index d626d93f..d0bc5ac9 100644
--- a/crpptbx/TCV_IMAS/tcv2ids.m
+++ b/crpptbx/TCV_IMAS/tcv2ids.m
@@ -15,6 +15,9 @@ equil_empty=ids_gen('equilibrium');
 ids_saved.equilibrium = ids_equilibrium;
 ids_saved.equilibrium_description = ids_equilibrium_description;
 
+
+
+
 % now write to ids tree
 shot_is_new = 1; % seems only create is ok even if does already exist
 if shot_is_new
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m b/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m
index 30d09784..5a580ba0 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m
@@ -1,4 +1,4 @@
-function [ids_struct_out] =  tcv_get_ids_bpol_probe(shot, ids_structures)
+function [ids_struct_out, varargout] =  tcv_get_ids_bpol_probe(shot, ids_structures)
 % Get magnetics.bpol_probe
 
 mdsopen(shot);
@@ -11,11 +11,10 @@ data = tmp.data;
 
 % Preallocate output structure
 Nprobes = size(tmp.data,2);
-ids_struct_out(1:Nprobes) = ids_structures.magnetics.bpol_probe(1);
+ids_struct_out(1:Nprobes) = ids_structures;
 
 
 for ii=1:Nprobes
-    ids_struct_out{ii} = ids_structures.magnetics.bpol_probe{1};
     ids_struct_out{ii}.name  = [names{ii}];  
     ids_struct_out{ii}.position.r  = mdsvalue('STATIC("R_M"  )[$1]',ids_struct_out{ii}.name);
     ids_struct_out{ii}.position.z  = mdsvalue('STATIC("Z_M"  )[$1]',ids_struct_out{ii}.name); 
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m b/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
index 5e4b4fd3..c6b88e1c 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
@@ -1,21 +1,20 @@
 function [ids_struct_out] =  tcv_get_ids_circuit(shot, ids_structures)
 
 mdsopen(shot)
-
 %% Get power supply/coils names for each circuit.
-[coil_names2ids, power_supply_names2ids, circuit_names2ids, mds_paths2ids, ~] =  pf_active_definition();
+[coil_names2ids, power_supply_names2ids, circuit_names2ids, mds_paths2ids, ~] =  tcv_ids_pf_active_definition();
 % Get dimension
 ncircuits2ids = numel(circuit_names2ids);
 
 % Preallocate memory and get data
-ids_struct_out(1:ncircuits2ids) = ids_structures.pf_active.circuit(1);
+ids_struct_out(1:ncircuits2ids) = ids_structures;
 for ii=1:ncircuits2ids
     
     tmpdata = tdi(mds_paths2ids{ii});
     ids_struct_out{ii}.current.data = tmpdata.data;
     ids_struct_out{ii}.current.time = tmpdata.dim{1};
     
-    %ids_struct_out{ii}.connection = 
+    %ids_struct_out{ii}.connection = % TODO
 end
 
 %%
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_coil.m b/crpptbx/TCV_IMAS/tcv_get_ids_coil.m
index 2560c1b2..7280ee9a 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_coil.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_coil.m
@@ -16,7 +16,7 @@ function [ids_struct_out] =  tcv_get_ids_coil(shot, ids_structures)
 mdsopen(shot)
 
 %% Get power supply/coils names for each circuit.
-[coil_names2ids, ~, ~, mds_paths2ids, ~] =  pf_active_definition();
+[coil_names2ids, ~, ~, mds_paths2ids, ~] =  tcv_ids_pf_active_definition();
 ncircuits2ids = numel(coil_names2ids);
 
 %% Get geometrical data from the static tree
@@ -47,7 +47,7 @@ h_c(iG)=sqrt(xsect_c(iG));
 
 
 %% Put data to ids structure
-ids_struct_out(1:sizepfc) = ids_structures.pf_active.coil(1);
+ids_struct_out(1:sizepfc) = ids_structures;
 ind_coil_ids = 0;
 for ii=1:ncircuits2ids
     ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_descprition_2d.m b/crpptbx/TCV_IMAS/tcv_get_ids_descprition_2d.m
index 2b7ba4e8..80c403ca 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_descprition_2d.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_descprition_2d.m
@@ -1,15 +1,16 @@
 function [ids_struct_out] =  tcv_get_ids_descprition_2d(shot, ids_structures)
 
-
 mdsopen(shot)
-% Vessel
+%% 
 r_l = mdsdata('STATIC("R_T")');
 z_l = mdsdata('STATIC("Z_T")');
 
-ids_struct_out =  ids_structures.wall;
-ids_struct_out.description_2d{1}.limiter.unit{1}.outline.r = r_l;
-ids_struct_out.description_2d{1}.limiter.unit{1}.outline.z = z_l;
+% There might be many 2d descriptions
+ids_struct_out =  ids_structures;
+ids_struct_out{1}.limiter.unit{1}.outline.r = r_l;
+ids_struct_out{1}.limiter.unit{1}.outline.z = z_l;
 
+%% TODO Add the other description of the wall and the input pharser
 
 end
 
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m b/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
index 71b01407..5e871c32 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
@@ -10,7 +10,7 @@ data = tmp.data;
 
 % Preallocate output structure
 Nprobes = size(tmp.data,2);
-ids_struct_out(1:Nprobes) = ids_structures.magnetics.flux_loop(1);
+ids_struct_out(1:Nprobes) = ids_structures;
 
 % Put data on ids structure
 for ii=1:Nprobes
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_ip.m b/crpptbx/TCV_IMAS/tcv_get_ids_ip.m
index 3df34906..5188537b 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_ip.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_ip.m
@@ -8,7 +8,7 @@ time = tmp.dim{1};
 data = tmp.data;
 
 % Preallocate dimension
-ids_struct_out = ids_structures.magnetics.method(1);
+ids_struct_out = ids_structures;
 
 % Put data into ids structure
 ids_struct_out{1}.ip.data = data;
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m b/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m
new file mode 100644
index 00000000..5e328296
--- /dev/null
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m
@@ -0,0 +1,11 @@
+function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magnetics(shot,varargin)
+%
+%  [ids_equilibrium,ids_equilibrium_description,varargout] = get_ids_equilibrium_fixed_boundary(shot,varargin);
+% 
+%
+% ADD Here the imput pharser
+
+ids_magnetics=ids_gen('magnetics');
+[ids_magnetics.bpol_probe]= tcv_get_ids_bpol_probe(shot, ids_magnetics.bpol_probe(1));
+[ids_magnetics.flux_loop]= tcv_get_ids_flux_loop(shot, ids_magnetics.flux_loop(1));
+[ids_magnetics.method]= tcv_get_ids_ip(shot, ids_magnetics.method(1));
\ No newline at end of file
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m b/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
new file mode 100644
index 00000000..7a5e92f1
--- /dev/null
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
@@ -0,0 +1,12 @@
+function [ids_pf_active,ids_pf_active_description,varargout] = tcv_get_ids_pf_active(shot,varargin)
+%
+%  [ids_equilibrium,ids_equilibrium_description,varargout] = get_ids_equilibrium_fixed_boundary(shot,varargin);
+% 
+%
+% ADD Here the imput pharser
+
+ids_pf_active=ids_gen('pf_active');
+[ids_pf_active.coil]= tcv_get_ids_coil(shot, ids_pf_active.coil(1));
+
+[ids_pf_active.circuit]= tcv_get_ids_circuit(shot, ids_pf_active.circuit(1));
+
diff --git a/crpptbx/TCV_IMAS/tcv_ids_get_wall.m b/crpptbx/TCV_IMAS/tcv_ids_get_wall.m
new file mode 100644
index 00000000..cbc1a0f8
--- /dev/null
+++ b/crpptbx/TCV_IMAS/tcv_ids_get_wall.m
@@ -0,0 +1,5 @@
+function [ids_wall,ids_wall_description,varargout] = tcv_ids_get_wall(shot,varargin)
+% TODO Add the input pharser
+
+ids_wall=ids_gen('wall');
+[ids_wall.description_2d]= tcv_get_ids_descprition_2d(shot, ids_wall.description_2d(1));
\ No newline at end of file
-- 
GitLab