From 969a1081e04cf75f1a0612c9fe284f6e595944a4 Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Wed, 13 Jan 2021 10:18:28 +0100 Subject: [PATCH] Cleaning and ordering wk and matlab directories --- {wk => matlab}/load_results.m | 0 {wk => matlab}/profiler.m | 0 {wk => matlab}/setup.m | 2 +- matlab/write_sbash.m | 2 +- wk/analysis_2D.m | 76 ++-------- wk/cpu_time_study.m | 134 ----------------- wk/launcher.m | 141 ------------------ wk/linear_study.m | 1 - wk/{debug_script.m => local_run.m} | 10 +- wk/marconi_run.m | 21 +-- wk/marconi_scaling.m | 1 - wk/parallel_scaling.m | 94 ------------ wk/parallel_scaling_old.m | 94 ------------ wk/parameters_KH.m | 42 ------ wk/parameters_ZP.m | 42 ------ wk/parameters_cpu_time.m | 44 ------ wk/run.m | 5 - ...rallel_scaling_new.m => scaling_results.m} | 0 18 files changed, 25 insertions(+), 684 deletions(-) rename {wk => matlab}/load_results.m (100%) rename {wk => matlab}/profiler.m (100%) rename {wk => matlab}/setup.m (99%) delete mode 100644 wk/cpu_time_study.m delete mode 100644 wk/launcher.m rename wk/{debug_script.m => local_run.m} (90%) delete mode 100644 wk/parallel_scaling.m delete mode 100644 wk/parallel_scaling_old.m delete mode 100644 wk/parameters_KH.m delete mode 100644 wk/parameters_ZP.m delete mode 100644 wk/parameters_cpu_time.m delete mode 100644 wk/run.m rename wk/{parallel_scaling_new.m => scaling_results.m} (100%) diff --git a/wk/load_results.m b/matlab/load_results.m similarity index 100% rename from wk/load_results.m rename to matlab/load_results.m diff --git a/wk/profiler.m b/matlab/profiler.m similarity index 100% rename from wk/profiler.m rename to matlab/profiler.m diff --git a/wk/setup.m b/matlab/setup.m similarity index 99% rename from wk/setup.m rename to matlab/setup.m index 2d0dd8c0..dd598a39 100644 --- a/wk/setup.m +++ b/matlab/setup.m @@ -24,7 +24,7 @@ MODEL.tau_i = TAU; MODEL.sigma_e = 0.0233380; MODEL.sigma_i = 1.0; % charge q_a/e -MODEL.q_e =-1.0 * (1-NO_E); +MODEL.q_e =-1.0; MODEL.q_i = 1.0; if MODEL.q_e == 0; SIMID = [SIMID,'_i']; end; % gradients L_perp/L_x diff --git a/matlab/write_sbash.m b/matlab/write_sbash.m index ba785d72..69556df6 100644 --- a/matlab/write_sbash.m +++ b/matlab/write_sbash.m @@ -45,4 +45,4 @@ fprintf(fid,[... fclose(fid); system(['cp batch_script.sh ',BASIC.RESDIR,'/.']); -system('scp {fort.90,setup_and_run.sh,batch_script.sh} ahoffman@login.marconi.cineca.it:/marconi/home/userexternal/ahoffman/HeLaZ/wk'); +system('scp {fort.90,setup_and_run.sh,batch_script.sh} ahoffman@login.marconi.cineca.it:/marconi/home/userexternal/ahoffman/HeLaZ/wk'); \ No newline at end of file diff --git a/wk/analysis_2D.m b/wk/analysis_2D.m index de32193d..65c87e85 100644 --- a/wk/analysis_2D.m +++ b/wk/analysis_2D.m @@ -3,8 +3,11 @@ if 0 %% outfile =''; outfile =''; - outfile ='/marconi_scratch/userexternal/ahoffman/HeLaZ/results/Marconi/200x100_L_100_Pe_2_Je_1_Pi_2_Ji_1_nB_0.66_nN_1_nu_1e-01_FC_mu_1e-03/out.txt'; -% outfile ='/marconi_scratch/userexternal/ahoffman/HeLaZ/results/Marconi/200x100_L_100_Pe_8_Je_4_Pi_8_Ji_4_nB_0.66_nN_1_nu_1e-01_FC_mu_1e-04/out.txt'; + outfile =''; + outfile =''; + outfile =''; + outfile =''; + outfile =''; BASIC.RESDIR = load_marconi(outfile); end %% @@ -161,10 +164,10 @@ set(gcf, 'Position', [100, 100, 900, 800]) end grid on; ylabel('$\sum_{k_r,k_z}|N_i^{pj}|$'); subplot(223) - plot(Ts2D,Flux_ri,'-','DisplayName','$\Gamma_{ri}$'); hold on; - plot(Ts2D,Flux_zi,'-','DisplayName','$\Gamma_{zi}$'); hold on; - plot(Ts2D,Flux_re,'-','DisplayName','$\Gamma_{re}$') - plot(Ts2D,Flux_ze,'-','DisplayName','$\Gamma_{ze}$') + plot(Ts2D,GFlux_ri,'-','DisplayName','$\Gamma_{ri}$'); hold on; + plot(Ts2D,GFlux_zi,'-','DisplayName','$\Gamma_{zi}$'); hold on; + plot(Ts2D,GFlux_re,'-','DisplayName','$\Gamma_{re}$') + plot(Ts2D,GFlux_ze,'-','DisplayName','$\Gamma_{ze}$') grid on; xlabel('$t c_s/R$'); ylabel('$\Gamma$'); %legend('show'); subplot(224) for ip = 1:Npi @@ -179,35 +182,6 @@ suptitle(['$\nu_{',CONAME,'}=$', num2str(NU), ', $\eta_B=$',num2str(ETAB)]); save_figure end -%% -if 0 -%% Photomaton : real space -tf = 0; [~,it] = min(abs(Ts2D-tf)); [~,it5D] = min(abs(Ts5D-tf)); -fig = figure; FIGNAME = ['photo_real',sprintf('_t=%.0f',Ts2D(it))]; set(gcf, 'Position', [100, 100, 1500, 500]) - subplot(131); plt = @(x) (((x))); - pclr = pcolor((RR),(ZZ),plt(ni00(:,:,it))); set(pclr, 'edgecolor','none');pbaspect([1 1 1]) - xlabel('$r/\rho_s$'); ylabel('$z/\rho_s$'); legend('$n_i$'); - - subplot(132); plt = @(x) ((x)); - DATA = plt(ni00(:,:,it))-plt(ne00(:,:,it)); - pclr = pcolor((RR),(ZZ),DATA./max(max(DATA))); set(pclr, 'edgecolor','none');pbaspect([1 1 1]) - xlabel('$r/\rho_s$'); legend('$n_i-n_e$'); set(gca,'ytick',[]); - - - subplot(133); plt = @(x) ((x)); - DATA = plt(phi(:,:,it)); - pclr = pcolor((RR),(ZZ),DATA./max(max(DATA))); set(pclr, 'edgecolor','none');pbaspect([1 1 1]) - xlabel('$r/\rho_s$'); set(gca,'ytick',[]); legend('$\phi$'); - -% if strcmp(OUTPUTS.write_non_lin,'.true.') -% subplot(133); plt = @(x) fftshift((abs(x)),2); -% pclr = pcolor((RR),(ZZ),plt(si00(:,:,it5D))); set(pclr, 'edgecolor','none');pbaspect([1 1 1]) -% xlabel('$r/\rho_s$'); legend('$|S_i^{00}|$'); set(gca,'ytick',[]) -% end -suptitle(['$\nu_{',CONAME,'}=$', num2str(NU), ', $\eta_B=$',num2str(ETAB), sprintf(', $t c_s/R=%.0f$',Ts2D(it))]); -save_figure -end - if 0 %% Photomaton : real space % FIELD = ni00; FNAME = 'ni'; @@ -365,36 +339,4 @@ fig = figure; FIGNAME = ['krkz_frame',sprintf('t=%.0f',Ts2D(it2))];set(gcf, 'Pos save_figure end -%% Phase space distribution function -% M_ = 25; -% spar = linspace(0,4,M_); xperp = spar; -% -% PSDF_e = zeros(numel(kr),numel(kz),M_,M_,numel(Ts5D)); -% for ikr = 1:numel(kr) -% for ikz = 1:numel(kz) -% for it = 1:numel(Ts5D) -% PSDF_e(ikr,ikz,:,:,it) = compute_fa(Nepj(:,:,ikr,ikz,it), spar, xperp); -% end -% end -% end -% -% ktarget = 0.3*max(kz); -% ttarget = 310; -% -% [~,ik10] = min(abs(kz-ktarget)); -% [~,it] = min(abs(Ts5D-ttarget)); -% if 0 -% %% -% plt = @(x) real(x(ik10,ik10,:,:,it)); -% pclr = pcolor(spar,xperp,plt(PSDF_e)); set(pclr, 'edgecolor','none'); colorbar; -% xlabel('$s_\parallel$'); ylabel('$x_\perp$'); title(sprintf('$t c_s/R=%.0f$',Ts5D(it))); -% legend(['$Re(f_e),k_\perp \approx$',sprintf('%01.0f',norm([kr(ik10),kz(ik10)]))]); -% end -% if 0 -% %% Phase space distribution function time evolution -% GIFNAME = ['f_e',sprintf('_%.2d',JOBNUM)]; INTERP = 1; -% FIELD = real(ni00+ne00); X = RR; Y = ZZ; T = Ts5D; -% FIELDNAME = '$n_i-n_e$'; XNAME = '$r\rho_s$'; YNAME = '$z\rho_s$'; -% create_gif -% end diff --git a/wk/cpu_time_study.m b/wk/cpu_time_study.m deleted file mode 100644 index 21a119cf..00000000 --- a/wk/cpu_time_study.m +++ /dev/null @@ -1,134 +0,0 @@ -clear all; -CPUFREQ = 3.2e9;%[Hz] cpu clock of the computer -CTIME_EXP = 425; %[s] real time for N=64, P=2, J=1, DT = 1e-2, TMAX = 150 -CCOST_EXP = 64*64/2*4*(2*1 + 2*1)*150/1e-2; - -FACTOR = CTIME_EXP/(CCOST_EXP/CPUFREQ); - -%% Default parameters -TMAX = 20; % Maximal time unit -DT = 5e-2; % Time step -N = 20; % Frequency gridpoints (Nkr = N/2) -PMAXE = 00; % Highest electron Hermite polynomial degree -JMAXE = 00; % Highest '' Laguerre '' -PMAXI = 00; % Highest ion Hermite polynomial degree -JMAXI = 00; % Highest '' Laguerre '' - -%% CPUTIME VS DT -DTA = logspace(-3,-1,10); -NN_DT = []; CT_EST_DT = []; CT_REAL_DT = []; -for DT_ = DTA - DT = DT_; - parameters_cpu_time; - run; - load_results; - CCOST = 4*N*N/2*((PMAXE+1)*(JMAXE+1) + (PMAXI+1)*(JMAXI+1))*TMAX/DT; - NN_DT = [NN_DT,TMAX/DT_]; - CT_EST_DT = [CT_EST_DT,CCOST/CPUFREQ]; - CT_REAL_DT = [CT_REAL_DT,CPUTIME]; -end -system('rm test_cputime*'); -if 0 -%% -figure - plot(CT_EST_DT,CT_REAL_DT,'-x'); hold on; - xlabel('$4\times N^2/2 \times(P_{e+1} J_{e+1}+ P_{i+1} J_{i+1})\times N_t/\Omega_{CPU}$'); - ylabel('$\tau_\textrm{CPU}$'); grid on; -end -%% CPUTIME VS N -DT = 5e-2; % Time step -NA = [16 32 64 128 256 512]; -NN_N = []; CT_EST_N = []; CT_REAL_N = []; -for N_ = NA - N = N_; - parameters_cpu_time; - run; - load_results; - CCOST = FACTOR * N*N/2*4*((PMAXE+1)*(JMAXE+1) + (PMAXI+1)*(JMAXI+1))*TMAX/DT; - NN_N = [NN_N,TMAX/DT_]; - CT_EST_N = [CT_EST_N,CCOST/CPUFREQ]; - CT_REAL_N = [CT_REAL_N,CPUTIME]; -end -system('rm test_cputime*'); -if 0 -%% -figure - plot(CT_EST_N,CT_REAL_N,'-x'); hold on; - xlabel('$4\times N^2/2 \times(P_{e+1} J_{e+1}+ P_{i+1} J_{i+1})\times N_t/\Omega_{CPU}$'); - ylabel('$\tau_\textrm{CPU}$'); grid on; -end -%% CPUTIME VS P -DT = 5e-2; % Time step -N = 20; -PA = 0:20; -NN_P = []; CT_EST_P = []; CT_REAL_P = []; -for P_ = PA - PMAXE = P_; PMAXI = P_; - parameters_cpu_time; - run; - load_results; - CCOST = FACTOR * N*N/2*4*((PMAXE+1)*(JMAXE+1) + (PMAXI+1)*(JMAXI+1))*TMAX/DT; - NN_P = [NN_P,TMAX/DT_]; - CT_EST_P = [CT_EST_P,CCOST/CPUFREQ]; - CT_REAL_P = [CT_REAL_P,CPUTIME]; -end -system('rm test_cputime*'); -if 0 -%% -figure - plot(CT_EST_P,CT_REAL_P,'-x'); hold on; - xlabel('$4\times N^2/2 \times\sum_a P_{a+1} J_{a+1}\times N_t/\Omega_{CPU}$[s]'); - ylabel('$\tau_\textrm{CPU}$[s]'); grid on; -end -%% CPUTIME VS J -DT = 5e-2; % Time step -N = 20; -PMAXI= 0; PMAXE = 0; -JA = 0:10; -NN_J = []; CT_EST_J = []; CT_REAL_J = []; -for J_ = JA - JMAXE = J_; JMAXI = J_; - parameters_cpu_time; - run; - load_results; - CCOST = FACTOR * N*N/2*4*((PMAXE+1)*(JMAXE+1) + (PMAXI+1)*(JMAXI+1))*TMAX/DT; - NN_J = [NN_J,TMAX/DT_]; - CT_EST_J = [CT_EST_J,CCOST/CPUFREQ]; - CT_REAL_J = [CT_REAL_J,CPUTIME]; -end -system('rm test_cputime*'); -if 0 -%% -figure - plot(CT_EST_P,CT_REAL_P,'-x'); hold on; - xlabel('$4\times N^2/2 \times\sum_a P_{a+1} J_{a+1}\times N_t/\Omega_{CPU}$[s]'); - ylabel('$\tau_\textrm{CPU}$[s]'); grid on; -end -%% Overall comparison -figure - loglog(CT_EST_DT,CT_REAL_DT,'-x','DisplayName','$\Delta t$'); hold on; - plot(CT_EST_N, CT_REAL_N, '-x','DisplayName','$N$'); hold on; - plot(CT_EST_P, CT_REAL_P, '-x','DisplayName','$P$'); hold on; - plot(CT_EST_J, CT_REAL_J, '-x','DisplayName','$J$'); hold on; - xlabel('$N^{2}(\sum_a P_{a+1} J_{a+1})^{1}N_s^{1} \Omega_{cpu}^{-1}$[s]'); - ylabel('$\tau_\textrm{CPU}$'); grid on; legend('show'); - -%% -% CTIME = FACTOR * CCOST/CPUFREQ; -% HOURS = floor(CTIME/3600); -% MINUTES = floor((CTIME-3600*HOURS)/60); -% SECONDS = floor(CTIME-3600*HOURS-60*MINUTES); -% -% disp(['Computational cost ~',sprintf('%.1e',CCOST),' op.']); -% -% TIMESTRING = 'Computational time ~'; -% if HOURS > 0 -% TIMESTRING = [TIMESTRING,num2str(HOURS),'h ']; -% end -% if MINUTES > 0 -% TIMESTRING = [TIMESTRING,num2str(MINUTES),'min ']; -% end -% if (HOURS + MINUTES == 0) && (SECONDS > 0) -% TIMESTRING = [TIMESTRING,num2str(SECONDS),'s ']; -% end -% disp(TIMESTRING); diff --git a/wk/launcher.m b/wk/launcher.m deleted file mode 100644 index 0dc8d490..00000000 --- a/wk/launcher.m +++ /dev/null @@ -1,141 +0,0 @@ -SIMID = 'MOLI_Comparison'; % Name of the simulations -addpath(genpath('../matlab')) % ... add - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% outputs options -OUTPUTS.nsave_0d = 0; -OUTPUTS.nsave_1d = 0; -OUTPUTS.nsave_2d = 100; -OUTPUTS.nsave_5d = 0; -OUTPUTS.write_Na00 = '.true.'; -OUTPUTS.write_moments = '.true.'; -OUTPUTS.write_phi = '.true.'; -OUTPUTS.write_doubleprecision = '.true.'; -OUTPUTS.resfile0 = '''results'''; -%% Grid parameters -GRID.pmaxe = 5; -GRID.jmaxe = 3; -GRID.pmaxi = 5; -GRID.jmaxi = 3; -GRID.nkr = 1; -GRID.krmin = 0.; -GRID.krmax = 0.; -GRID.nkz = 1; -GRID.kzmin = 0.1; -GRID.kzmax = 0.1; -%% Model parameters -MODEL.nu = 0.1; -MODEL.tau_e = 1.0; -MODEL.tau_i = 1.0; -MODEL.sigma_e = 0.0233380; -MODEL.sigma_i = 1.0; -MODEL.q_e =-1.0; -MODEL.q_i = 1.0; -MODEL.eta_n = 1.0; -MODEL.eta_T = 0.0; -MODEL.eta_B = 0.5; -MODEL.lambdaD = 0.0; -%% Time integration and intialization parameters -TIME_INTEGRATION.numerical_scheme = '''RK4'''; -BASIC.nrun = 100000; -BASIC.dt = 0.01; -BASIC.tmax = 200; -INITIAL.initback_moments = 0.01; -INITIAL.initnoise_moments = 0.; -INITIAL.iseed = 42; - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Write input file -INPUT = write_fort90(OUTPUTS,GRID,MODEL,INITIAL,TIME_INTEGRATION,BASIC); - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Run HeLaZ -nproc = 1; -EXEC = ' ../bin/helaz '; -RUN = ['mpirun -np ' num2str(nproc)]; -CMD = [RUN, EXEC, INPUT]; -system(CMD); - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Run MOLI -MOLI_time_solver - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Analysis and basic figures -SAVEFIG = 1; -filename = 'results_00.h5'; -%% Nipj - -moment = 'Ni00'; - -kr = h5read(filename,['/data/var2d/' moment '/coordkr']); -kz = h5read(filename,['/data/var2d/' moment '/coordkz']); -timeNi = h5read(filename,'/data/var2d/time'); -Nipj = zeros(numel(timeNi),numel(kr),numel(kz)); -for it = 1:numel(timeNi) - tmp = h5read(filename,['/data/var2d/', moment,'/', num2str(it,'%06d')]); - Nipj(it,:,:) = tmp.real + 1i * tmp.imaginary; -end - -%% phi -timephi = h5read(filename,'/data/var2d/time'); -kr = h5read(filename,'/data/var2d/phi/coordkr'); -kz = h5read(filename,'/data/var2d/phi/coordkz'); -phiHeLaZ = zeros(numel(timephi),numel(kr),numel(kz)); -for it = 1:numel(timephi) - tmp = h5read(filename,['/data/var2d/phi/' num2str(it,'%06d')]); - phiHeLaZ(it,:,:) = tmp.real + 1i * tmp.imaginary; -end - -timephiMOLI = results.timeRK4; -phiMOLI = zeros(size(timephiMOLI)); -for it = 1:numel(timephiMOLI) - phiMOLI(it) = get_phi(results.NapjRK4(it,:),params,options); -end - - -%% Error -nsave = OUTPUTS.nsave_2d; -if(numel(phiMOLI(1:nsave:end)) == numel(phiHeLaZ)) - errphi = abs(phiMOLI(1:nsave:end)-phiHeLaZ)./abs(phiMOLI(1:nsave:end)); - errNipj = abs(results.NapjRK4(1:nsave:end,1)-Nipj)./abs(results.NapjRK4(1:nsave:end,1)); - figure - plot(timephi,errphi*100,'-','DisplayName','$\epsilon(\phi)$') - hold on; - plot(timephi,errNipj*100,'--','DisplayName','$\epsilon(N_i^{00})$') - title(TITLE); - xlabel('$t$'); - ylabel('$\epsilon$ [\%]') - grid on - legend('show') -else - figure - %HeLaZ results - plot(timephi,abs(phiHeLaZ),'-','DisplayName','HeLaZ RK4') - title(TITLE); - hold on - %MOLI results - plot(timephiMOLI,abs(phiMOLI),'--','DisplayName','MOLI RK4') - grid on - xlabel('$t$') - ylabel('$|\phi|$') - legend('show') - - figure - %HeLaZ results - x1 = timeNi; - y1 = abs(Nipj); - plot(x1,y1,'-','DisplayName','HeLaZ RK4') - hold on - %MOLI results - x2 = results.timeRK4; - y2 = abs(results.NapjRK4(:,1)); - plot(x2(1:100:end),y2(1:100:end),'--','DisplayName','MOLI RK4'); - title(TITLE); - grid on - legend('show') - xlabel('$t$') - ylabel(['$|',moment,'|$']) - -end -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/wk/linear_study.m b/wk/linear_study.m index 2fd31943..f290e719 100644 --- a/wk/linear_study.m +++ b/wk/linear_study.m @@ -33,7 +33,6 @@ CO = -1; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Do %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % unused -NO_E = 0; % Remove electrons dynamic % DK = 0; % Drift kinetic model (put every kernel_n to 0 except n=0 to 1) JOBNUM = 00; KPAR = 0.0; % Parellel wave vector component diff --git a/wk/debug_script.m b/wk/local_run.m similarity index 90% rename from wk/debug_script.m rename to wk/local_run.m index 7c614b01..8a8244a8 100644 --- a/wk/debug_script.m +++ b/wk/local_run.m @@ -19,7 +19,7 @@ JMAXE = 2; % Highest '' Laguerre '' PMAXI = 3; % Highest ion Hermite polynomial degree JMAXI = 2; % Highest '' Laguerre '' %% TIME PARAMETERS -TMAX = 150; % Maximal time unit +TMAX = 100; % Maximal time unit DT = 3e-2; % Time step SPS0D = 1/DT; % Sampling per time unit for profiler SPS2D = 1; % Sampling per time unit for 2D arrays @@ -28,13 +28,12 @@ SPSCP = 1/10; % Sampling per time unit for checkpoints RESTART = 0; % To restart from last checkpoint JOB2LOAD= 0; %% OPTIONS -SIMID = 'test_DGGK'; % Name of the simulation -CO = -3; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty, -3 : GK Dougherty) +SIMID = 'test_cleaning'; % Name of the simulation +CO = -1; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty, -3 : GK Dougherty) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% unused KR0KH = 0; A0KH = 0; % Background phi mode to drive Ray-Tay inst. -NO_E = 0; % Remove electrons dynamic KREQ0 = 0; % put kr = 0 KPAR = 0.0; % Parellel wave vector component LAMBDAD = 0.0; @@ -43,4 +42,7 @@ LOAD_MARCONI = 0; kmax = N*pi/L;% Highest fourier mode MU = NU_HYP/(HD_CO*kmax)^4 % Hyperdiffusivity coefficient NOISE0 = 1.0e-5; + +%% Setup and file management setup +system('rm fort.90'); \ No newline at end of file diff --git a/wk/marconi_run.m b/wk/marconi_run.m index e0011758..f817c8d2 100644 --- a/wk/marconi_run.m +++ b/wk/marconi_run.m @@ -4,7 +4,7 @@ addpath(genpath('../matlab')) % ... add %% Set Up parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% CLUSTER PARAMETERS -CLUSTER.TIME = '02:00:00'; % allocation time hh:mm:ss +CLUSTER.TIME = '24:00:00'; % allocation time hh:mm:ss CLUSTER.NODES = '1'; % MPI process CLUSTER.CPUPT = '1'; % CPU per task CLUSTER.NTPN = '24'; % N tasks per node @@ -19,10 +19,10 @@ NU_HYP = 0.1; % Hyperdiffusivity coefficient %% GRID PARAMETERS N = 200; % Frequency gridpoints (Nkr = N/2) L = 100; % Size of the squared frequency domain -P = 2; % Electron and Ion highest Hermite polynomial degree -J = 1; % Electron and Ion highest Laguerre polynomial degree +P = 8; % Electron and Ion highest Hermite polynomial degree +J = 4; % Electron and Ion highest Laguerre polynomial degree %% TIME PARAMETERS -TMAX = 400; % Maximal time unit +TMAX = 150; % Maximal time unit DT = 1e-2; % Time step SPS0D = 10; % Sampling per time unit for profiler SPS2D = 1; % Sampling per time unit for 2D arrays @@ -31,15 +31,14 @@ SPSCP = 1/10; % Sampling per time unit for checkpoints RESTART = 0; % To restart from last checkpoint JOB2LOAD= 0; %% OPTIONS -SIMID = 'Marconi_new_truncation'; % Name of the simulation -CO = -1; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty) +SIMID = 'Marconi_DGGK'; % Name of the simulation +CO = -3; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty, -3 : GK Dougherty) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% fixed parameters (for current study) KR0KH = 0; A0KH = 0; % Background phi mode to drive Ray-Tay inst. -NO_E = 0; % Remove electrons dynamic % DK = 0; % Drift kinetic model (put every kernel_n to 0 except n=0 to 1) KREQ0 = 0; % put kr = 0 KPAR = 0.0; % Parellel wave vector component @@ -56,12 +55,8 @@ NOISE0 = 1.0e-5; ETAT = 0.0; % Temperature gradient ETAN = 1.0; % Density gradient TAU = 1.0; % e/i temperature ratio -%% Run following scripts +%% Run file management scripts setup - write_sbash - -system(['scp {fort.90,batch_script.sh,setup_and_run.sh}',... - ' ahoffman@login.marconi.cineca.it:/marconi/home/userexternal/ahoffman/HeLaZ/wk']); -LOAD_MARCONI = 1; +system('rm fort.90 setup_and_run.sh batch_script.sh'); disp('done'); diff --git a/wk/marconi_scaling.m b/wk/marconi_scaling.m index fb087636..779cc514 100644 --- a/wk/marconi_scaling.m +++ b/wk/marconi_scaling.m @@ -42,7 +42,6 @@ CO = -2; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Do %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% unused KR0KH = 0; A0KH = 0; % Background phi mode to drive Ray-Tay inst. -NO_E = 0; % Remove electrons dynamic % DK = 0; % Drift kinetic model (put every kernel_n to 0 except n=0 to 1) KREQ0 = 0; % put kr = 0 KPAR = 0.0; % Parellel wave vector component diff --git a/wk/parallel_scaling.m b/wk/parallel_scaling.m deleted file mode 100644 index b1502db6..00000000 --- a/wk/parallel_scaling.m +++ /dev/null @@ -1,94 +0,0 @@ -default_plots_options - -%% Strong scaling measurement - -% Handwritten results for 256x128, P,J=2,1, Tmax = 20 -Results_256_21.np = [ 1, 2, 4, 8, 10, 12]; -Results_256_21.time = [2450, 1346, 0680, 0389, 0323, 0307]; - -% Handwritten results for 512x256, P,J=2,1, Tmax = 5 -Results_512_21.np = [ 1, 2, 4, 8, 16, 20, 24]; -Results_512_21.time = [3429, 1680, 0842, 0443, 0292, 0322, 0362]; - -% Handwritten results for 512x256, P,J=3,2, Tmax = 2, mu=0, dt 1e-2? -Results_512_32.np = [ 1, 2, 4, 8, 16, 20, 24]; -Results_512_32.time = [4450, 2267, 1136, 0595, 0363, 0323, 0000]; - -% Handwritten results for 1024x512, P,J=1,1, Tmax = 5 dt = 0.05, mu = 0 -Results_1024_11.np = [ 1, 2, 4, 6, 8, 12, 16, 20, 24]; -Results_1024_11.time = [1568, 1046, 0490, 0347, 0257, 0221, 0219, 0000, 0000]; - -% Handwritten results for 1024x512, P,J=2,2, Tmax = 2 dt = 0.05, mu = 0 -Results_1024_22.np = [ 1, 2, 4, 6, 8, 10, 12, 16, 20]; -Results_1024_22.time = [2391, 1373, 0654, 0457, 0343, 0297, 0274, 0219, 0206]; - -% Handwritten results for 1024x512, P,J=6,4, Tmax = 2 dt = 0.05, mu = 0 -Results_1024_64.np = [ 1, 2, 4, 6, 8, 10, 12, 16, 20, 24]; -Results_1024_64.time =[38957,22675,10886, 7424, 5768, 0000, 3904, 2947, 2417,2075]; - -% -fig = figure; - -plot(1:24,1:24,'-k','DisplayName','Ideal') -hold on -% res = Results_256_21; -% plot(res.np,res.time(1)./(res.time),'o--','DisplayName','$256\times128$, $P,J=2,1$'); -res = Results_512_21; -plot(res.np,res.time(1)./(res.time),'v-','DisplayName','$512\times256$, $P,J=2,1$'); -res = Results_512_32; -plot(res.np,res.time(1)./(res.time),'>-','DisplayName','$512\times256$, $P,J=3,2$'); -res = Results_1024_11; -plot(res.np,res.time(1)./(res.time),'o-','DisplayName','$1024\times512$, $P,J=1,1$'); -res = Results_1024_22; -plot(res.np,res.time(1)./(res.time),'s-','DisplayName','$1024\times512$, $P,J=2,2$');xlim([1,max(res.np)]); -res = Results_1024_64; -plot(res.np,res.time(1)./(res.time),'d-','DisplayName','$1024\times512$, $P,J=6,4$');xlim([1,max(res.np)]); -xlabel('$N_p$'); ylabel('speedup') -xlim([1,24]); ylim([1,24]) -legend('show') -title('Strong scaling') -grid on - - -FIGNAME = '/home/ahoffman/HeLaZ/results/strong_scaling_old.pdf'; -saveas(fig,FIGNAME); -disp(['Figure saved @ : ',FIGNAME]) - -if 0 -%% Weak scaling -% Handwritten results for P,J=2,1, Tmax = 5, dt = 0.01, Nz = Nr -Results_1_64.np = [ 1, 2, 4, 8]; -Results_1_64.Nr = [ 64, 90, 128, 180]; -Results_1_64.time = [0064, 0074, 0082, 0101]; - -% Handwritten results for P,J=2,1, Tmax = 5, dt = 0.01, Nz = 128 -Results_1_128.np = [ 1, 2, 4, 8, 16]; -Results_1_128.Nr = [ 32, 64, 128, 256, 512]; -Results_1_128.time = [0032, 0037, 0043, 0049, 0070]; - -% Handwritten results for Tmax = 5, dt = 0.05, mu = 0, etab =0, Pi=Ji=Pe=Je=1 -Results_1_128.np = [ 1, 2, 4, 6, 16]; -Results_1_128.N = [ 256, 360, 512, 720, 1024]; -Results_1_128.time = [0059, 0072, 0000, 0153, 0070]; - -% -fig = figure; - -plot(Results_1_64.np,Results_1_64.time,'ob','DisplayName','$256\times128$'); -hold on -plot(Results_1_64.np,Results_1_64.time(1)*ones(numel(Results_1_64.np)),'--b','DisplayName','Ideal') - -plot(Results_1_128.np,Results_1_128.time,'or','DisplayName','$256\times128$'); -plot(Results_1_128.np,Results_1_128.time(1)*ones(numel(Results_1_128.np)),'--r','DisplayName','Ideal') - -xlim([1,max(res.np)]); -xlabel('$N_p$'); ylabel('CPU time [s]') -legend('show') -title('Weak scaling') -grid on - - -FIGNAME = '/home/ahoffman/HeLaZ/results/weak_scaling.pdf'; -saveas(fig,FIGNAME); -disp(['Figure saved @ : ',FIGNAME]) -end \ No newline at end of file diff --git a/wk/parallel_scaling_old.m b/wk/parallel_scaling_old.m deleted file mode 100644 index b1502db6..00000000 --- a/wk/parallel_scaling_old.m +++ /dev/null @@ -1,94 +0,0 @@ -default_plots_options - -%% Strong scaling measurement - -% Handwritten results for 256x128, P,J=2,1, Tmax = 20 -Results_256_21.np = [ 1, 2, 4, 8, 10, 12]; -Results_256_21.time = [2450, 1346, 0680, 0389, 0323, 0307]; - -% Handwritten results for 512x256, P,J=2,1, Tmax = 5 -Results_512_21.np = [ 1, 2, 4, 8, 16, 20, 24]; -Results_512_21.time = [3429, 1680, 0842, 0443, 0292, 0322, 0362]; - -% Handwritten results for 512x256, P,J=3,2, Tmax = 2, mu=0, dt 1e-2? -Results_512_32.np = [ 1, 2, 4, 8, 16, 20, 24]; -Results_512_32.time = [4450, 2267, 1136, 0595, 0363, 0323, 0000]; - -% Handwritten results for 1024x512, P,J=1,1, Tmax = 5 dt = 0.05, mu = 0 -Results_1024_11.np = [ 1, 2, 4, 6, 8, 12, 16, 20, 24]; -Results_1024_11.time = [1568, 1046, 0490, 0347, 0257, 0221, 0219, 0000, 0000]; - -% Handwritten results for 1024x512, P,J=2,2, Tmax = 2 dt = 0.05, mu = 0 -Results_1024_22.np = [ 1, 2, 4, 6, 8, 10, 12, 16, 20]; -Results_1024_22.time = [2391, 1373, 0654, 0457, 0343, 0297, 0274, 0219, 0206]; - -% Handwritten results for 1024x512, P,J=6,4, Tmax = 2 dt = 0.05, mu = 0 -Results_1024_64.np = [ 1, 2, 4, 6, 8, 10, 12, 16, 20, 24]; -Results_1024_64.time =[38957,22675,10886, 7424, 5768, 0000, 3904, 2947, 2417,2075]; - -% -fig = figure; - -plot(1:24,1:24,'-k','DisplayName','Ideal') -hold on -% res = Results_256_21; -% plot(res.np,res.time(1)./(res.time),'o--','DisplayName','$256\times128$, $P,J=2,1$'); -res = Results_512_21; -plot(res.np,res.time(1)./(res.time),'v-','DisplayName','$512\times256$, $P,J=2,1$'); -res = Results_512_32; -plot(res.np,res.time(1)./(res.time),'>-','DisplayName','$512\times256$, $P,J=3,2$'); -res = Results_1024_11; -plot(res.np,res.time(1)./(res.time),'o-','DisplayName','$1024\times512$, $P,J=1,1$'); -res = Results_1024_22; -plot(res.np,res.time(1)./(res.time),'s-','DisplayName','$1024\times512$, $P,J=2,2$');xlim([1,max(res.np)]); -res = Results_1024_64; -plot(res.np,res.time(1)./(res.time),'d-','DisplayName','$1024\times512$, $P,J=6,4$');xlim([1,max(res.np)]); -xlabel('$N_p$'); ylabel('speedup') -xlim([1,24]); ylim([1,24]) -legend('show') -title('Strong scaling') -grid on - - -FIGNAME = '/home/ahoffman/HeLaZ/results/strong_scaling_old.pdf'; -saveas(fig,FIGNAME); -disp(['Figure saved @ : ',FIGNAME]) - -if 0 -%% Weak scaling -% Handwritten results for P,J=2,1, Tmax = 5, dt = 0.01, Nz = Nr -Results_1_64.np = [ 1, 2, 4, 8]; -Results_1_64.Nr = [ 64, 90, 128, 180]; -Results_1_64.time = [0064, 0074, 0082, 0101]; - -% Handwritten results for P,J=2,1, Tmax = 5, dt = 0.01, Nz = 128 -Results_1_128.np = [ 1, 2, 4, 8, 16]; -Results_1_128.Nr = [ 32, 64, 128, 256, 512]; -Results_1_128.time = [0032, 0037, 0043, 0049, 0070]; - -% Handwritten results for Tmax = 5, dt = 0.05, mu = 0, etab =0, Pi=Ji=Pe=Je=1 -Results_1_128.np = [ 1, 2, 4, 6, 16]; -Results_1_128.N = [ 256, 360, 512, 720, 1024]; -Results_1_128.time = [0059, 0072, 0000, 0153, 0070]; - -% -fig = figure; - -plot(Results_1_64.np,Results_1_64.time,'ob','DisplayName','$256\times128$'); -hold on -plot(Results_1_64.np,Results_1_64.time(1)*ones(numel(Results_1_64.np)),'--b','DisplayName','Ideal') - -plot(Results_1_128.np,Results_1_128.time,'or','DisplayName','$256\times128$'); -plot(Results_1_128.np,Results_1_128.time(1)*ones(numel(Results_1_128.np)),'--r','DisplayName','Ideal') - -xlim([1,max(res.np)]); -xlabel('$N_p$'); ylabel('CPU time [s]') -legend('show') -title('Weak scaling') -grid on - - -FIGNAME = '/home/ahoffman/HeLaZ/results/weak_scaling.pdf'; -saveas(fig,FIGNAME); -disp(['Figure saved @ : ',FIGNAME]) -end \ No newline at end of file diff --git a/wk/parameters_KH.m b/wk/parameters_KH.m deleted file mode 100644 index 62530499..00000000 --- a/wk/parameters_KH.m +++ /dev/null @@ -1,42 +0,0 @@ -% clear all; -addpath(genpath('../matlab')) % ... add -default_plots_options -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Set Up parameters -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% PHYSICAL PARAMETERS -NU = 0e-3; % Collision frequency -TAU = 1.0; % e/i temperature ratio -ETAB = 0.0; % Magnetic gradient -ETAN = 0.0; % Density gradient -ETAT = 0.0; % Temperature gradient -MU = 1e-4; % Hyper diffusivity coefficient -LAMBDAD = 0.0; -NOISE0 = 1.0e-4; -%% GRID PARAMETERS -N = 64; % Frequency gridpoints (Nkr = N/2) -L = 40; % Size of the squared frequency domain -N0 = 16; % Periods number for the background sinusoidal profile -KR0KH = N0*2*pi/L; A0KH = 5/N0; % KH inst. -KREQ0 = 0; % put kr = 0 -PMAXE = 00; % Highest electron Hermite polynomial degree -JMAXE = 07; % Highest '' Laguerre '' -PMAXI = 00; % Highest ion Hermite polynomial degree -JMAXI = 07; % Highest '' Laguerre '' -KPAR = 0.0; % Parellel wave vector component -%% TIME PARAMETERS -TMAX = 20; % Maximal time unit -DT = 1e-4; % Time step -SPS = 1; % Sampling per time unit -RESTART = 0; % To restart from last checkpoint -JOB2LOAD= 00; -%% OPTIONS -SIMID = 'KH_lin_mode'; % Name of the simulation -NON_LIN = 0 *(1-KREQ0); % activate non-linearity (is cancelled if KREQ0 = 1) -CO = 0; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty) -% DK = 0; % Drift kinetic model (put every kernel_n to 0 except n=0 to 1) -NO_E = 0; % Remove electrons dynamic -WRITE5D = '.true.'; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -setup \ No newline at end of file diff --git a/wk/parameters_ZP.m b/wk/parameters_ZP.m deleted file mode 100644 index 41d2dd46..00000000 --- a/wk/parameters_ZP.m +++ /dev/null @@ -1,42 +0,0 @@ -%clear all; -addpath(genpath('../matlab')) % ... add -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Set Up parameters -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% PHYSICAL PARAMETERS -NU = 1e-1; % Collision frequency -TAU = 1.0; % e/i temperature ratio -ETAB = 0.5; % Magnetic gradient -ETAN = 1.0; % Density gradient -ETAT = 0.0; % Temperature gradient -MU = 5e-4; % Hyper diffusivity coefficient -NOISE0 = 1.0e-5; -%% GRID PARAMETERS -N = 128; % Frequency gridpoints (Nkr = N/2) -L = 33; % Size of the squared frequency domain -PMAXE = 0; % Highest electron Hermite polynomial degree -JMAXE = 0; % Highest '' Laguerre '' -PMAXI = 0; % Highest ion Hermite polynomial degree -JMAXI = 0; % Highest '' Laguerre '' -%% TIME PARAMETERS -TMAX = 10; % Maximal time unit -DT = 1e-2; % Time step -SPS0D = 1; % Sampling per time unit for 2D arrays -SPS2D = 1; % Sampling per time unit for 2D arrays -SPS5D = 0.1; % Sampling per time unit for 5D arrays -RESTART = 0; % To restart from last checkpoint -JOB2LOAD= 1; -%% OPTIONS -SIMID = 'ZP'; % Name of the simulation -CO = -1; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty) -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% unused -% DK = 0; % Drift kinetic model (put every kernel_n to 0 except n=0 to 1) -KREQ0 = 0; % put kr = 0 -KPAR = 0.0; % Parellel wave vector component -LAMBDAD = 0.0; -NON_LIN = 1 *(1-KREQ0); % activate non-linearity (is cancelled if KREQ0 = 1) -LOAD_MARCONI = 0; - -setup diff --git a/wk/parameters_cpu_time.m b/wk/parameters_cpu_time.m deleted file mode 100644 index eaba00c4..00000000 --- a/wk/parameters_cpu_time.m +++ /dev/null @@ -1,44 +0,0 @@ -% clear all; -addpath(genpath('../matlab')) % ... add -default_plots_options -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Set Up parameters -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% PHYSICAL PARAMETERS -NU = 1e-2; % Collision frequency -TAU = 1.0; % e/i temperature ratio -ETAB = 0.0; % Magnetic gradient -ETAN = 1.0; % Density gradient -ETAT = 0.0; % Temperature gradient -MU = 1e-8; % Hyper diffusivity coefficient -LAMBDAD = 0.0; -NOISE0 = 5.0e-5; -%% GRID PARAMETERS -% N = 32; % Frequency gridpoints (Nkr = N/2) -L = 10; % Size of the squared frequency domain -KREQ0 = 0; % put kr = 0 -% PMAXE = 02; % Highest electron Hermite polynomial degree -% JMAXE = 00; % Highest '' Laguerre '' -% PMAXI = 02; % Highest ion Hermite polynomial degree -% JMAXI = 00; % Highest '' Laguerre '' -KPAR = 0.0; % Parellel wave vector component -%% TIME PARAMETERS -% TMAX = 10; % Maximal time unit -% DT = 1e-2; % Time step -SPS2D = 5; % Sampling per time unit for 2D arrays -SPS5D = 0.5; % Sampling per time unit for 5D arrays -RESTART = 0; % To restart from last checkpoint -JOB2LOAD= 00; -%% OPTIONS -SIMID = 'test_cputime'; % Name of the simulation -NON_LIN = 1 *(1-KREQ0); % activate non-linearity (is cancelled if KREQ0 = 1) -CO = -2; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty) -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unused -KR0KH = 0; A0KH = 0; % Background phi mode to drive Ray-Tay inst. -NO_E = 0; % Remove electrons dynamic -% DK = 0; % Drift kinetic model (put every kernel_n to 0 except n=0 to 1) - - -setup diff --git a/wk/run.m b/wk/run.m deleted file mode 100644 index 47b7d433..00000000 --- a/wk/run.m +++ /dev/null @@ -1,5 +0,0 @@ -%% Run HeLaZ -EXEC = ' ../bin/helaz '; -RUN = ['mpirun -np ' num2str(nproc)]; -CMD = [RUN, EXEC, INPUT]; -system(CMD); \ No newline at end of file diff --git a/wk/parallel_scaling_new.m b/wk/scaling_results.m similarity index 100% rename from wk/parallel_scaling_new.m rename to wk/scaling_results.m -- GitLab