|
ARTEMIS
|
#include "Particles/Gather/GetExternalFields.H"#include "Particles/Pusher/GetAndSetPosition.H"#include "Particles/ShapeFactors.H"#include "Utils/WarpX_Complex.H"#include <AMReX.H>Go to the source code of this file.
Functions | |
| template<int depos_order, int galerkin_interpolation> | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | doGatherShapeN (const amrex::ParticleReal xp, const amrex::ParticleReal yp, const amrex::ParticleReal zp, amrex::ParticleReal &Exp, amrex::ParticleReal &Eyp, amrex::ParticleReal &Ezp, amrex::ParticleReal &Bxp, amrex::ParticleReal &Byp, amrex::ParticleReal &Bzp, amrex::Array4< amrex::Real const > const &ex_arr, amrex::Array4< amrex::Real const > const &ey_arr, amrex::Array4< amrex::Real const > const &ez_arr, amrex::Array4< amrex::Real const > const &bx_arr, amrex::Array4< amrex::Real const > const &by_arr, amrex::Array4< amrex::Real const > const &bz_arr, const amrex::IndexType ex_type, const amrex::IndexType ey_type, const amrex::IndexType ez_type, const amrex::IndexType bx_type, const amrex::IndexType by_type, const amrex::IndexType bz_type, const amrex::GpuArray< amrex::Real, 3 > &dx, const amrex::GpuArray< amrex::Real, 3 > &xyzmin, const amrex::Dim3 &lo, const int n_rz_azimuthal_modes) |
| Field gather for a single particle. More... | |
| template<int depos_order, int lower_in_v> | |
| void | doGatherShapeN (const GetParticlePosition &getPosition, const GetExternalEBField &getExternalEB, amrex::ParticleReal *const Exp, amrex::ParticleReal *const Eyp, amrex::ParticleReal *const Ezp, amrex::ParticleReal *const Bxp, amrex::ParticleReal *const Byp, amrex::ParticleReal *const Bzp, amrex::FArrayBox const *const exfab, amrex::FArrayBox const *const eyfab, amrex::FArrayBox const *const ezfab, amrex::FArrayBox const *const bxfab, amrex::FArrayBox const *const byfab, amrex::FArrayBox const *const bzfab, const long np_to_gather, const std::array< amrex::Real, 3 > &dx, const std::array< amrex::Real, 3 > xyzmin, const amrex::Dim3 lo, const int n_rz_azimuthal_modes) |
| Field gather for particles. More... | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | doGatherShapeN (const amrex::ParticleReal xp, const amrex::ParticleReal yp, const amrex::ParticleReal zp, amrex::ParticleReal &Exp, amrex::ParticleReal &Eyp, amrex::ParticleReal &Ezp, amrex::ParticleReal &Bxp, amrex::ParticleReal &Byp, amrex::ParticleReal &Bzp, amrex::Array4< amrex::Real const > const &ex_arr, amrex::Array4< amrex::Real const > const &ey_arr, amrex::Array4< amrex::Real const > const &ez_arr, amrex::Array4< amrex::Real const > const &bx_arr, amrex::Array4< amrex::Real const > const &by_arr, amrex::Array4< amrex::Real const > const &bz_arr, const amrex::IndexType ex_type, const amrex::IndexType ey_type, const amrex::IndexType ez_type, const amrex::IndexType bx_type, const amrex::IndexType by_type, const amrex::IndexType bz_type, const amrex::GpuArray< amrex::Real, 3 > &dx_arr, const amrex::GpuArray< amrex::Real, 3 > &xyzmin_arr, const amrex::Dim3 &lo, const int n_rz_azimuthal_modes, const int nox, const bool galerkin_interpolation) |
| Field gather for a single particle. More... | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void doGatherShapeN | ( | const amrex::ParticleReal | xp, |
| const amrex::ParticleReal | yp, | ||
| const amrex::ParticleReal | zp, | ||
| amrex::ParticleReal & | Exp, | ||
| amrex::ParticleReal & | Eyp, | ||
| amrex::ParticleReal & | Ezp, | ||
| amrex::ParticleReal & | Bxp, | ||
| amrex::ParticleReal & | Byp, | ||
| amrex::ParticleReal & | Bzp, | ||
| amrex::Array4< amrex::Real const > const & | ex_arr, | ||
| amrex::Array4< amrex::Real const > const & | ey_arr, | ||
| amrex::Array4< amrex::Real const > const & | ez_arr, | ||
| amrex::Array4< amrex::Real const > const & | bx_arr, | ||
| amrex::Array4< amrex::Real const > const & | by_arr, | ||
| amrex::Array4< amrex::Real const > const & | bz_arr, | ||
| const amrex::IndexType | ex_type, | ||
| const amrex::IndexType | ey_type, | ||
| const amrex::IndexType | ez_type, | ||
| const amrex::IndexType | bx_type, | ||
| const amrex::IndexType | by_type, | ||
| const amrex::IndexType | bz_type, | ||
| const amrex::GpuArray< amrex::Real, 3 > & | dx, | ||
| const amrex::GpuArray< amrex::Real, 3 > & | xyzmin, | ||
| const amrex::Dim3 & | lo, | ||
| const int | n_rz_azimuthal_modes | ||
| ) |
Field gather for a single particle.
| depos_order | Particle shape order |
| galerkin_interpolation | Lower the order of the particle shape by this value (0/1) for the parallel field component |
| xp,yp,zp | Particle position coordinates |
| Exp,Eyp,Ezp | Electric field on particles. |
| Bxp,Byp,Bzp | Magnetic field on particles. |
| ex_arr,ey_arr,ez_arr | Array4 of the electric field, either full array or tile. |
| bx_arr,by_arr,bz_arr | Array4 of the magnetic field, either full array or tile. |
| ex_type,ey_type,ez_type | IndexType of the electric field |
| bx_type,by_type,bz_type | IndexType of the magnetic field |
| dx | 3D cell spacing |
| xyzmin | Physical lower bounds of domain in x, y, z. |
| lo | Index lower bounds of domain. |
| n_rz_azimuthal_modes | Number of azimuthal modes when using RZ geometry |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void doGatherShapeN | ( | const amrex::ParticleReal | xp, |
| const amrex::ParticleReal | yp, | ||
| const amrex::ParticleReal | zp, | ||
| amrex::ParticleReal & | Exp, | ||
| amrex::ParticleReal & | Eyp, | ||
| amrex::ParticleReal & | Ezp, | ||
| amrex::ParticleReal & | Bxp, | ||
| amrex::ParticleReal & | Byp, | ||
| amrex::ParticleReal & | Bzp, | ||
| amrex::Array4< amrex::Real const > const & | ex_arr, | ||
| amrex::Array4< amrex::Real const > const & | ey_arr, | ||
| amrex::Array4< amrex::Real const > const & | ez_arr, | ||
| amrex::Array4< amrex::Real const > const & | bx_arr, | ||
| amrex::Array4< amrex::Real const > const & | by_arr, | ||
| amrex::Array4< amrex::Real const > const & | bz_arr, | ||
| const amrex::IndexType | ex_type, | ||
| const amrex::IndexType | ey_type, | ||
| const amrex::IndexType | ez_type, | ||
| const amrex::IndexType | bx_type, | ||
| const amrex::IndexType | by_type, | ||
| const amrex::IndexType | bz_type, | ||
| const amrex::GpuArray< amrex::Real, 3 > & | dx_arr, | ||
| const amrex::GpuArray< amrex::Real, 3 > & | xyzmin_arr, | ||
| const amrex::Dim3 & | lo, | ||
| const int | n_rz_azimuthal_modes, | ||
| const int | nox, | ||
| const bool | galerkin_interpolation | ||
| ) |
Field gather for a single particle.
| xp,yp,zp | Particle position coordinates |
| Exp,Eyp,Ezp | Electric field on particles. |
| Bxp,Byp,Bzp | Magnetic field on particles. |
| ex_arr,ey_arr,ez_arr | Array4 of the electric field, either full array or tile. |
| bx_arr,by_arr,bz_arr | Array4 of the magnetic field, either full array or tile. |
| ex_type,ey_type,ez_type | IndexType of the electric field |
| bx_type,by_type,bz_type | IndexType of the magnetic field |
| dx_arr | 3D cell spacing |
| xyzmin_arr | Physical lower bounds of domain in x, y, z. |
| lo | Index lower bounds of domain. |
| n_rz_azimuthal_modes | Number of azimuthal modes when using RZ geometry |
| nox | order of the particle shape function |
| galerkin_interpolation | whether to use lower order in v |
| void doGatherShapeN | ( | const GetParticlePosition & | getPosition, |
| const GetExternalEBField & | getExternalEB, | ||
| amrex::ParticleReal *const | Exp, | ||
| amrex::ParticleReal *const | Eyp, | ||
| amrex::ParticleReal *const | Ezp, | ||
| amrex::ParticleReal *const | Bxp, | ||
| amrex::ParticleReal *const | Byp, | ||
| amrex::ParticleReal *const | Bzp, | ||
| amrex::FArrayBox const *const | exfab, | ||
| amrex::FArrayBox const *const | eyfab, | ||
| amrex::FArrayBox const *const | ezfab, | ||
| amrex::FArrayBox const *const | bxfab, | ||
| amrex::FArrayBox const *const | byfab, | ||
| amrex::FArrayBox const *const | bzfab, | ||
| const long | np_to_gather, | ||
| const std::array< amrex::Real, 3 > & | dx, | ||
| const std::array< amrex::Real, 3 > | xyzmin, | ||
| const amrex::Dim3 | lo, | ||
| const int | n_rz_azimuthal_modes | ||
| ) |
Field gather for particles.
| depos_order | deposition order |
| lower_in_v | lower shape order in parallel direction (Galerkin) |
| getPosition | A functor for returning the particle position. |
| getExternalEB | A functor for assigning the external E and B fields. |
| Exp,Eyp,Ezp | Pointer to array of electric field on particles. |
| Bxp,Byp,Bzp | Pointer to array of magnetic field on particles. |
| exfab,eyfab,ezfab | Array4 of the electric field, either full array or tile. |
| bxfab,byfab,bzfab | Array4 of the magnetic field, either full array or tile. |
| np_to_gather | Number of particles for which field is gathered. |
| dx | 3D cell size |
| xyzmin | Physical lower bounds of domain. |
| lo | Index lower bounds of domain. |
| n_rz_azimuthal_modes | Number of azimuthal modes when using RZ geometry |