From a4ef02c29027301f2b92b2eec4be172474055c1e Mon Sep 17 00:00:00 2001
From: Antoine Hoffmann <antoine.hoffmann@epfl.ch>
Date: Fri, 2 Dec 2022 13:51:03 +0100
Subject: [PATCH] script to benchmark with Ajay results

---
 wk/Ajay_scan_CH4_lin_ITG.m | 168 +++++++++++++++++++++++++++++++++++++
 1 file changed, 168 insertions(+)
 create mode 100644 wk/Ajay_scan_CH4_lin_ITG.m

diff --git a/wk/Ajay_scan_CH4_lin_ITG.m b/wk/Ajay_scan_CH4_lin_ITG.m
new file mode 100644
index 00000000..cb633fcf
--- /dev/null
+++ b/wk/Ajay_scan_CH4_lin_ITG.m
@@ -0,0 +1,168 @@
+gyacomodir = '/home/ahoffman/gyacomo/';
+addpath(genpath([gyacomodir,'matlab'])) % ... add
+addpath(genpath([gyacomodir,'matlab/plot'])) % ... add
+addpath(genpath([gyacomodir,'matlab/compute'])) % ... add
+addpath(genpath([gyacomodir,'matlab/load'])) % ... add% EXECNAME = 'gyacomo_1.0';
+% EXECNAME = 'gyacomo_dbg';
+EXECNAME = 'gyacomo';
+%%
+NU_a = [0:0.01:0.05]*0.1/0.045;
+% P_a  = [2 4 6 8 10 12 16];
+% NU_a = 0.1;
+P_a  = [2 4];
+
+
+CO      = 'DG';
+COLL_KCUT = 1.75;
+
+K_Ti  = 8.0;
+K_Ni  = 2.0;
+DT    = 1e-3;
+TMAX  = 20;
+kymin = 0.35;
+Ny    = 2;
+SIMID = 'Ajay_CH4_lin_ITG';  % Name of the simulation
+RUN   = 1;
+
+g_ky = zeros(numel(NU_a),numel(P_a),Ny/2);
+g_avg= g_ky*0;
+g_std= g_ky*0;
+
+j = 1;
+for P = P_a
+
+i = 1;
+for NU = NU_a
+    %Set Up parameters
+    CLUSTER.TIME  = '99:00:00'; % allocation time hh:mm:ss
+    TAU     = 1.0;    % e/i temperature ratio
+    K_Ni = 2.0; K_Ne = K_Ni;
+    K_Te     = K_Ti;            % Temperature '''
+    SIGMA_E = 0.0233380;   % mass ratio sqrt(m_a/m_i) (correct = 0.0233380)
+    KIN_E   = 0;     % 1: kinetic electrons, 2: adiabatic electrons
+    BETA    = 1e-3;     % electron plasma beta 
+    J = P/2;
+%     J = 2;
+    PMAXE   = P; JMAXE   = J;
+    PMAXI   = P; JMAXI   = J;
+    NX      = 16;    % real space x-gridpoints
+    NY      = Ny;     %     ''     y-gridpoints
+    LX      = 142.9;   % Size of the squared frequency domain
+    LY      = 2*pi/kymin;
+    NZ      = 24;    % number of perpendicular planes (parallel grid)
+    NPOL    = 1; SG = 0;
+%     GEOMETRY= 's-alpha';
+    GEOMETRY= 'miller';
+    EPS     = 0.18;   % inverse aspect ratio
+    Q0      = 1.4;    % safety factor
+    SHEAR   = 0.8;    % magnetic shear
+    KAPPA   = 1.0;    % elongation
+    DELTA   = 0.0;    % triangularity
+    ZETA    = 0.0;    % squareness
+    NEXC    = 1;      % To extend Lx if needed (Lx = Nexc/(kymin*shear))
+    SPS0D = 1; SPS2D = -1; SPS3D = 1;SPS5D= 1/5; SPSCP = 0;
+    JOB2LOAD= -1;
+    LINEARITY = 'linear';   % activate non-linearity (is cancelled if KXEQ0 = 1)
+    GKCO    = 1; % gyrokinetic operator
+    ABCO    = 1; % interspecies collisions
+    INIT_ZF = 0; ZF_AMP = 0.0;
+    CLOS    = 0;   % Closure model (0: =0 truncation, 1: v^Nmax closure (p+2j<=Pmax))s
+    NL_CLOS = 0;   % nonlinear closure model (-2:nmax=jmax; -1:nmax=jmax-j; >=0:nmax=NL_CLOS)
+    KERN    = 0;   % Kernel model (0 : GK)
+    INIT_OPT= 'mom00';   % Start simulation with a noisy mom00/phi/allmom
+    W_DOUBLE = 1;
+    W_GAMMA  = 1; W_HF     = 1;
+    W_PHI    = 1; W_NA00   = 1;
+    W_DENS   = 1; W_TEMP   = 1;
+    W_NAPJ   = 1; W_SAPJ   = 0;
+    HD_CO   = 0.0;    % Hyper diffusivity cutoff ratio
+    MU      = 0.0; % Hyperdiffusivity coefficient
+    INIT_BLOB = 0; WIPE_TURB = 0; ACT_ON_MODES = 0;
+    MU_X    = MU;     %
+    MU_Y    = MU;  N_HD    = 4;
+    MU_Z    = 2.0; MU_P    = 0.0;     %
+    MU_J    = 0.0; LAMBDAD = 0.0;
+    NOISE0  = 1.0e-5; % Init noise amplitude
+    BCKGD0  = 0.0;    % Init background
+    GRADB   = 1.0;CURVB   = 1.0;
+    %%-------------------------------------------------------------------------
+    % RUN
+    setup
+    if RUN
+%         system(['cd ../results/',SIMID,'/',PARAMS,'/; mpirun -np 6 ',gyacomodir,'bin/',EXECNAME,' 1 6 1 0; cd ../../../wk'])
+        system(['cd ../results/',SIMID,'/',PARAMS,'/; mpirun -np 4 ',gyacomodir,'bin/',EXECNAME,' 1 1 4 0; cd ../../../wk'])
+    end
+
+    % Load results
+    filename = [SIMID,'/',PARAMS,'/'];
+    LOCALDIR  = [gyacomodir,'results/',filename,'/'];
+    data = compile_results(LOCALDIR,0,0); %Compile the results from first output found to JOBNUMMAX if existing
+
+    % linear growth rate (adapted for 2D zpinch and fluxtube)
+    options.TRANGE = [0.5 1]*data.Ts3D(end);
+    options.NPLOTS = 0; % 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);
+
+    
+    g_ky(i,j,:)  = lg.avg_g;
+    
+    g_avg(i,j,:) = lg.avg_g;
+    g_std(i,j,:) = lg.std_g;
+    
+    i = i + 1;
+end
+j = j + 1;
+end
+
+if 1
+%% Study of the peak growth rate
+figure
+
+y_ = g_avg; 
+e_ = g_std;
+
+% filter to noisy data
+y_ = y_.*(y_-e_>0);
+e_ = e_ .* (y_>0);
+
+[y_,idx_] = max(g_avg,[],3); 
+for i = 1:numel(idx_)
+    e_ = g_std(:,:,idx_(i));
+end
+
+colors_ = summer(numel(NU_a));
+subplot(121)
+for i = 1:numel(NU_a)
+    errorbar(P_a,y_(i,:),e_(i,:),...
+        'LineWidth',1.2,...
+        'DisplayName',['$\nu=$',num2str(NU_a(i))],...
+        'color',colors_(i,:)); 
+    hold on;
+end
+title(['$\kappa_T=$',num2str(K_Ti),' $k_y=k_y^{max}$']);
+legend('show'); xlabel('$P$, $J=P/2$'); ylabel('$\gamma$');
+
+colors_ = jet(numel(P_a));
+subplot(122)
+for j = 1:numel(P_a)
+    errorbar(NU_a,y_(:,j),e_(:,j),...
+        'LineWidth',1.2,...
+        'DisplayName',['(',num2str(P_a(j)),',',num2str(P_a(j)/2),')'],...
+        'color',colors_(j,:)); 
+    hold on;
+end
+title(['$\kappa_T=$',num2str(K_Ti),' $k_y=k_y^{max}$']);
+legend('show'); xlabel(['$\nu_{',CO,'}$']); ylabel('$\gamma$');
+end
+
+if 0
+%% Pcolor of the peak
+figure;
+[XX_,YY_] = meshgrid(NU_a,P_a);
+pclr=pcolor(XX_,YY_,y_'); set(pclr,'EdgeColor','none');
+end
\ No newline at end of file
-- 
GitLab