WarpX
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FullDiagnostics Class Referencefinal

#include <FullDiagnostics.H>

Inheritance diagram for FullDiagnostics:
Diagnostics

Public Member Functions

 FullDiagnostics (int i, const std::string &name)
 
- Public Member Functions inherited from Diagnostics
 Diagnostics (int i, std::string name)
 
virtual ~Diagnostics ()
 
 Diagnostics (Diagnostics const &)=delete
 
Diagnosticsoperator= (Diagnostics const &)=delete
 
 Diagnostics (Diagnostics &&)=default
 
Diagnosticsoperator= (Diagnostics &&)=default
 
void ComputeAndPack ()
 
void InitData ()
 
void InitDataBeforeRestart ()
 
void InitDataAfterRestart ()
 
virtual void InitializeFieldFunctorsRZopenPMD ([[maybe_unused]] int lev)
 
virtual void InitializeParticleFunctors ()
 
void NewIteration ()
 
void FilterComputePackFlush (int step, bool force_flush=false)
 
bool DoDumpLastTimestep () const
 
int getnumbuffers () const
 
virtual amrex::Real gettlab ([[maybe_unused]] int i_buffer)
 
virtual void settlab ([[maybe_unused]] int i_buffer, [[maybe_unused]] amrex::Real tlab)
 
virtual int get_buffer_k_index_hi ([[maybe_unused]] int i_buffer)
 
virtual void set_buffer_k_index_hi ([[maybe_unused]] int i_buffer, [[maybe_unused]] int kindex)
 
virtual amrex::Real get_snapshot_domain_lo ([[maybe_unused]] int i_buffer, [[maybe_unused]] int idim)
 
virtual amrex::Real get_snapshot_domain_hi ([[maybe_unused]] int i_buffer, [[maybe_unused]] int idim)
 
void setSnapshotDomainLo (int i_buffer, int idim, amrex::Real domain_lab_lo)
 
void setSnapshotDomainHi (int i_buffer, int idim, amrex::Real domain_lab_hi)
 
virtual int get_flush_counter ([[maybe_unused]] int i_buffer)
 
virtual void set_flush_counter ([[maybe_unused]] int i_buffer, [[maybe_unused]] int flush_counter)
 
virtual int get_last_valid_Zslice ([[maybe_unused]] int i_buffer)
 
virtual void set_last_valid_Zslice ([[maybe_unused]] int i_buffer, [[maybe_unused]] int last_valid_Zslice)
 
virtual int get_snapshot_full_flag ([[maybe_unused]] int i_buffer)
 
virtual void set_snapshot_full ([[maybe_unused]] int i_buffer, [[maybe_unused]] int snapshot_full)
 

Private Member Functions

void ReadParameters ()
 
void Flush (int i_buffer, bool) override
 
void FlushRaw ()
 
bool DoComputeAndPack (int step, bool force_flush=false) override
 
bool DoDump (int step, int i_buffer, bool force_flush=false) override
 
void AddRZModesToOutputNames (const std::string &field, int ncomp)
 
void InitializeBufferData (int i_buffer, int lev, bool restart=false) override
 
void InitializeFieldFunctorsRZopenPMD (int lev) override
 
void AddRZModesToDiags (int lev)
 
void InitializeFieldFunctors (int lev) override
 
void InitializeParticleBuffer () override
 
void PrepareFieldDataForOutput () override
 
void PrepareParticleDataForOutput () override
 
void MovingWindowAndGalileanDomainShift (int step) override
 
void BackwardCompatibility ()
 

Private Attributes

utils::parser::IntervalsParser m_intervals
 
bool m_plot_raw_fields = false
 
bool m_plot_raw_fields_guards = false
 
bool m_dump_rz_modes = false
 
bool m_solver_deposits_current = true
 

Additional Inherited Members

- Protected Member Functions inherited from Diagnostics
bool BaseReadParameters ()
 
void InitBaseData ()
 
virtual void DerivedInitData ()
 
virtual void PrepareBufferData ()
 
virtual void UpdateBufferData ()
 
- Protected Attributes inherited from Diagnostics
std::string m_diag_name
 
std::string m_file_prefix
 
int m_file_min_digits = 6
 
int m_diag_index
 
amrex::Vector< std::string > m_varnames
 
amrex::Vector< std::string > m_varnames_fields
 
amrex::Vector< std::string > m_pfield_varnames
 
std::vector< std::string > m_pfield_species
 
std::vector< bool > m_pfield_do_average
 
std::vector< intm_pfield_species_index
 
std::vector< std::string > m_pfield_strings
 
std::vector< bool > m_pfield_dofilter
 
std::vector< std::string > m_pfield_filter_strings
 
bool m_dump_last_timestep = true
 
std::string m_format = "plotfile"
 
int m_already_done = false
 
std::unique_ptr< FlushFormatm_flush_format
 
amrex::Vector< amrex::Vector< amrex::MultiFab > > m_mf_output
 
amrex::Vector< amrex::Vector< amrex::Geometry > > m_geom_output
 
int nlev
 
int nmax_lev
 
int nlev_output
 
std::vector< std::string > m_output_species_names
 
std::vector< std::string > m_all_species_names
 
amrex::Vector< amrex::Vector< ParticleDiag > > m_output_species
 
amrex::Vector< amrex::Vector< std::unique_ptr< ComputeDiagFunctor > > > m_all_field_functors
 
amrex::IntVect m_crse_ratio = amrex::IntVect(1)
 
amrex::Vector< amrex::Real > m_lo
 
amrex::Vector< amrex::Real > m_hi
 
int m_num_buffers
 
amrex::Vector< intm_rho_per_species_index
 
amrex::Vector< amrex::Vector< std::unique_ptr< PinnedMemoryParticleContainer > > > m_particles_buffer
 
amrex::Vector< std::unique_ptr< ComputeParticleDiagFunctor > > m_all_particle_functors
 
amrex::Vector< amrex::Vector< int > > m_totalParticles_in_buffer
 
amrex::Vector< amrex::RealBoxm_snapshot_domain_lab
 

Constructor & Destructor Documentation

◆ FullDiagnostics()

FullDiagnostics::FullDiagnostics ( int  i,
const std::string &  name 
)

Member Function Documentation

◆ AddRZModesToDiags()

void FullDiagnostics::AddRZModesToDiags ( int  lev)
private

Append m_all_field_functors[lev] with all modes of all components of E B and j and add name to varnames.

Parameters
[in]levlevel on which source multifabs are defined.

◆ AddRZModesToOutputNames()

void FullDiagnostics::AddRZModesToOutputNames ( const std::string &  field,
int  ncomp 
)
private

Append varnames with names for all modes of a field

Parameters
[in]fieldfield name (includes component, e.g., Er)
[in]ncompnumber of components (modes, real and imag)

◆ BackwardCompatibility()

void FullDiagnostics::BackwardCompatibility ( )
private

This function queries deprecated input parameters and abort the run if one of them is specified.

◆ DoComputeAndPack()

bool FullDiagnostics::DoComputeAndPack ( int  step,
bool  force_flush = false 
)
overrideprivatevirtual

whether to compute and pack cell-centered data in m_mf_output

Parameters
[in]stepcurrent time step
[in]force_flushif true, return true for any step since output must be computed in this case
Returns
bool, whether to flush

Implements Diagnostics.

◆ DoDump()

bool FullDiagnostics::DoDump ( int  step,
int  i_buffer,
bool  force_flush = false 
)
overrideprivatevirtual

whether to flush at this time step

Parameters
[in]stepcurrent time step
[in]i_bufferindex of a back-transformed snapshot
[in]force_flushif true, return true for any step
Returns
bool, whether to flush

Implements Diagnostics.

◆ Flush()

void FullDiagnostics::Flush ( int  i_buffer,
bool   
)
overrideprivatevirtual

Flush m_mf_output and particles to file for the i^th buffer

Implements Diagnostics.

◆ FlushRaw()

void FullDiagnostics::FlushRaw ( )
private

Flush raw data

◆ InitializeBufferData()

void FullDiagnostics::InitializeBufferData ( int  i_buffer,
int  lev,
bool  restart = false 
)
overrideprivatevirtual

Define the cell-centered multifab m_mf_output depending on user-defined lo and hi and coarsening ratio. This MultiFab may have a different BoxArray and DistributionMap than field MultiFabs in the simulation.

Parameters
[in]i_bufferindex of a back-transformed snapshot
[in]levlevel on which source multifabs are defined

Implements Diagnostics.

◆ InitializeFieldFunctors()

void FullDiagnostics::InitializeFieldFunctors ( int  lev)
overrideprivatevirtual

Initialize functors that store pointers to the fields requested by the user.

Parameters
[in]levlevel on which the vector of unique_ptrs to field functors is initialized.

Implements Diagnostics.

◆ InitializeFieldFunctorsRZopenPMD()

void FullDiagnostics::InitializeFieldFunctorsRZopenPMD ( int  lev)
overrideprivate

Initialize functors that store pointers to the RZ fields requested by the user.

Parameters
[in]levlevel on which the vector of unique_ptrs to field functors is initialized.

◆ InitializeParticleBuffer()

void FullDiagnostics::InitializeParticleBuffer ( )
overrideprivatevirtual

This function initialized particle buffers (not implemented in diagnostics, yet)

Implements Diagnostics.

◆ MovingWindowAndGalileanDomainShift()

void FullDiagnostics::MovingWindowAndGalileanDomainShift ( int  step)
overrideprivatevirtual

Update the physical extent of the diagnostic domain for moving window and galilean shift simulations

Parameters
[in]stepcurrent time step

Reimplemented from Diagnostics.

◆ PrepareFieldDataForOutput()

void FullDiagnostics::PrepareFieldDataForOutput ( )
overrideprivatevirtual

Prepare field data to be used for diagnostics

Reimplemented from Diagnostics.

◆ PrepareParticleDataForOutput()

void FullDiagnostics::PrepareParticleDataForOutput ( )
inlineoverrideprivatevirtual

Prepare particle data to be used for diagnostics.

Reimplemented from Diagnostics.

◆ ReadParameters()

void FullDiagnostics::ReadParameters ( )
private

Read user-requested parameters for full diagnostics

Member Data Documentation

◆ m_dump_rz_modes

bool FullDiagnostics::m_dump_rz_modes = false
private

Whether to dump the RZ modes

◆ m_intervals

utils::parser::IntervalsParser FullDiagnostics::m_intervals
private

Determines timesteps at which full diagnostics are written to file

◆ m_plot_raw_fields

bool FullDiagnostics::m_plot_raw_fields = false
private

Whether to plot raw (i.e., NOT cell-centered) fields

◆ m_plot_raw_fields_guards

bool FullDiagnostics::m_plot_raw_fields_guards = false
private

Whether to plot guard cells of raw fields

◆ m_solver_deposits_current

bool FullDiagnostics::m_solver_deposits_current = true
private

Whether the field solver deposits current density, if not it will be done before writing the diagnostic.


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