41 const bool do_beam_jx_jy_deposition,
const bool do_beam_jz_deposition,
42 const bool do_beam_rhomjz_deposition,
const int which_slice,
const int which_beam_slice,
43 const bool only_highest=
false);
55 int const current_N_level);
65 int max_step, amrex::Real physical_time,
66 amrex::Real max_time);
75 int max_step, amrex::Real max_time);
104 const int which_slice);
126 beam.shiftBeamSlices();
Container for particles of 1 beam species.
Definition: BeamParticleContainer.H:68
Main class handling all field data structures and operations.
Definition: Fields.H:85
Definition: MultiBeam.H:15
void TagByLevel(const int current_N_level, amrex::Vector< amrex::Geometry > const &geom3D, const int which_slice)
Store the finest level of every beam particle on which_slice in the cpu() attribute.
Definition: MultiBeam.cpp:80
bool isSalameNow(const int step)
returns if the SALAME algorithm should be used on this slice
Definition: MultiBeam.cpp:128
MultiBeam()
Definition: MultiBeam.cpp:16
void DepositCurrentSlice(Fields &fields, amrex::Vector< amrex::Geometry > const &geom, const int lev, const int step, const bool do_beam_jx_jy_deposition, const bool do_beam_jz_deposition, const bool do_beam_rhomjz_deposition, const int which_slice, const int which_beam_slice, const bool only_highest=false)
Definition: MultiBeam.cpp:42
BeamParticleContainer & getBeam(int i)
Return 1 species.
Definition: MultiBeam.H:85
amrex::Real InitData(const amrex::Geometry &geom)
Definition: MultiBeam.cpp:32
const BeamParticleContainer & getBeam(int i) const
Return 1 species.
Definition: MultiBeam.H:90
int m_nbeams
Definition: MultiBeam.H:132
void AdvanceBeamParticlesSlice(const Fields &fields, amrex::Vector< amrex::Geometry > const &gm, const int slice, int const current_N_level)
Definition: MultiBeam.cpp:70
void shiftBeamSlices()
Definition: MultiBeam.H:124
amrex::Vector< std::string > m_names
Definition: MultiBeam.H:121
void ReorderParticles(int beam_slice, int step, amrex::Geometry &slice_geom)
Reorder beam particles to speed-up push and current deposition.
Definition: MultiBeam.cpp:112
void InSituWriteToFile(int step, amrex::Real time, const amrex::Geometry &geom, int max_step, amrex::Real max_time)
Definition: MultiBeam.cpp:101
bool AnySpeciesSalame()
returns if any beam uses the SALAME algorithm
Definition: MultiBeam.cpp:119
amrex::Vector< BeamParticleContainer > m_all_beams
Definition: MultiBeam.H:122
int get_nbeams() const
Definition: MultiBeam.H:93
amrex::Vector< amrex::Long > m_n_real_particles
Definition: MultiBeam.H:134
void InSituComputeDiags(int step, int islice, int max_step, amrex::Real physical_time, amrex::Real max_time)
Definition: MultiBeam.cpp:89
void shiftSlippedParticles(const int slice, amrex::Geometry const &geom)
Definition: MultiBeam.cpp:62
std::string get_name(int i) const
Definition: MultiBeam.H:96
~MultiBeam()
Definition: MultiBeam.H:25
int i
Definition: MakeOpenBoundary.py:152
slice
Definition: MultiLaser.H:73