Skip to content
Snippets Groups Projects
Commit c41cfdbc authored by Antoine Cyril David Hoffmann's avatar Antoine Cyril David Hoffmann :seedling:
Browse files

update scripts

parent 5496e555
No related branches found
No related tags found
No related merge requests found
......@@ -62,7 +62,7 @@ while(CONTINUE)
% Loading from output file
% CPUTIME = h5readatt(filename,'/data/input','cpu_time');
% DT_SIM = h5readatt(filename,'/data/input','dt');
[Pe, Je, Pi, Ji, kx, ky, z] = load_grid_data(filename);
[P, J, kx, ky, z] = load_grid_data(filename);
W_GAMMA = strcmp(h5readatt(filename,'/data/input','write_gamma'),'y');
W_HF = strcmp(h5readatt(filename,'/data/input','write_hf' ),'y');
W_PHI = strcmp(h5readatt(filename,'/data/input','write_phi' ),'y');
......@@ -78,8 +78,8 @@ while(CONTINUE)
BETA = 0;
end
% Check polynomials degrees
Pe_new= numel(Pe); Je_new= numel(Je);
Pi_new= numel(Pi); Ji_new= numel(Ji);
Pe_new= numel(P); Je_new= numel(J);
Pi_new= numel(P); Ji_new= numel(J);
if(Pe_max < Pe_new); Pe_max = Pe_new; end;
if(Je_max < Je_new); Je_max = Je_new; end;
if(Pi_max < Pi_new); Pi_max = Pi_new; end;
......@@ -305,13 +305,13 @@ else
DATA.PSI = PSI_;
DATA.KIN_E=KIN_E;
% grids
DATA.Pe = Pe; DATA.Pi = Pi;
DATA.Je = Je; DATA.Ji = Ji;
DATA.Pe = P; DATA.Pi = P;
DATA.Je = J; DATA.Ji = J;
DATA.kx = kx; DATA.ky = ky; DATA.z = z; DATA.Npol = -z(1)/pi;
DATA.x = x; DATA.y = y;
DATA.ikx0 = ikx0; DATA.iky0 = iky0;
DATA.Nx = Nx; DATA.Ny = Ny; DATA.Nz = Nz; DATA.Nkx = Nkx; DATA.Nky = Nky;
DATA.Pmaxe = numel(Pe); DATA.Pmaxi = numel(Pi); DATA.Jmaxe = numel(Je); DATA.Jmaxi = numel(Ji);
DATA.Pmaxe = numel(P); DATA.Pmaxi = numel(P); DATA.Jmaxe = numel(J); DATA.Jmaxi = numel(J);
DATA.dir = DIRECTORY;
DATA.localdir = DIRECTORY;
DATA.param_title=['$\nu_{',DATA.CONAME,'}=$', num2str(DATA.NU), ...
......
......@@ -160,7 +160,7 @@ for i = 1:2
lb_= '\gamma';
end
errorbar(x_,y_,e_,'-ok',...
'LineWidth',1.5,...
'LineWidth',1.5,'MarkerSize',10,...
'DisplayName',...
['$\gamma$, (',num2str(DATA.inputs.PMAX),',',num2str(DATA.inputs.JMAX),')']);
hold on;
......@@ -172,8 +172,8 @@ for i = 1:2
end
% ylabel('$\gamma$');
% yyaxis("right")
errorbar(k(MODES),imag(omega(ik)),imag(err(ik)),'--ok',...
'LineWidth',1.5,...
errorbar(k(MODES),imag(omega(ik)),imag(err(ik)),'*k',...
'LineWidth',1.5,'MarkerSize',10,...
'DisplayName',...
['$\omega$, (',num2str(DATA.inputs.PMAX),',',num2str(DATA.inputs.JMAX),')']);
hold on;
......
gyacomodir = pwd; gyacomodir = gyacomodir(1:end-2); % get code directory
addpath(genpath([gyacomodir,'matlab'])) % ... add
addpath(genpath([gyacomodir,'matlab/plot'])) % ... add
addpath(genpath([gyacomodir,'matlab/compute'])) % ... add
addpath(genpath([gyacomodir,'matlab/load'])) % ... add
default_plots_options
options.RESOLUTION = 256;
% Partition of the computer where the data have to be searched
J0 = 00; J1 = 10;
% DATADIR = '/Users/ahoffmann/gyacomo/testcases/DIII-D_triangularity_fast_nonlinear/';
% DATADIR = '/Users/ahoffmann/gyacomo/testcases/HEL_DIII-D_triangularity/';
DATADIR = '/Users/ahoffmann/gyacomo/testcases/cyclone_example/';
data = {};
data = compile_results_low_mem(data,DATADIR,J0,J1);
if 1
%% Plot transport and phi radial profile
[data.PHI, data.Ts3D] = compile_results_3D(DATADIR,J0,J1,'phi');
options.TAVG_0 = 100;
options.TAVG_1 = 1000;
options.NCUT = 5; % Number of cuts for averaging and error estimation
options.NMVA = 1; % Moving average for time traces
options.ST_FIELD = '\phi'; % chose your field to plot in spacetime diag (e.g \phi,v_x,G_x)
options.INTERP = 1;
plot_radial_transport_and_spacetime(data,options);
end
if 0
%% MOVIES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Options
[data.PHI, data.Ts3D] = compile_results_3D(DATADIR,J0,J1,'phi');
[data.Na00, data.Ts3D] = compile_results_3Da(DATADIR,J0,J1,'Na00');
data.Ni00 = reshape(data.Na00(1,:,:,:,:),data.grids.Nky,data.grids.Nkx,data.grids.Nz,numel(data.Ts3D));
options.INTERP = 1;
options.POLARPLOT = 0;
options.BWR = 1; % bluewhitered plot or gray
options.CLIMAUTO = 0; % adjust the colormap auto
options.NAME = '\phi';
% options.NAME = 'N_i^{00}';
options.PLAN = 'xy';
options.COMP = 9;
options.TIME = data.Ts3D(1:2:end);
data.EPS = 0.1;
data.a = data.EPS * 2000;
create_film(data,options,'.gif')
end
if 0
%% field snapshots
% Options
[data.Na00, data.Ts3D] = compile_results_3Da(data.folder,J0,J1,'Na00');
[data.PHI, data.Ts3D] = compile_results_3D(data.folder,J0,J1,'phi');
data.Ni00 = reshape(data.Na00(1,:,:,:,:),data.grids.Nky,data.grids.Nkx,data.grids.Nz,numel(data.Ts3D));
options.INTERP = 0;
options.POLARPLOT = 0;
options.AXISEQUAL = 0;
options.NORMALIZE = 0;
options.LOGSCALE = 0;
options.CLIMAUTO = 1;
options.NAME = 'N_i^{00}';
% options.NAME = 's_{Ey}';
% options.NAME = '\phi';
options.PLAN = 'yz';
options.COMP = 'avg';
options.TIME = [10 30];
fig = photomaton(data,options);
colormap(gray)
clim('auto')
% save_figure(data,fig)
end
if 0
%% Performance profiler
profiler(data)
end
if 0
%% Hermite-Laguerre spectrum
[data.Napjz, data.Ts3D] = compile_results_3Da(DATADIR,J0,J1,'Napjz');
% [data.Napjz, data.Ts3D] = compile_results_3D(DATADIR,J0,J1,'Nipjz');
options.ST = 0;
options.NORMALIZED = 0;
options.LOGSCALE = 1;
options.FILTER = 0; %filter the 50% time-average of the spectrum from
options.TAVG_2D = 0; %Show a 2D plot of the modes, 50% time averaged
options.TAVG_2D_CTR= 0; %make it contour plot
fig = show_moments_spectrum(data,options);
end
%% Reference values
% See Neiser et al. 2019 Gyrokinetic GENE simulations of DIII-D near-edge L-mode plasmas
%% Set simulation parameters
SIMID = 'lin_DIID_LM_rho90'; % Name of the simulation
SIMID = 'lin_DIIID_LM_rho90'; % Name of the simulation
%% Set up physical parameters
CLUSTER.TIME = '99:00:00'; % Allocation time hh:mm:ss
NU = 1.0; %(0.00235 in GENE)
......@@ -47,9 +47,9 @@ PB_PHASE = 0;
%% TIME PARAMETERS
TMAX = 10; % Maximal time unit
DT = 5e-4; % Time step
DTSAVE0D = 0.5; % Sampling time for 0D arrays
DTSAVE0D = 0.1; % Sampling time for 0D arrays
DTSAVE2D = -1; % Sampling time for 2D arrays
DTSAVE3D = 0.5; % Sampling time for 3D arrays
DTSAVE3D = 0.1; % Sampling time for 3D arrays
DTSAVE5D = 100; % Sampling time for 5D arrays
JOB2LOAD = -1; % Start a new simulation serie
......
%% Reference values
% See Staebler et al. 2023
%% Set simulation parameters
SIMID = 'lin_GASTD'; % Name of the simulation
%% Set up physical parameters
CLUSTER.TIME = '99:00:00'; % Allocation time hh:mm:ss
NU = 0.05; %(0.00235 in GENE)
TAU = 1; % i/e temperature ratio
K_Ne = 1; % ele Density '''
K_Te = 3; % ele Temperature '''
K_Ni = 1; % ion Density gradient drive
K_Ti = 3; % ion Temperature '''
SIGMA_E = 0.0233380;%/sqrt(2); % mass ratio sqrt(m_a/m_i) (correct = 0.0233380)
NA = 2; % number of kinetic species
ADIAB_E = (NA==1); % adiabatic electron model
BETA = 0; % electron plasma beta in prct
MHD_PD = 1;
%% Set up grid parameters
P = 2;
J = P/2;%P/2;
PMAX = P; % Hermite basis size
JMAX = J; % Laguerre basis size
NX = 4; % real space x-gridpoints
NY = 2; % real space y-gridpoints
LX = 2*pi/0.1; % Size of the squared frequency domain in x direction
LY = 2*pi/0.5; % Size of the squared frequency domain in y direction
NZ = 16; % number of perpendicular planes (parallel grid)
SG = 0; % Staggered z grids option
NEXC = 1; % To extend Lx if needed (Lx = Nexc/(kymin*shear))
%% GEOMETRY
% GEOMETRY= 's-alpha';
GEOMETRY= 'miller';
Q0 = 2; % safety factor
SHEAR = 1; % magnetic shear
EPS = 1/3; % inverse aspect ratio
KAPPA = 1.0; % elongation
S_KAPPA = 0;
DELTA = 0; % triangularity
S_DELTA = 0;
ZETA = 0; % squareness
S_ZETA = 0;
PARALLEL_BC = 'dirichlet'; % Boundary condition for parallel direction ('dirichlet','periodic','shearless','disconnected')
SHIFT_Y = 0.0; % Shift in the periodic BC in z
NPOL = 1; % Number of poloidal turns
PB_PHASE = 0;
%% TIME PARAMETERS
TMAX = 20; % Maximal time unit
DT = 1e-2; % Time step
DTSAVE0D = 1.0; % Sampling time for 0D arrays
DTSAVE2D = -1; % Sampling time for 2D arrays
DTSAVE3D = 1.0; % Sampling time for 3D arrays
DTSAVE5D = 100; % Sampling time for 5D arrays
JOB2LOAD = -1; % Start a new simulation serie
%% OPTIONS
LINEARITY = 'linear'; % activate non-linearity (is cancelled if KXEQ0 = 1)
CO = 'DG'; % Collision operator (LB:L.Bernstein, DG:Dougherty, SG:Sugama, LR: Lorentz, LD: Landau)
GKCO = 1; % Gyrokinetic operator
ABCO = 1; % INTERSPECIES collisions
INIT_ZF = 0; % Initialize zero-field quantities
HRCY_CLOS = 'truncation'; % Closure model for higher order moments
DMAX = -1;
NLIN_CLOS = 'truncation'; % Nonlinear closure model for higher order moments
NMAX = 0;
KERN = 0; % Kernel model (0 : GK)
INIT_OPT = 'phi'; % Start simulation with a noisy mom00/phi/allmom
NUMERICAL_SCHEME = 'RK4'; % Numerical integration scheme (RK2,SSPx_RK2,RK3,SSP_RK3,SSPx_RK3,IMEX_SSP2,ARK2,RK4,DOPRI5)
%% OUTPUTS
W_DOUBLE = 1; % Output flag for double moments
W_GAMMA = 1; % Output flag for gamma (Gyrokinetic Energy)
W_HF = 1; % Output flag for high-frequency potential energy
W_PHI = 1; % Output flag for potential
W_NA00 = 1; % Output flag for nalpha00 (density of species alpha)
W_DENS = 1; % Output flag for total density
W_TEMP = 1; % Output flag for temperature
W_NAPJ = 1; % Output flag for nalphaparallel (parallel momentum of species alpha)
W_SAPJ = 0; % Output flag for saparallel (parallel current of species alpha)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% UNUSED PARAMETERS
% These parameters are usually not to play with in linear runs
MU = 0.0; % Hyperdiffusivity coefficient
MU_X = MU; % Hyperdiffusivity coefficient in x direction
MU_Y = MU; % Hyperdiffusivity coefficient in y direction
N_HD = 4; % Degree of spatial-hyperdiffusivity
MU_Z = 5.0; % Hyperdiffusivity coefficient in z direction
HYP_V = 'hypcoll'; % Kinetic-hyperdiffusivity model
MU_P = 0.0; % Hyperdiffusivity coefficient for Hermite
MU_J = 0.0; % Hyperdiffusivity coefficient for Laguerre
LAMBDAD = 0.0; % Lambda Debye
NOISE0 = 1.0e-5; % Initial noise amplitude
BCKGD0 = 0.0e-5; % Initial background
k_gB = 1.0; % Magnetic gradient strength
k_cB = 1.0; % Magnetic curvature strength
COLL_KCUT = 1; % Cutoff for collision operator
ADIAB_I = 0; % adiabatic ion model
\ No newline at end of file
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