Hipace
|
#include "Salame.H"
#include "particles/particles_utils/FieldGather.H"
#include "utils/GPUUtil.H"
#include "utils/HipaceProfilerWrapper.H"
Functions | |
void | SalameModule (Hipace *hipace, const int n_iter, const bool do_advance, int &last_islice, bool &overloaded, const int current_N_level, const int step, const int islice) |
void | SalameInitializeSxSyWithBeam (Hipace *hipace, const int lev) |
void | SalameGetJxJyFromBxBy (Hipace *hipace, const int lev) |
void | SalameOnlyAdvancePlasma (Hipace *hipace, const int lev) |
std::pair< amrex::Real, amrex::Real > | SalameGetW (Hipace *hipace, const int current_N_level, const int islice) |
void | SalameMultiplyBeamWeight (const amrex::Real W, Hipace *hipace) |
Approximate the extra jx and jy from the SALAME beam using Bx By and chi
[in] | hipace | pointer to Hipace instance |
[in] | lev | MR level |
std::pair<amrex::Real, amrex::Real> SalameGetW | ( | Hipace * | hipace, |
const int | current_N_level, | ||
const int | islice | ||
) |
Calculate the new weighting factor of the SALAME beam using the difference in E fields. The average is weighted using the SALAME beam current.
[in] | hipace | pointer to Hipace instance |
[in] | current_N_level | number of MR levels active on the current slice |
[in] | islice | slice index of the whole domain |
Initialize Sx and Sy with the contribution from the SALAME beam
[in] | hipace | pointer to Hipace instance |
[in] | lev | MR level |
void SalameModule | ( | Hipace * | hipace, |
const int | n_iter, | ||
const bool | do_advance, | ||
int & | last_islice, | ||
bool & | overloaded, | ||
const int | current_N_level, | ||
const int | step, | ||
const int | islice | ||
) |
Calculate new weight for this slice of SALAME beams and recompute the effected fields
[in] | hipace | pointer to Hipace instance |
[in] | n_iter | the number of SALAME iterations to be done |
[in] | do_advance | if the SALAME-only field should be computed exactly with plasma particles |
[in,out] | last_islice | the slice index of the previous slice with SALAME |
[in,out] | overloaded | if the SALAME beam was overloaded in the last slice |
[in] | current_N_level | number of MR levels active on the current slice |
[in] | step | time step of simulation |
[in] | islice | slice index of the whole domain |
void SalameMultiplyBeamWeight | ( | const amrex::Real | W, |
Hipace * | hipace | ||
) |
Multiply SALAME beam weight on this slice with W
[in] | W | weight multiplier |
[in] | hipace | pointer to Hipace instance |