Newer
Older
%% UNCOMMENT FOR TUTORIAL
gyacomodir = pwd; gyacomodir = gyacomodir(1:end-2); % get code directory
% resdir = '../testcases/cyclone_example/'; %Name of the directory where the results are located
% PARTITION ='';
% JOBNUMMIN = 03; JOBNUMMAX = 03;
%%
addpath(genpath([gyacomodir,'matlab'])) % ... add
addpath(genpath([gyacomodir,'matlab/plot'])) % ... add
addpath(genpath([gyacomodir,'matlab/compute'])) % ... add
addpath(genpath([gyacomodir,'matlab/load'])) % ... add
Antoine Cyril David Hoffmann
committed
%% Load the results
LOCALDIR = [gyacomodir,resdir,'/'];
MISCDIR = ['/misc/gyacomo_outputs/',resdir,'/']; %For long term storage
% CMD = ['rsync ', LOCALDIR,'outputs* ',MISCDIR]; disp(CMD);
% Load outputs from jobnummin up to jobnummax
data = compile_results(DATADIR,JOBNUMMIN,JOBNUMMAX); %Compile the results from first output found to JOBNUMMAX if existing
data.folder = LOCALDIR;
data.CODENAME = 'GYACOMO';
Antoine Cyril David Hoffmann
committed
%% PLOTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
default_plots_options
disp('Plots')
FMT = '.fig';
Antoine Cyril David Hoffmann
committed
%% Space time diagramm (fig 11 Ivanov 2020)
% jid_ = 0;
% disp([num2str(data.TJOB_SE(2*jid_+1)),' ',num2str(data.TJOB_SE(2*(jid_+1)))])
% disp([num2str(data.NU_EVOL(2*jid_+1)),' ',num2str(data.NU_EVOL(2*(jid_+1)))])
% options.TAVG_0 = data.TJOB_SE(2*jid_+1);%0.4*data.Ts3D(end);
% options.TAVG_1 = data.TJOB_SE(2*(jid_+1));%0.9*data.Ts3D(end); % Averaging times duration
options.TAVG_0 = 100;
options.NCUT = 5; % Number of cuts for averaging and error estimation
options.NMVA = 1; % Moving average for time traces
% options.ST_FIELD = '\Gamma_x'; % chose your field to plot in spacetime diag (e.g \phi,v_x,G_x)
options.ST_FIELD = '\phi'; % chose your field to plot in spacetime diag (e.g \phi,v_x,G_x)
options.INTERP = 0;
options.RESOLUTION = 256;
fig = plot_radial_transport_and_spacetime(data,options,'GYACOMO');
Antoine Cyril David Hoffmann
committed
end
Gavg =[]; Gstd = [];
Qavg =[]; Qstd = [];
% figure; hold on;
% plot(data.Ts0D,data.HFLUX_X);
% i_ = 3;
disp([num2str(data.TJOB_SE(i_)),' ',num2str(data.TJOB_SE(i_+1))])
disp([num2str(data.NU_EVOL(i_)),' ',num2str(data.NU_EVOL(i_+1))])
options.T = [data.TJOB_SE(i_)*1.2 data.TJOB_SE(i_+1)];
[fig, res] = statistical_transport_averaging(data,options);
Gavg = [Gavg res.Gx_avg]; Gstd = [Gstd res.Gx_std];
Qavg = [Qavg res.Qx_avg]; Qstd = [Qstd res.Qx_std];
% disp(Gavg); disp(Gstd);
disp(Qavg); disp(Qstd);
figure
% errorbar(data.NU_EVOL(2:2:end),Qavg,Qstd,'--s');
% xlabel('$\nu$'); ylabel('$Q_x^\infty$');
errorbar(data.K_T_EVOL(2:2:end),Qavg,Qstd,'--s','DisplayName',data.paramshort);
xlabel('$\kappa_T$'); ylabel('$Q_x^\infty$');
Antoine Cyril David Hoffmann
committed
if 0
%% MOVIES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Options
% options.NAME = 'f_i';
% options.PLAN = 'sx';
% options.TIME = data.Ts5D(end-30:end);
data.EPS = 0.1;
Antoine Cyril David Hoffmann
committed
end
% options.NAME = 's_{Ex}';
% options.NAME = 'Q_x';
Antoine Cyril David Hoffmann
committed
end
options.NAME = '\phi';
options.TIME = [30];
options.PLT_MTOPO = 1;
data.EPS = 0.4;
data.rho_o_R = 3e-3; % Sound larmor radius over Machine size ratio
% save_figure(data,fig,'.png')
%% Kinetic distribution function sqrt(<f_a^2>xy) (GENE vsp)
% options.SPAR = linspace(-3,3,32)+(6/127/2);
options.SPAR = linspace(-3,3,32);
options.XPERP = linspace( 0,sqrt(6),16).^2;
% options.SPAR = gene_data.vp';
% options.XPERP = gene_data.mu';
% options.PLT_FCT = 'contour';
% options.PLT_FCT = 'contourf';
options.PLT_FCT = 'surfvv';
options.RMS = 1; % Root mean square i.e. sqrt(sum_k|f_k|^2) as in Gene
%% Hermite-Laguerre spectrum
% options.TIME = 'avg';
fig = show_moments_spectrum(data,options);
% fig = show_napjz(data,options);
%% Time averaged spectrum
options.NORM =1;
options.COMPZ = 'avg';
options.COMPXY = 'avg';%'2D'; % avg/sum/max/zero/ 2D plot otherwise
options.COMPT = 'avg';
options.PLOT = 'semilogy';
fig = spectrum_1D(data,options);
options.TIME = [50 100 200];
% options.NAME = 'n_i';
% options.NAME ='\Gamma_x';
options.MOVMT = 1;
fig = real_plot_1D(data,options);
options.KX_TW = [1 20]; %kx Growth rate time window
options.KY_TW = [0 20]; %ky Growth rate time window
options.NMODES = 800;
options.iz = 'avg'; % avg or index
options.ik = 1; % sum, max or index
end
if 0
%% ZF caracteristics (space time diagrams)
TAVG_0 = 1200; TAVG_1 = 1500; % Averaging times duration
% chose your field to plot in spacetime diag (uzf,szf,Gx)
fig = ZF_spacetime(data,TAVG_0,TAVG_1);
if 0
%% Metric infos
[fig, geo_arrays] = plot_metric(data,options);
%% linear growth rate (adapted for 2D zpinch and fluxtube)
options.TRANGE = [0.5 1]*data.Ts3D(end);
options.NPLOTS = 2; % 1 for only growth rate and error, 2 for omega local evolution, 3 for plot according to z
options.GOK = 0; %plot 0: gamma 1: gamma/k 2: gamma^2/k^3
lg = compute_fluxtube_growth_rate(data,options);
[gmax, kmax] = max(lg.g_ky(:,end));
[gmaxok, kmaxok] = max(lg.g_ky(:,end)./lg.ky);
msg = sprintf('gmax = %2.2f, kmax = %2.2f',gmax,lg.ky(kmax)); disp(msg);
msg = sprintf('gmax/k = %2.2f, kmax/k = %2.2f',gmaxok,lg.ky(kmaxok)); disp(msg);
end
if 0
%% linear growth rate for 3D Zpinch
options.keq0 = 1; % chose to plot planes at k=0 or max
options.kxky = 1;
[lg, fig] = compute_3D_zpinch_growth_rate(data,trange,options);