input.data
guideFollowing here is a brief description of the input.data
file required for the simulation parameters definition, through an example. This method is currently deprecated, in favour of the new input namelist.
7168, 3584, 1, 3500
nx, ny, nz, ny_part
100.0, 2.0
k0, yx_rat
nx
is the number of grid points in the x directionpey
in order to be sure that FFTs are working as expectedny
is the number of points in the y directionpey
nz
is the number of points in the z direction; for a 2D simulaton, use nz = 1
mpi_ntot/pey
)nypart
is the transverse size of the target, expressed in number of grid cell filled with particles (if the simulation is a 3D one, the target is a square in the xy plane)k0
defines the resolution, being the numbero of points per μm along x, so that Δx = 1/k0 [μm]; please remember to set a value small enough to solve the skin depthyxrat
is the ratio between the resolution along x and y: Δy = yxrat/k0 [μm]; the resolution along z is the same as for y.With those parameters, the full box size (in μm) is: Lx = nx / k0
, Ly = yxrat * ny / k0
, Lz = yxrat * nz / k0
2, 2, 0, 0
LPf, Der, str, iform
Lpf
is the leapfrog order used in the integration schemeDer
is the order of the finite difference schemestr
has three possible different values:0
for uniform grid1
to enable stretching along transverse axes2
to enable stretching along all axes, but for x it is only on the right side of the box (need testing)iform
has two possible different values:0
: (DxJx,DyJy,DzJz) to be inverted on a grid (to be preferred) (energy conservation not guaranteed)1
: only (DxJx) to be inverted on a grid2
: no charge preserving (use energy conservation algorithm) 1, 3, 1
mdl, dmdl, ibeam
mdl
has five possible different values1
laser is p-polarized2
laser is s-polarized3
laser is circularly polarized4
laser is described by its envelope approximation model5
the driver is an electron beam. Its description must be given in a separate namelist file6
the driver is a proton bunch. Its description must be given in a separate namelist filedmdl
has five possible different values1
the simulation is done using just two species, electrons and protons2
four species, e, p, C, Al, used in this way: [e+p]foam + [e+Al]bulk + [e+C+p]contaminants (Al is in reality a generic atom, defined by Z_i
and A_i
, while C is hard coded: we use Al in this readme since it is the common experimental choice, while for C it is an experimental mandatory choice - but it will be lifted in the future)3
three species, e, p, C, in one layer: [e+C+pn]bulk (mind the n*, managed with nsb
) (C is in reality a generic atom, defined by Z_i
and A_i
: we use C in this readme since it is the common experimental choice)4
three species, e, p, Al, used in this way: [e+p]foam + [e+Al]bulk + [e+p]contaminants5
three species, e, p, Al, identic to case 4
, but with the contaminant layer mass limitedibeam
:
for PWFA (model_id #5/#6):0
1
2
0, 0, 0, 3, 1
ibx, iby, ibz, nsp, nsb
nsp
is the number of species (be careful and coherent with dmdl
)nsb
, used with dmdl=3
, defines the ratio n between the number of C ions and protons, to form CHn 4, 11, 13, 26.98
ion_min(1),ion_max(1),atomic_number(1),mass_number(1)
1, 1, 1, 1.0
ion_min(2),ion_max(2),atomic_number(2),mass_number(2)
0, 0
ionz_lev,ionz_model,
ion_min
ion_max
atomic_number
mass_number
ionz_lev
ionz_model
0.0003 , 0.0 , 0.0 , 0.0
t0_pl(1),t0_pl(2),t0_pl(3),t0_pl(4)
12, 4, 4, 4, 4, 4
np_xc
9, 3, 4, 4, 4, 4
np_yc
First two are the number of electrons and ions per cell along x/y in the bulk, second two numbers refer to the front layer and third two to the contaminants. A special case is dmdl=3
, in which the first indicates the number of electrons, the second the number of protons (to be multiplies by nsb
) and the third is the number of ions; in this case the other numbers are not important.
Describing the previous example, it means that, along x:
nex = 0 in the first np_xc
position just means to ignore the plasma and do just a laser propagation simulation.
np_yc
: the same as np_xc
, this describes the number of particles per cell along transverse directions (valid also for z for 3D simulations)16.5, 16.5, 33.0, 6.2, 3.0, 0.8
tf, xc, wx, wy, a0, lam0
these lines are valid only for ibeam=1
xc
is the position (in μm) along x of the central point of the laser envelopetf
is the distance (in μm) after which the laser is focused; so the focus is at xf = xc + tf
wx
is twice the longitudinal waist, corresponding to the total laser length, which is twice the FWHM. For example, if we have a 40 fs FWHM Ti:Sa laser, we should write for wx=33 μm
because: (40 fs/3.333)*2*1.37 = 33 μm
40/3.3333 is done to convert fs to μm
*2 is to convert from FWHM to full length
*1.37 is to convert from laser intensity to fields: usually we receive from experiments the FWHM of the laser intensity, but we set the length of fields and the FWHM of a cos4 has to be converted to the FWHM of a cos2: FWHM(cos4)=FWHM(cos2)/1.37
wy
is the transverse waist FWHM (in μm)a
is the laser adimensional parameter: a0=eA/(me c2)lam0
is the laser wavelength (in μm)0.0, 0.0, 2.0, 0.0, 0.08, 0.0, 0.01
lx
lx(1)
is the length of the upstream layer (foam or preplasma), having density n1/nc
lx(2)
is the length of the ramp (linear or exponential depending on the mdl
) connecting the upstream layer with the central one (made with bulk particles)lx(3)
is the length of the central layer (bulk), having density n2/nc
lx(4)
is the length of the ramp (linear), connecting the bulk with the contaminants (made with bulk particles)lx(5)
is the length of the downstream layer (contaminants), having density n3/nc
lx(6)
is the angle α of incidence, between the laser axis and the target planelx(7)
is the offset between the end of the laser and the beginning of the target (if zero, the target starts right at the end of the laser pulse). The offset is calculated before laser rotation, so mind the transverse size if lx(6) ≠ 0
, in order to avoid laser initialization inside the target.0.0, 0.0
ly
ly(1)
defines the wire sizely(2)
defines the interwire size 100.0, 1.0, 10.0
n2/nc, n1/nc, n3/nc
n2/nc
is the density in the central layer (bulk)n1/nc
is the density in the upstream layer (foam/preplasma)n3/nc
is the density in the downstream layer (contaminants) 20, 100.0, 150.0, 1.0
wnd_sh, w_in, w_end, w_speed
wsh
is the number of time steps after which the moving-window is called, repeatedlywin
is the absolute time at which the window starts movingwend
is the absolute time at which the window stops movingwspeed
is the β speed of the moving window 10, 200, 3, 1, 0, 0
nout, iene, nvout, nden, npout, nbout
nout
is the number of binary outputs during the relative time of the simulationiene
is the number of text outputs during the relative time of the simulationnvout
is the number of fields written. For a 2D P-polarized case, we have just 3 fields, Ex, Ey and Bz; in all the other cases there are 6 fields with these IDs: 1=Ex, 2=Ey, 3=Ez, 4=Bx, 5=By, 6=Bz. At each nout
step, every field with ID ≤ nf
will be dumped.nden
can have three different values; every output is divided by species on different files:1
: writes only the particle density n on the grid2
: writes also the energy density n ・ gamma on the grid3
: writes also the currents J on the gridnpout
1
: writes only the electron phase space2
: writes only the proton phase spacen=npv
; if n=npv>nps
, it writes the phase spaces of all the particle speciesnbout
1, 1
jmp, pjmp
jmp
: jump on grid points; if jmp=2
, it means that each processor is going to write only one point every two. Mind that it's extremely important that jmp
is a divisor of the number of grid points per processor, otherwise the grid output will be corruptedpjmp
: jump on particles; if pjmp=2
, it means that each processor is going to write the phase space of just one particle every two. 0.0, 100.0, 20.0
xp0, xp1, ypmax
xp0 < x < xp1
|{y,z}| < ypmax
100.0, 0.8
tmax, cfl
tmax
is the relative time (in μm, because it is multiplied by c) that the simulation is going to be evolved. Being relative, it's going to be added to the time eventually already reached before the restart. To obtain the time in fs, you have to divide it by 0.299792458 [speed of light in μm/fs]cfl
is the Courant–Friedrichs–Lewy parameter ( Wikipedia CFL-parameter page ) 0, 0, 0, 64
new, id_ew, dump, pey
new
: identifies if a simulation is new new=0
(data is recreated from initial conditions) or if it is a restart new=1
(dump are going to be read)id_ew
identifies the starting number of the output files (if new=0
) or the last one written in the previous step (if new=1
)dump
1
: each processor will dump a binary file for every nout
in order to enable restart0
: dumps are suppressedpey
identifies the number of processors used for 2D simulations, or how many processors are going to be used for the y domains (mpi_ntot/pey
is the number of processors used for the z domains) for 3D simulations.