Initialize particles from an array or a file¶
In the namelist, position_initialization
and momentum_initialization
may be set to a numpy array or to an HDF5 file containing particle data to be imported.
The position initialization is incompatible with number_density
,
charge_density
and particles_per_cell
.
Particles initialized outside of the initial simulation domain will not be created.
The momentum initialization is incompatible with temperature
and mean_velocity
.
From a numpy array¶
The position_initialization
may be a numpy array of shape (Ndim+1, Npart)
where Ndim
is the number of particle dimensions,
and Npart
is the total number of particles.
Positions components x, y, z are given along the first Ndim
columns
and the weights are given in the last column of the array.
The momentum_initialization
may be a numpy array of shape (3, Npart)
.
It requires that position_initialization
also be an array
with the same number of particles Npart
.
Momentum components px, py, pz are given in successive columns.
From an HDF5 file¶
The position_initialization
may be a path to an HDF5 file containing the
appropriate data structure. The path may point to a file,
such as "some_folder/some_data.h5"
, but it may also contain the path
to a group inside the file, such as "some_folder/some_data.h5/group1/group2"
.
The HDF5 location must contain the following datasets, all 1-dimensional of equal size:
position/x
, list of x coordinatesposition/y
, list of y coordinatesposition/z
, list of z coordinatesweight
, list of statistical weights
The momentum_initialization
works the same way. It must be an HDF5 location
containing the following datasets, all 1-dimensional of equal size:
momentum/x
, list of pxmomentum/y
, list of pymomentum/z
, list of pz
Note
This file structure is identical to that obtained from the TrackParticles diagnostics,
meaning that you can directly pass the output of a previous simulation, for instance
"path/to/results/TrackParticlesDisordered_myspecies.h5/data/0000003000/particles/myspecies"
.