|
WarpX
|
#include "Particles/MultiParticleContainer.H"#include "Utils/WarpXConst.H"#include <AMReX_Geometry.H>#include <AMReX_ParallelDescriptor.H>#include <AMReX_PlotFileUtil.H>#include <AMReX_VisMF.H>#include <map>#include <vector>Go to the source code of this file.
Classes | |
| class | LabFrameDiag |
| The capability for back-transformed lab-frame data is implemented to generate the full diagnostic snapshot for the entire domain and reduced diagnostic (1D, 2D or 3D 'slices') for a sub-domain. LabFrameDiag class defines the parameters required to backtrasform data from boosted frame at (z_boost,t_boost) to lab-frame at (z_lab, t_lab) using Lorentz transformation. This Lorentz transformation picks out one slice corresponding to both of those times, at position current_z_boost and current_z_lab in the boosted and lab frames, respectively. Two derived classes, namely, LabFrameSnapShot and LabFrameSlice are defined to store the full back-transformed diagnostic snapshot of the entire domain and reduced back-transformed diagnostic for a sub-domain, respectively. The approach here is to define an array of LabFrameDiag which would include both, full domain snapshots and reduced domain 'slices', sorted based on their respective t_lab. This is done to re-use the backtransformed data stored in the slice multifab at (z_lab,t_lab) for the full domain snapshot and sub-domain slices that have the same t_lab, instead of re-generating the backtransformed slice data at z_lab for a given t_lab for each diagnostic. More... | |
| class | LabFrameSnapShot |
| LabFrameSnapShot stores the back-transformed lab-frame metadata corresponding to a single time snapshot of the full domain. The snapshot data is written to disk in the directory lab_frame_data/snapshots/. zmin_lab, zmax_lab, and t_lab are all constant for a given snapshot. current_z_lab and current_z_boost for each snapshot are updated as the simulation time in the boosted frame advances. More... | |
| class | LabFrameSlice |
| LabFrameSlice stores the back-transformed metadata corresponding to a single time at the user-defined slice location. This could be a 1D line, 2D slice, or 3D box (a reduced back-transformed diagnostic) within the computational domain, as defined in the input file by the user. The slice is written to disk in the lab_frame_data/slices. Similar to snapshots, zmin_lab, zmax_lab, and t_lab are constant for a given slice. current_z_lab and current_z_boost for each snapshot are updated as the sim time in boosted frame advances. More... | |
| class | BackTransformedDiagnostic |
| BackTransformedDiagnostic class handles the back-transformation of data when running simulations in a boosted frame of reference to the lab-frame. Because of the relativity of simultaneity, events that are synchronized in the simulation boosted frame are not synchronized in the lab frame. Thus, at a given t_boost, we must write slices of back-transformed data to multiple output files, each one corresponding to a given time in the lab frame. The member function writeLabFrameData() orchestrates the operations required to Lorentz-transform data from boosted-frame to lab-frame and store them in the LabFrameDiag class, which writes out the field and particle data to the output directory. The functions Flush() and writeLabFrameData() are called at the end of the simulation and when the the buffer for data storage is full, respectively. The particle data is collected and written only if particle.do_back_transformed_diagnostics = 1. More... | |
1.8.13