Skip to content
Snippets Groups Projects
Commit 355bb4bf authored by Antoine Cyril David Hoffmann's avatar Antoine Cyril David Hoffmann
Browse files

saving data is disabled by negative nsave now

parent accf2cc1
No related branches found
No related tags found
No related merge requests found
......@@ -38,16 +38,19 @@ SUBROUTINE diagnose(kstep)
IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') TRIM(resfile), ' created'
! Checkpoint file creation
WRITE(rstfile,'(a,a1,i2.2,a3)') TRIM(rstfile0),'_',jobnum,'.h5'
CALL creatf(rstfile, fidrst, real_prec='d', mpicomm=MPI_COMM_WORLD)
CALL creatg(fidrst, '/Basic', 'Basic data')
CALL creatg(fidrst, '/Basic/moments_e', 'electron moments')
CALL creatg(fidrst, '/Basic/moments_i', 'ion moments')
CALL creatg(fidrst, '/Basic/phi', 'ES potential')
IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') TRIM(rstfile), ' created'
CALL flush(6)
IF (nsave_cp .GT. 0) THEN
WRITE(rstfile,'(a,a1,i2.2,a3)') TRIM(rstfile0),'_',jobnum,'.h5'
CALL creatf(rstfile, fidrst, real_prec='d', mpicomm=MPI_COMM_WORLD)
CALL creatg(fidrst, '/Basic', 'Basic data')
CALL creatg(fidrst, '/Basic/moments_e', 'electron moments')
CALL creatg(fidrst, '/Basic/moments_i', 'ion moments')
CALL creatg(fidrst, '/Basic/phi', 'ES potential')
IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') TRIM(rstfile), ' created'
CALL flush(6)
ELSE
IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') 'No checkpoint'
ENDIF
! Data group
CALL creatg(fidres, "/data", "data")
......@@ -85,79 +88,56 @@ SUBROUTINE diagnose(kstep)
CALL creatd(fidres, rank, dims, "/data/var2d/time", "Time t*c_s/R")
CALL creatd(fidres, rank, dims, "/data/var2d/cstep", "iteration number")
IF (nsave_2d .NE. 0) THEN
IF (nsave_2d .GT. 0) THEN
CALL creatg(fidres, "/data/var2d/Ne00", "Ne00")
IF (num_procs .EQ. 1) THEN
CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
ELSE
CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
ENDIF
CALL putarr(fidres, "/data/var2d/Ne00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL creatg(fidres, "/data/var2d/Ni00", "Ni00")
IF (num_procs .EQ. 1) THEN
CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
ELSE
CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
ENDIF
CALL putarr(fidres, "/data/var2d/Ni00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
END IF
IF (nsave_2d .NE. 0) THEN
CALL creatg(fidres, "/data/var2d/phi", "phi")
IF (num_procs .EQ. 1) THEN
CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var2d/phi/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
ELSE
CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
CALL putarr(fidres, "/data/var2d/phi/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
ENDIF
CALL putarr(fidres, "/data/var2d/phi/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var2d/Ne00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var2d/Ni00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var2d/phi/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
END IF
! var5d group (moments)
rank = 0
CALL creatd(fidres, rank, dims, "/data/var5d/time", "Time t*c_s/R")
CALL creatd(fidres, rank, dims, "/data/var5d/cstep", "iteration number")
IF (nsave_5d .NE. 0) THEN
IF (nsave_5d .GT. 0) THEN
CALL creatg(fidres, "/data/var5d/moments_e", "moments_e")
CALL creatg(fidres, "/data/var5d/moments_i", "moments_i")
CALL creatg(fidres, "/data/var5d/Sepj", "Sepj")
CALL creatg(fidres, "/data/var5d/Sipj", "Sipj")
CALL putarr(fidres, "/data/var5d/moments_e/coordp", parray_e(ips_e:ipe_e), "p_e", ionode=0)
CALL putarr(fidres, "/data/var5d/moments_e/coordj", jarray_e(ijs_e:ije_e), "j_e", ionode=0)
IF (num_procs .EQ. 1) THEN
CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
ELSE
CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
ENDIF
CALL putarr(fidres, "/data/var5d/moments_e/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL creatg(fidres, "/data/var5d/moments_i", "moments_i")
CALL putarr(fidres, "/data/var5d/moments_i/coordp", parray_i(ips_i:ipe_i), "p_i", ionode=0)
CALL putarr(fidres, "/data/var5d/moments_i/coordj", jarray_i(ijs_i:ije_i), "j_i", ionode=0)
IF (num_procs .EQ. 1) THEN
CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
ELSE
CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
ENDIF
CALL putarr(fidres, "/data/var5d/moments_i/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
END IF
IF (nsave_5d .NE. 0) THEN
CALL creatg(fidres, "/data/var5d/Sepj", "Sepj")
CALL putarr(fidres, "/data/var5d/Sepj/coordp", parray_e(ips_e:ipe_e), "p_e", ionode=0)
CALL putarr(fidres, "/data/var5d/Sepj/coordj", jarray_e(ijs_e:ije_e), "j_e", ionode=0)
IF (num_procs .EQ. 1) THEN
CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
ELSE
CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
ENDIF
CALL putarr(fidres, "/data/var5d/Sepj/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL creatg(fidres, "/data/var5d/Sipj", "Sipj")
CALL putarr(fidres, "/data/var5d/Sipj/coordp", parray_i(ips_i:ipe_i), "p_i", ionode=0)
CALL putarr(fidres, "/data/var5d/Sipj/coordj", jarray_i(ijs_i:ije_i), "j_i", ionode=0)
IF (num_procs .EQ. 1) THEN
CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var5d/Sipj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0)
ELSE
CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
CALL putarr(fidres, "/data/var5d/Sipj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1)
ENDIF
CALL putarr(fidres, "/data/var5d/moments_e/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var5d/moments_i/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var5d/Sepj/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
CALL putarr(fidres, "/data/var5d/Sipj/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0)
END IF
......@@ -232,7 +212,7 @@ SUBROUTINE diagnose(kstep)
ENDIF
! 2.1 0d history arrays
IF (nsave_0d .NE. 0) THEN
IF (nsave_0d .GT. 0) THEN
IF ( MOD(cstep, nsave_0d) == 0 ) THEN
CALL diagnose_0d
END IF
......@@ -242,21 +222,21 @@ SUBROUTINE diagnose(kstep)
! empty in our case
! 2.3 2d profiles
IF (nsave_2d .NE. 0) THEN
IF (nsave_2d .GT. 0) THEN
IF (MOD(cstep, nsave_2d) == 0) THEN
CALL diagnose_2d
END IF
END IF
! 2.4 3d profiles
IF (nsave_5d .NE. 0) THEN
IF (nsave_5d .GT. 0) THEN
IF (MOD(cstep, nsave_5d) == 0) THEN
CALL diagnose_5d
END IF
END IF
! 2.5 Backups
IF (nsave_cp .NE. 0) THEN
IF (nsave_cp .GT. 0) THEN
IF (MOD(cstep, nsave_cp) == 0) THEN
CALL checkpoint_save(cp_counter)
cp_counter = cp_counter + 1
......@@ -274,7 +254,9 @@ SUBROUTINE diagnose(kstep)
! Close all diagnostic files
CALL closef(fidres)
CALL closef(fidrst)
IF (nsave_cp .GT. 0) THEN
CALL closef(fidrst)
ENDIF
END IF
......
......@@ -7,8 +7,8 @@ addpath(genpath('../matlab')) % ... add
CLUSTER.TIME = '01:00:00'; % allocation time hh:mm:ss
CLUSTER.NODES = '01'; % MPI process
CLUSTER.CPUPT = '01'; % CPU per task
CLUSTER.NTPN = '01'; % N tasks per node (openMP)
CLUSTER.PART = 'dbg'; % dbg or prod
CLUSTER.NTPN = '24'; % N tasks per node (openMP)
CLUSTER.PART = 'prod'; % dbg or prod
CLUSTER.MEM = '16GB'; % Memory
%% PHYSICAL PARAMETERS
NU = 1e-1; % Collision frequency
......@@ -19,23 +19,23 @@ ETAT = 0.0; % Temperature gradient
MU = 0e-4; % Hyper diffusivity coefficient
NOISE0 = 1.0e-5;
%% GRID PARAMETERS
N = 512; % Frequency gridpoints (Nkr = N/2)
L = 100; % Size of the squared frequency domain
PMAXE = 2; % Highest electron Hermite polynomial degree
JMAXE = 1; % Highest '' Laguerre ''
PMAXI = 2; % Highest ion Hermite polynomial degree
JMAXI = 1; % Highest '' Laguerre ''
N = 128; % Frequency gridpoints (Nkr = N/2)
L = 10; % Size of the squared frequency domain
PMAXE = 6; % Highest electron Hermite polynomial degree
JMAXE = 4; % Highest '' Laguerre ''
PMAXI = 6; % Highest ion Hermite polynomial degree
JMAXI = 4; % Highest '' Laguerre ''
%% TIME PARAMETERS
TMAX = 5; % Maximal time unit
TMAX = 2; % Maximal time unit
DT = 5e-2; % Time step
SPS0D = 1/DT; % Sampling per time unit for profiler
SPS2D = 0; % Sampling per time unit for 2D arrays
SPS5D = 0; % Sampling per time unit for 5D arrays
SPSCP = 0; % Sampling per time unit for checkpoints
SPS2D = -1; % Sampling per time unit for 2D arrays
SPS5D = -1; % Sampling per time unit for 5D arrays
SPSCP = -1; % Sampling per time unit for checkpoints
RESTART = 0; % To restart from last checkpoint
JOB2LOAD= 0;
%% OPTIONS
SIMID = ['Scaling__np',num2str(CLUSTER.NTPN)]; % Name of the simulation
SIMID = ['Scaling_np',num2str(CLUSTER.NTPN)]; % Name of the simulation
CO = -2; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......
......@@ -77,7 +77,7 @@ BASIC.maxruntime = str2num(CLUSTER.TIME(1:2))*3600 ...
% Outputs parameters
if RESTART; BASIC.RESTART = '.true.'; else; BASIC.RESTART = '.false.';end;
OUTPUTS.nsave_0d = floor(1.0/SPS0D/DT);
OUTPUTS.nsave_1d = 0;
OUTPUTS.nsave_1d = -1;
OUTPUTS.nsave_2d = floor(1.0/SPS2D/DT);
OUTPUTS.nsave_5d = floor(1.0/SPS5D/DT);
OUTPUTS.nsave_cp = floor(1.0/SPSCP/DT);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment