From 6237cf0604ad2c50ad463589a165b59f35898238 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Tue, 18 Jun 2019 12:42:10 +0000 Subject: [PATCH] add zeff from data or input with explicit default value as well git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@12143 d63d8f72-b253-0410-a779-e742ad2e26cf --- crpptbx/AUG/torbeam_prepare_inputs_and_run.m | 22 +++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/crpptbx/AUG/torbeam_prepare_inputs_and_run.m b/crpptbx/AUG/torbeam_prepare_inputs_and_run.m index 3222f0c0..efc7d853 100644 --- a/crpptbx/AUG/torbeam_prepare_inputs_and_run.m +++ b/crpptbx/AUG/torbeam_prepare_inputs_and_run.m @@ -7,6 +7,8 @@ function [torbeam_out,torbeam_in,varargout] = torbeam_prepare_inputs_and_run(sho % varargin{2}: source for gdat profiles/equilibrium related: [] (default sources), 'IDA' (IDA/IDE sources), {'TRA','expname'} for TRANSP % varargin{3}: source for torbeam angles: 0 (default) from conversion from ECS/ECN with aug_setval2tp_mex; 1 from TBP/git shotfile % varargin{4}: nb of radial points for outputs in shotfile structure (default 401) +% varargin{5}: if >0: zeff default if no data in gdat(shot,'zeff') (2. is default) +% if <0: zeff value (abs(varargin{5}) to impose for all times % % Examples: % [torbeam_out,torbeam_in] = torbeam_prepare_inputs_and_run(30594,linspace(0,10,101)); @@ -61,18 +63,29 @@ if nargin>=6 && ~isempty(varargin{4}) end torbeam_in.prepare_run_options.nb_points_shotfile = nb_points_shotfile; +zeff_default = 2.0; +if nargin>=7 && ~isempty(varargin{5}) + zeff_default = varargin{5}; +end +torbeam_in.prepare_run_options.zeff_default = zeff_default; + if doload tic if isempty(source_gdat_profiles_exp_name) - torbeam_in.nete=gdat(shot,'nete_rho','machine','aug','source',source_gdat_profiles); + torbeam_in.nete = gdat(shot,'nete_rho','machine','aug','source',source_gdat_profiles); + torbeam_in.zeff = gdat(shot,'zeff','machine','aug'); else torbeam_in.nete=gdat(shot,'nete_rho','machine','aug','source',source_gdat_profiles,'source_exp_name',source_gdat_profiles_exp_name); + torbeam_in.zeff = gdat(shot,'zeff','machine','aug','source_exp_name',source_gdat_profiles_exp_name); end % qrho_and_grid=gdat(shot,'q_rho','machine','aug'); else if ~isfield(torbeam_in,'nete') || isempty(torbeam_in.nete) error('expects nete as field of torbeam_in (varargin{1}) from gdat(shot,''nete_rho'')') end + if ~isfield(torbeam_in,'zeff') || isempty(torbeam_in.zeff) + error('expects zeff as field of torbeam_in (varargin{1}) from gdat(shot,''zeff'')') + end end % base all times on Te data (most important? although ne as well), note take Thomson by default to avoid cut-off @@ -190,6 +203,12 @@ if doload, if mod(nb_rmesh*nb_zmesh,8) ~= 0; fprintf(fid,'\n'); end fclose(fid); + if isempty(torbeam_in.zeff.data) || torbeam_in.prepare_run_options.zeff_default < 0. + zeff_eff = abs(torbeam_in.prepare_run_options.zeff_default); + else + zeff_eff = interpos(21,torbeam_in.zeff.t,torbeam_in.zeff.data,torbeam_in.inbeam.t_some_beam_on(it)); + end + torbeam_in.inbeam.zeff_t(it_inb(it)) = zeff_eff; % extract beam info at given time for ibeam=find(torbeam_in.inbeam.beam_on(:,it_inb(it)))', torbeam_in.fname{it}.inbeam{ibeam} = fullfile(torbeam_in.dir_torbeam,['inbeam' '_t' num2str(torbeam_in.inbeam.t_some_beam_on(it)) 'g' num2str(ibeam) '.dat']); @@ -204,6 +223,7 @@ if doload, fprintf(fid,[' ' tb_par_fields{i} ' = %f,\n'],torbeam_in.inbeam.tb_par.(tb_par_fields{i})(ibeam)); end fprintf(fid,' xpw0 = %f,\n',torbeam_in.inbeam.power_t(ibeam,it_inb(it))/1.e6); + fprintf(fid,' xzeff = %f,\n',torbeam_in.inbeam.zeff_t(it_inb(it))); fprintf(fid,'/\n'); fclose(fid); end -- GitLab