|
WarpX
|
#include "Particles/Pusher/GetAndSetPosition.H"#include "Particles/ShapeFactors.H"#include "Utils/WarpX_Complex.H"#include <AMReX.H>#include <AMReX_Array4.H>#include <AMReX_REAL.H>Go to the source code of this file.
Functions | |
| template<int depos_order> | |
| void | doDepositionShapeN (const GetParticlePosition &GetPosition, const amrex::ParticleReal *const wp, const amrex::ParticleReal *const uxp, const amrex::ParticleReal *const uyp, const amrex::ParticleReal *const uzp, const int *const ion_lev, amrex::FArrayBox &jx_fab, amrex::FArrayBox &jy_fab, amrex::FArrayBox &jz_fab, const long np_to_depose, const amrex::Real dt, const std::array< amrex::Real, 3 > &dx, const std::array< amrex::Real, 3 > &xyzmin, const amrex::Dim3 lo, const amrex::Real q, const long n_rz_azimuthal_modes) |
| Current Deposition for thread thread_num /param GetPosition : A functor for returning the particle position. More... | |
| template<int depos_order> | |
| void | doEsirkepovDepositionShapeN (const GetParticlePosition &GetPosition, const amrex::ParticleReal *const wp, const amrex::ParticleReal *const uxp, const amrex::ParticleReal *const uyp, const amrex::ParticleReal *const uzp, const int *ion_lev, const amrex::Array4< amrex::Real > &Jx_arr, const amrex::Array4< amrex::Real > &Jy_arr, const amrex::Array4< amrex::Real > &Jz_arr, const long np_to_depose, const amrex::Real dt, const std::array< amrex::Real, 3 > &dx, const std::array< amrex::Real, 3 > xyzmin, const amrex::Dim3 lo, const amrex::Real q, const long n_rz_azimuthal_modes) |
| Esirkepov Current Deposition for thread thread_num. More... | |
| template<int depos_order> | |
| void | doVayDepositionShapeN (const GetParticlePosition &GetPosition, const amrex::ParticleReal *const wp, const amrex::ParticleReal *const uxp, const amrex::ParticleReal *const uyp, const amrex::ParticleReal *const uzp, const int *const ion_lev, amrex::FArrayBox &jx_fab, amrex::FArrayBox &jy_fab, amrex::FArrayBox &jz_fab, const long np_to_depose, const amrex::Real dt, const std::array< amrex::Real, 3 > &dx, const std::array< amrex::Real, 3 > &xyzmin, const amrex::Dim3 lo, const amrex::Real q, const long n_rz_azimuthal_modes) |
Vay current deposition (Vay et al, 2013) for thread thread_num: deposit D in real space and store the result in jx_fab, jy_fab, jz_fab. More... | |
| void doDepositionShapeN | ( | const GetParticlePosition & | GetPosition, |
| const amrex::ParticleReal *const | wp, | ||
| const amrex::ParticleReal *const | uxp, | ||
| const amrex::ParticleReal *const | uyp, | ||
| const amrex::ParticleReal *const | uzp, | ||
| const int *const | ion_lev, | ||
| amrex::FArrayBox & | jx_fab, | ||
| amrex::FArrayBox & | jy_fab, | ||
| amrex::FArrayBox & | jz_fab, | ||
| const long | np_to_depose, | ||
| const amrex::Real | dt, | ||
| const std::array< amrex::Real, 3 > & | dx, | ||
| const std::array< amrex::Real, 3 > & | xyzmin, | ||
| const amrex::Dim3 | lo, | ||
| const amrex::Real | q, | ||
| const long | n_rz_azimuthal_modes | ||
| ) |
Current Deposition for thread thread_num /param GetPosition : A functor for returning the particle position.
| wp | : Pointer to array of particle weights. |
| uxp | uyp uzp : Pointer to arrays of particle momentum. |
| ion_lev | : Pointer to array of particle ionization level. This is required to have the charge of each macroparticle since q is a scalar. For non-ionizable species, ion_lev is a null pointer. |
| jx_fab | : FArrayBox of current density, either full array or tile. |
| jy_fab | : FArrayBox of current density, either full array or tile. |
| jz_fab | : FArrayBox of current density, either full array or tile. |
| np_to_depose | : Number of particles for which current is deposited. |
| dt | : Time step for particle level |
| dx | : 3D cell size |
| xyzmin | : Physical lower bounds of domain. |
| lo | : Index lower bounds of domain. /param q : species charge. |
| void doEsirkepovDepositionShapeN | ( | const GetParticlePosition & | GetPosition, |
| const amrex::ParticleReal *const | wp, | ||
| const amrex::ParticleReal *const | uxp, | ||
| const amrex::ParticleReal *const | uyp, | ||
| const amrex::ParticleReal *const | uzp, | ||
| const int * | ion_lev, | ||
| const amrex::Array4< amrex::Real > & | Jx_arr, | ||
| const amrex::Array4< amrex::Real > & | Jy_arr, | ||
| const amrex::Array4< amrex::Real > & | Jz_arr, | ||
| const long | np_to_depose, | ||
| const amrex::Real | dt, | ||
| const std::array< amrex::Real, 3 > & | dx, | ||
| const std::array< amrex::Real, 3 > | xyzmin, | ||
| const amrex::Dim3 | lo, | ||
| const amrex::Real | q, | ||
| const long | n_rz_azimuthal_modes | ||
| ) |
Esirkepov Current Deposition for thread thread_num.
/param GetPosition : A functor for returning the particle position.
| wp | : Pointer to array of particle weights. |
| uxp | uyp uzp : Pointer to arrays of particle momentum. |
| ion_lev | : Pointer to array of particle ionization level. This is required to have the charge of each macroparticle since q is a scalar. For non-ionizable species, ion_lev is a null pointer. |
| Jx_arr | : Array4 of current density, either full array or tile. |
| Jy_arr | : Array4 of current density, either full array or tile. |
| Jz_arr | : Array4 of current density, either full array or tile. |
| np_to_depose | : Number of particles for which current is deposited. |
| dt | : Time step for particle level |
| dx | : 3D cell size |
| xyzmin | : Physical lower bounds of domain. |
| lo | : Index lower bounds of domain. |
| q | : species charge. |
| n_rz_azimuthal_modes | Number of azimuthal modes when using RZ geometry |
| void doVayDepositionShapeN | ( | const GetParticlePosition & | GetPosition, |
| const amrex::ParticleReal *const | wp, | ||
| const amrex::ParticleReal *const | uxp, | ||
| const amrex::ParticleReal *const | uyp, | ||
| const amrex::ParticleReal *const | uzp, | ||
| const int *const | ion_lev, | ||
| amrex::FArrayBox & | jx_fab, | ||
| amrex::FArrayBox & | jy_fab, | ||
| amrex::FArrayBox & | jz_fab, | ||
| const long | np_to_depose, | ||
| const amrex::Real | dt, | ||
| const std::array< amrex::Real, 3 > & | dx, | ||
| const std::array< amrex::Real, 3 > & | xyzmin, | ||
| const amrex::Dim3 | lo, | ||
| const amrex::Real | q, | ||
| const long | n_rz_azimuthal_modes | ||
| ) |
Vay current deposition (Vay et al, 2013) for thread thread_num: deposit D in real space and store the result in jx_fab, jy_fab, jz_fab.
| [in] | GetPosition | Functor that returns the particle position |
| [in] | wp | Pointer to array of particle weights |
| [in] | uxp | Pointer to arrays of particle momentum along x |
| [in] | uyp | Pointer to arrays of particle momentum along y |
| [in] | uzp | Pointer to arrays of particle momentum along z |
| [in] | ion_lev | Pointer to array of particle ionization level. This is required to have the charge of each macroparticle since q is a scalar. For non-ionizable species, ion_lev is null |
| [in,out] | jx_fab | FArrayBox of current density, either full array or tile |
| [in,out] | jy_fab | FArrayBox of current density, either full array or tile |
| [in,out] | jz_fab | FArrayBox of current density, either full array or tile |
| [in] | np_to_depose | Number of particles for which current is deposited |
| [in] | dt | Time step for particle level |
| [in] | dx | 3D cell size |
| [in] | xyzmin | 3D lower bounds of physical domain |
| [in] | lo | Dimension-agnostic lower bounds of index domain |
| [in] | q | Species charge |
| [in] | n_rz_azimuthal_modes | Number of azimuthal modes in RZ geometry |
1.8.13