#include <MultiBeam.H>
|
| MultiBeam () |
|
| ~MultiBeam () |
|
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) |
|
void | shiftSlippedParticles (const int slice, amrex::Geometry const &geom) |
|
void | AdvanceBeamParticlesSlice (const Fields &fields, amrex::Vector< amrex::Geometry > const &gm, const int slice, int const current_N_level) |
|
void | InSituComputeDiags (int step, int islice, int max_step, amrex::Real physical_time, amrex::Real max_time) |
|
void | InSituWriteToFile (int step, amrex::Real time, const amrex::Geometry &geom, int max_step, amrex::Real max_time) |
|
amrex::Real | InitData (const amrex::Geometry &geom) |
|
BeamParticleContainer & | getBeam (int i) |
| Return 1 species. More...
|
|
const BeamParticleContainer & | getBeam (int i) const |
| Return 1 species. More...
|
|
int | get_nbeams () const |
|
std::string | get_name (int i) const |
|
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. More...
|
|
void | ReorderParticles (int beam_slice, int step, amrex::Geometry &slice_geom) |
| Reorder beam particles to speed-up push and current deposition. More...
|
|
bool | isSalameNow (const int step) |
| returns if the SALAME algorithm should be used on this slice More...
|
|
bool | AnySpeciesSalame () |
| returns if any beam uses the SALAME algorithm More...
|
|
void | shiftBeamSlices () |
|
◆ MultiBeam()
◆ ~MultiBeam()
MultiBeam::~MultiBeam |
( |
| ) |
|
|
inline |
◆ AdvanceBeamParticlesSlice()
Loop over all beam species and advance slice islice of all beam species
- Parameters
-
[in] | fields | Field object, with 2D slice MultiFabs |
[in] | gm | Geometry object at level lev |
[in] | slice | longitudinal slice |
[in] | current_N_level | number of MR levels active on the current slice |
◆ AnySpeciesSalame()
bool MultiBeam::AnySpeciesSalame |
( |
| ) |
|
returns if any beam uses the SALAME algorithm
◆ DepositCurrentSlice()
void MultiBeam::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 |
|
) |
| |
Loop over all beam species and deposit their current on the 2D XY slice
- Parameters
-
[in] | fields | Field object, with 2D slice MultiFabs |
[in] | geom | Geometry vector for all levels |
[in] | lev | MR level |
[in] | step | time step of simulation |
[in] | do_beam_jx_jy_deposition | whether the beam deposits Jx and Jy |
[in] | do_beam_jz_deposition | whether the beam deposits Jz |
[in] | do_beam_rhomjz_deposition | whether the beam deposits rhomjz |
[in] | which_slice | defines if this, next or salame slice is handled |
[in] | which_beam_slice | defines if this or the next beam slice is handled |
[in] | only_highest | if the particles deposit only on their highest MR level |
◆ get_name()
std::string MultiBeam::get_name |
( |
int |
i | ) |
const |
|
inline |
returns the name of a beam
◆ get_nbeams()
int MultiBeam::get_nbeams |
( |
| ) |
const |
|
inline |
returns the number of beams
◆ getBeam() [1/2]
Return 1 species.
- Parameters
-
◆ getBeam() [2/2]
Return 1 species.
- Parameters
-
◆ InitData()
Loop over species and init them
- Parameters
-
[in] | geom | Simulation geometry |
- Returns
- physical time at which the simulation will start
◆ InSituComputeDiags()
void MultiBeam::InSituComputeDiags |
( |
int |
step, |
|
|
int |
islice, |
|
|
int |
max_step, |
|
|
amrex::Real |
physical_time, |
|
|
amrex::Real |
max_time |
|
) |
| |
Compute reduced beam diagnostics of current slice, store in member variable.
- Parameters
-
[in] | step | time step of simulation |
[in] | islice | current slice, on which diags are computed. |
[in] | max_step | maximum time step of simulation |
[in] | physical_time | physical time at the given step |
[in] | max_time | maximum time of simulation |
◆ InSituWriteToFile()
void MultiBeam::InSituWriteToFile |
( |
int |
step, |
|
|
amrex::Real |
time, |
|
|
const amrex::Geometry & |
geom, |
|
|
int |
max_step, |
|
|
amrex::Real |
max_time |
|
) |
| |
Write reduced beam diagnostics to file
- Parameters
-
[in] | step | time step of simulation |
[in] | time | physical time at the given step |
[in] | geom | Simulation geometry |
[in] | max_step | maximum time step of simulation |
[in] | max_time | maximum time of simulation |
◆ isSalameNow()
bool MultiBeam::isSalameNow |
( |
const int |
step | ) |
|
returns if the SALAME algorithm should be used on this slice
- Parameters
-
[in] | step | time step of simulation |
◆ ReorderParticles()
Reorder beam particles to speed-up push and current deposition.
- Parameters
-
◆ shiftBeamSlices()
void MultiBeam::shiftBeamSlices |
( |
| ) |
|
|
inline |
◆ shiftSlippedParticles()
◆ TagByLevel()
Store the finest level of every beam particle on which_slice in the cpu() attribute.
- Parameters
-
[in] | current_N_level | number of MR levels active on the current slice |
[in] | geom3D | Geometry object for the whole domain |
[in] | which_slice | slice to mark |
◆ m_all_beams
contains all beam containers
◆ m_n_real_particles
number of real particles per beam, as opposed to ghost particles
◆ m_names
names of all beam containers
◆ m_nbeams
int MultiBeam::m_nbeams {0} |
|
private |
number of beam containers
The documentation for this class was generated from the following files:
- /home/docs/checkouts/readthedocs.org/user_builds/hipace/checkouts/stable/src/particles/beam/MultiBeam.H
- /home/docs/checkouts/readthedocs.org/user_builds/hipace/checkouts/stable/src/particles/beam/MultiBeam.cpp