Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Gyacomo
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Antoine Cyril David Hoffmann
Gyacomo
Commits
355bb4bf
Commit
355bb4bf
authored
4 years ago
by
Antoine Cyril David Hoffmann
Browse files
Options
Downloads
Patches
Plain Diff
saving data is disabled by negative nsave now
parent
accf2cc1
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/diagnose.F90
+42
-60
42 additions, 60 deletions
src/diagnose.F90
wk/marconi_scaling.m
+13
-13
13 additions, 13 deletions
wk/marconi_scaling.m
wk/setup.m
+1
-1
1 addition, 1 deletion
wk/setup.m
with
56 additions
and
74 deletions
src/diagnose.F90
+
42
−
60
View file @
355bb4bf
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
wk/marconi_scaling.m
+
13
−
13
View file @
355bb4bf
...
...
@@ -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
=
5
12
;
% Frequency gridpoints (Nkr = N/2)
L
=
10
0
;
% 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
=
12
8
;
% 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)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
...
This diff is collapsed.
Click to expand it.
wk/setup.m
+
1
−
1
View file @
355bb4bf
...
...
@@ -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
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment