27 #ifdef AMREX_USE_LINEAR_SOLVERS
32 #ifdef HIPACE_USE_OPENPMD
33 # include <openPMD/openPMD.hpp>
177 inline static amrex::Real
m_max_time = std::numeric_limits<amrex::Real>::infinity();
243 #ifdef HIPACE_USE_OPENPMD
245 OpenPMDWriter m_openpmd_writer;
270 #ifdef AMREX_USE_LINEAR_SOLVERS
OpenPMDWriterCallType
Whether the beam, the field data is written, or if it is just flushing the stored data.
Definition: OpenPMDWriter.H:30
class handling the adaptive time step
Definition: AdaptiveTimeStep.H:18
This class holds data for all diagnostics.
Definition: Diagnostic.H:55
amrex::Vector< std::string > & getBeamNames()
return names of the beams to output
Definition: Diagnostic.H:66
Main class handling all field data structures and operations.
Definition: Fields.H:85
class handling a current directly written to the grid
Definition: GridCurrent.H:16
Singleton class, that intialize, runs and finalizes the simulation.
Definition: Hipace.H:70
int m_salame_last_slice
Definition: Hipace.H:252
void ExplicitMGSolveBxBy(const int lev, const int which_slice)
Knowing the sources Sx, Sy and chi, apply MG to solve for Bx, By.
Definition: Hipace.cpp:694
amrex::Vector< CoulombCollision > m_all_collisions
Definition: Hipace.H:283
void InitData()
Definition: Hipace.cpp:172
Hipace()
Definition: Hipace.cpp:64
static int m_ncollisions
Definition: Hipace.H:236
void FlushDiagnostics()
Definition: Hipace.cpp:1017
static amrex::Real m_predcorr_B_error_tolerance
Definition: Hipace.H:189
MultiLaser m_multi_laser
Definition: Hipace.H:240
Diagnostic m_diags
Definition: Hipace.H:279
void InitDiagnostics(const int step)
Definition: Hipace.cpp:956
static amrex::Real m_initial_time
Definition: Hipace.H:182
PhysConst get_phys_const()
Return a copy of member struct for physical constants.
Definition: Hipace.H:96
amrex::Vector< std::string > & getDiagBeamNames()
get diagnostics Component names of Fields to output
Definition: Hipace.H:292
MultiBeam m_multi_beam
Definition: Hipace.H:167
static int m_verbose
Definition: Hipace.H:186
static amrex::Real m_MG_tolerance_abs
Definition: Hipace.H:223
GridCurrent m_grid_current
Definition: Hipace.H:242
void WriteDiagnostics(int output_step, const OpenPMDWriterCallType call_type)
Dump simulation data to file.
int m_comms_buffer_max_leading_slices
Definition: Hipace.H:264
bool m_salame_overloaded
Definition: Hipace.H:254
void FillBeamDiagnostics(const int step)
Definition: Hipace.cpp:984
amrex::Vector< amrex::Geometry > m_slice_geom
Definition: Hipace.H:155
static int m_MG_verbose
Definition: Hipace.H:225
amrex::Vector< amrex::Geometry > m_3D_geom
Definition: Hipace.H:149
static bool m_use_amrex_mlmg
Definition: Hipace.H:227
int m_salame_n_iter
Definition: Hipace.H:248
amrex::Vector< amrex::BoxArray > m_slice_ba
Definition: Hipace.H:159
amrex::Vector< std::unique_ptr< hpmg::MultiGrid > > m_hpmg
Definition: Hipace.H:277
std::vector< std::string > m_collision_names
Definition: Hipace.H:281
amrex::Real m_dt
Definition: Hipace.H:234
static amrex::Real m_background_density_SI
Definition: Hipace.H:232
void Evolve()
Definition: Hipace.cpp:324
amrex::Real m_predcorr_avg_iterations
Definition: Hipace.H:195
static bool HeadRank()
Returns true on the head rank, otherwise false.
Definition: Hipace.H:137
static amrex::Real m_MG_tolerance_rel
Definition: Hipace.H:221
amrex::ParserExecutor< 3 > m_salame_target_func
Definition: Hipace.H:260
static std::string Version()
Definition: HipaceVersion.cpp:16
bool m_has_last_step
Definition: Hipace.H:184
amrex::Real m_predcorr_avg_B_error
Definition: Hipace.H:198
void doCoulombCollision()
does Coulomb collisions between plasmas and beams
Definition: Hipace.cpp:923
amrex::Vector< amrex::DistributionMapping > m_slice_dm
Definition: Hipace.H:157
static amrex::Real m_max_time
Definition: Hipace.H:177
void FillFieldDiagnostics(const int lev, int islice)
Definition: Hipace.cpp:974
static bool m_interpolate_neutralizing_background
Definition: Hipace.H:211
void PredictorCorrectorLoopToSolveBxBy(const int islice, const int current_N_level, const int step)
Predictor-corrector loop to calculate Bx and By.
Definition: Hipace.cpp:819
amrex::Vector< amrex::DistributionMapping > m_3D_dm
Definition: Hipace.H:151
static amrex::Real m_predcorr_B_mixing_factor
Definition: Hipace.H:201
static int m_predcorr_max_iterations
Definition: Hipace.H:192
bool m_comms_buffer_on_gpu
Definition: Hipace.H:262
amrex::Real m_salame_zeta_initial
Definition: Hipace.H:256
void SolveOneSlice(int islice, int step)
Full evolve on 1 slice.
Definition: Hipace.cpp:442
static bool m_deposit_rho
Definition: Hipace.H:207
bool m_salame_do_advance
Definition: Hipace.H:250
static int m_numprocs
Definition: Hipace.H:173
static bool m_do_beam_jz_minus_rho
Definition: Hipace.H:205
Fields m_fields
Definition: Hipace.H:165
static bool m_deposit_rho_individual
Definition: Hipace.H:209
static bool m_explicit
Definition: Hipace.H:219
void ResetAllQuantities()
Reset plasma and field slice quantities to initial value.
Definition: Hipace.cpp:614
void ResetLaser()
reset all laser slices to 0
Definition: Hipace.cpp:628
static bool m_do_tiling
Definition: Hipace.H:216
static int m_max_step
Definition: Hipace.H:175
void MakeGeometry()
Definition: Hipace.cpp:233
MultiPlasma m_multi_plasma
Definition: Hipace.H:169
static bool m_use_laser
Definition: Hipace.H:229
amrex::Vector< amrex::BoxArray > m_3D_ba
Definition: Hipace.H:153
static amrex::Real m_physical_time
Definition: Hipace.H:180
AdaptiveTimeStep m_adaptive_time_step
Definition: Hipace.H:238
static bool m_normalized_units
Definition: Hipace.H:163
void InitializeSxSyWithBeam(const int lev)
Initialize Sx and Sy with the beam contributions.
Definition: Hipace.cpp:636
MultiBuffer m_multi_buffer
Definition: Hipace.H:171
static Hipace & GetInstance()
Definition: Hipace.cpp:58
static Hipace * m_instance
Definition: Hipace.H:161
amrex::Parser m_salame_parser
Definition: Hipace.H:258
static bool m_do_beam_jx_jy_deposition
Definition: Hipace.H:203
int m_comms_buffer_max_trailing_slices
Definition: Hipace.H:266
Definition: MultiBeam.H:15
Definition: MultiBuffer.H:16
Definition: MultiLaser.H:99
Definition: MultiPlasma.H:18
Multigrid solver.
Definition: HpMultiGrid.H:34
Helper struct to initialize m_phys_const and Parser before amrex::AmrCore.
Definition: Hipace.H:42
static int m_depos_order_z
Definition: Hipace.H:56
static int m_depos_derivative_type
Definition: Hipace.H:59
static int m_depos_order_xy
Definition: Hipace.H:53
static bool m_outer_depos_loop
Definition: Hipace.H:62
int m_N_level
Definition: Hipace.H:65
Hipace_early_init(Hipace *instance)
Definition: Hipace.cpp:31
PhysConst m_phys_const
Definition: Hipace.H:49
Struct containing physical constants, our main strategy to handle both SI and normalized units.
Definition: Constants.H:40