WarpX
Loading...
Searching...
No Matches
FullDiagnostics Class Referencefinal

#include <FullDiagnostics.H>

Inheritance diagram for FullDiagnostics:
Diagnostics

Public Types

enum struct  TimeAverageType { None , Static , Dynamic }
 

Public Member Functions

 FullDiagnostics (int i, const std::string &name, DiagTypes diag_type)
 
- Public Member Functions inherited from Diagnostics
 Diagnostics (int i, std::string name, DiagTypes diag_type)
 
virtual ~Diagnostics ()
 
 Diagnostics (Diagnostics const &)=delete
 
Diagnosticsoperator= (Diagnostics const &)=delete
 
 Diagnostics (Diagnostics &&)=default
 
Diagnosticsoperator= (Diagnostics &&)=default
 
void ComputeAndPack ()
 
void InitData (const MultiParticleContainer &mpc)
 
void InitDataBeforeRestart ()
 
void InitDataAfterRestart (const MultiParticleContainer &mpc)
 
virtual void InitializeParticleFunctors ()
 
void NewIteration ()
 
void FilterComputePackFlush (int step, bool force_flush=false)
 
bool DoDumpLastTimestep () const
 
int getnumbuffers () const
 
virtual amrex::Real gettlab (int i_buffer)
 
virtual void settlab (int i_buffer, amrex::Real tlab)
 
virtual int get_buffer_k_index_hi (int i_buffer)
 
virtual void set_buffer_k_index_hi (int i_buffer, int kindex)
 
virtual amrex::Real get_snapshot_domain_lo (int i_buffer, int idim)
 
virtual amrex::Real get_snapshot_domain_hi (int i_buffer, 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 (int i_buffer)
 
virtual void set_flush_counter (int i_buffer, int flush_counter)
 
virtual int get_last_valid_Zslice (int i_buffer)
 
virtual void set_last_valid_Zslice (int i_buffer, int last_valid_Zslice)
 
virtual int get_snapshot_full_flag (int i_buffer)
 
virtual void set_snapshot_full (int i_buffer, int snapshot_full)
 

Private Member Functions

void ReadParameters ()
 
void Flush (int i_buffer, bool) override
 
void FlushRaw ()
 
void DerivedInitData () override
 
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 (const MultiParticleContainer &mpc) 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
 
TimeAverageType m_time_average_mode = TimeAverageType::None
 
int m_average_period_steps = -1
 
amrex::Real m_average_period_time = -1.0
 
int m_average_start_step = -1
 

Additional Inherited Members

- Public Attributes inherited from Diagnostics
DiagTypes m_diag_type
 
- Protected Member Functions inherited from Diagnostics
bool BaseReadParameters ()
 
void InitBaseData ()
 
virtual void PrepareBufferData ()
 
virtual void UpdateBufferData ()
 
- Protected Attributes inherited from Diagnostics
int m_verbose = 2
 
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< int > m_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::MultiFab > > m_sum_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< int > m_rho_per_species_index
 
amrex::Vector< int > m_T_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
 

Member Enumeration Documentation

◆ TimeAverageType

Type of time averaging for diagnostics (fields only) None corresponds to instantaneous diags Static corresponds to a fixed starting step for averaging, will average until the end, and dump out intermediate average results Dynamic corresponds to a moving period for averaging where the start step is as many steps before the output interval as the averaging period is long.

Enumerator
None 
Static 
Dynamic 

Constructor & Destructor Documentation

◆ FullDiagnostics()

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

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.

◆ DerivedInitData()

void FullDiagnostics::DerivedInitData ( )
overrideprivatevirtual

Initialize Data required to compute TimeAveraged diagnostics

Reimplemented from Diagnostics.

◆ 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 or m_sum_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
[in]restartwhether this is called upon restarting a previous simulation

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)
overrideprivatevirtual

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.

Reimplemented from Diagnostics.

◆ InitializeParticleBuffer()

void FullDiagnostics::InitializeParticleBuffer ( const MultiParticleContainer & mpc)
overrideprivatevirtual

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

Parameters
[in]mpca constant reference to the multi-particle container.

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

Whether the diagnostics are averaging data over time or not Valid options are "fixed_start" and "dynamic_start".

Member Data Documentation

◆ m_average_period_steps

int FullDiagnostics::m_average_period_steps = -1
private

Period to average fields over: in steps

◆ m_average_period_time

amrex::Real FullDiagnostics::m_average_period_time = -1.0
private

Period to average fields over: in seconds

◆ m_average_start_step

int FullDiagnostics::m_average_start_step = -1
private

Time step to start averaging

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

◆ m_time_average_mode

TimeAverageType FullDiagnostics::m_time_average_mode = TimeAverageType::None
private

Whether the diagnostics are averaging data over time or not


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