Output formats

WarpX can write diagnostics data either in

Plotfiles are AMReX’ native data format, while openPMD is implemented in popular community formats such as ADIOS and HDF5.

This section describes some of the tools available to visualize the data.

Asynchronous IO

When using the AMReX plotfile format, users can set the amrex.async_out=1 option to perform the IO in a non-blocking fashion, meaning that the simulation will continue to run while an IO thread controls writing the data to disk. This can significantly reduce the overall time spent in IO. This is primarily intended for large runs on supercomputers (e.g. at OLCF or NERSC); depending on the MPI implementation you are using, you may not see a benefit on your workstation.

When writing plotfiles, each rank will write to a separate file, up to some maximum number (by default, 64). This maximum can be adjusted using the amrex.async_out_nfiles inputs parameter. To use asynchronous IO with than amrex.async_out_nfiles MPI ranks, WarpX WarpX must be configured with -DWarpX_MPI_THREAD_MULTIPLE=ON. Please see the building instructions for details.

In Situ Capabilities

WarpX includes so-called reduced diagnostics. Reduced diagnostics create observables on-the-fly, such as energy histograms or particle beam statistics and are easily visualized in post-processing.

In addition, WarpX also has vn-situ visualization capabilities (i.e. visualizing the data directly from the simulation, without dumping data files to disk).

If you like the 3D rendering of laser wakefield acceleration on the WarpX documentation front page (which is also the avatar of the ECP-WarpX organization), you can find the serial analysis script video_yt.py as well as a parallel analysis script video_yt.py used to make a similar rendering for a beam-driven wakefield simulation, running parallel.

Staggering in Data Output

Warning: currently, quantities in the output file for iteration n are not all defined at the same physical time due to the staggering in time in WarpX. The table below provides the physical time at which each quantity in the output file is written, in units of time step, for time step n.

quantity

staggering

E

n

n

B

n

n

j

n-1/2

n-1/2

rho

n

n

position

n

n

momentum

n-1/2

n-1/2