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