WarpX
Public Member Functions | List of all members
LabFrameSlice Class Reference

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...

#include <BackTransformedDiagnostic.H>

Inheritance diagram for LabFrameSlice:
LabFrameDiag

Public Member Functions

 LabFrameSlice (amrex::Real t_lab_in, amrex::Real t_boost, amrex::Real inv_gamma_boost_in, amrex::Real inv_beta_boost_in, amrex::Real dz_lab_in, amrex::RealBox prob_domain_lab, amrex::IntVect prob_ncells_lab, int ncomp_to_dump, std::vector< std::string > mesh_field_names, amrex::RealBox diag_domain_lab, amrex::Box diag_box, int file_num_in, amrex::Real particle_slice_dx_lab)
 
void AddDataToBuffer (amrex::MultiFab &tmp_slice_ptr, int i_lab, amrex::Vector< int > const &map_actual_fields_to_dump) override
 
void AddPartDataToParticleBuffer (amrex::Vector< WarpXParticleContainer::DiagnosticParticleData > const &tmp_particle_buffer, int nSpeciesBoostedFrame) override
 
- Public Member Functions inherited from LabFrameDiag
void updateCurrentZPositions (amrex::Real t_boost, amrex::Real inv_gamma, amrex::Real inv_beta)
 
void createLabFrameDirectories ()
 
void writeLabFrameHeader ()
 
virtual ~LabFrameDiag ()=default
 

Additional Inherited Members

- Public Attributes inherited from LabFrameDiag
std::string m_file_name
 
amrex::Real m_t_lab
 
amrex::RealBox m_prob_domain_lab_
 
amrex::IntVect m_prob_ncells_lab_
 
amrex::RealBox m_diag_domain_lab_
 
amrex::Box m_buff_box_
 
amrex::Real m_current_z_lab
 
amrex::Real m_current_z_boost
 
amrex::Real m_inv_gamma_boost_
 
amrex::Real m_inv_beta_boost_
 
amrex::Real m_dz_lab_
 
amrex::Real m_particle_slice_dx_lab_
 
int m_ncomp_to_dump_
 
std::vector< std::string > m_mesh_field_names_
 
int m_file_num
 
int m_initial_i
 
std::unique_ptr< amrex::MultiFab > m_data_buffer_
 
amrex::Vector< WarpXParticleContainer::DiagnosticParticleDatam_particles_buffer_
 
int m_buff_counter_
 
int m_num_buffer_ = 256
 
int m_max_box_size = 256
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LabFrameSlice()

LabFrameSlice::LabFrameSlice ( amrex::Real  t_lab_in,
amrex::Real  t_boost,
amrex::Real  inv_gamma_boost_in,
amrex::Real  inv_beta_boost_in,
amrex::Real  dz_lab_in,
amrex::RealBox  prob_domain_lab,
amrex::IntVect  prob_ncells_lab,
int  ncomp_to_dump,
std::vector< std::string >  mesh_field_names,
amrex::RealBox  diag_domain_lab,
amrex::Box  diag_box,
int  file_num_in,
amrex::Real  particle_slice_dx_lab 
)

Member Function Documentation

◆ AddDataToBuffer()

void LabFrameSlice::AddDataToBuffer ( amrex::MultiFab &  ,
int  ,
amrex::Vector< int > const &   
)
overridevirtual

Back-transformed lab-frame field data is copied from tmp_slice to data_buffer where it is stored. For the full diagnostic, all the data in the MultiFab is copied. For the reduced diagnostic, the data is selectively copied if the extent of the z_lab multifab intersects with the user-defined sub-domain for the reduced diagnostic (i.e., a 1D, 2D, or 3D region of the domain).

Reimplemented from LabFrameDiag.

◆ AddPartDataToParticleBuffer()

void LabFrameSlice::AddPartDataToParticleBuffer ( amrex::Vector< WarpXParticleContainer::DiagnosticParticleData > const &  ,
int   
)
overridevirtual

Back-transformed lab-frame particles is copied from tmp_particle_buffer to particles_buffer. For the full diagnostic, all the particles are copied, while for the reduced diagnostic, particles are selectively copied if their position in within the user-defined sub-domain +/- 1 cell size width for the reduced slice diagnostic.

Reimplemented from LabFrameDiag.


The documentation for this class was generated from the following files: