aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.H')
-rw-r--r--Source/Particles/PhysicalParticleContainer.H72
1 files changed, 69 insertions, 3 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.H b/Source/Particles/PhysicalParticleContainer.H
index e70b470b8..0192ffb37 100644
--- a/Source/Particles/PhysicalParticleContainer.H
+++ b/Source/Particles/PhysicalParticleContainer.H
@@ -15,6 +15,13 @@
#include <map>
+/**
+ * PhysicalParticleContainer is the ParticleContainer class containing plasma
+ * particles (if a simulation has 2 plasma species, say "electrons" and
+ * "ions"), they will be two instances of PhysicalParticleContainer.
+ *
+ * PhysicalParticleContainer inherits from WarpXParticleContainer.
+ */
class PhysicalParticleContainer
: public WarpXParticleContainer
{
@@ -68,6 +75,39 @@ public:
int lev,
int depos_lev);
+ /**
+ * \brief Evolve is the central function PhysicalParticleContainer that
+ * advances plasma particles for a time dt (typically one timestep).
+ *
+ * \param lev level on which particles are living
+ * \param Ex MultiFab from which field Ex is gathered
+ * \param Ey MultiFab from which field Ey is gathered
+ * \param Ez MultiFab from which field Ez is gathered
+ * \param Bx MultiFab from which field Bx is gathered
+ * \param By MultiFab from which field By is gathered
+ * \param Bz MultiFab from which field Bz is gathered
+ * \param jx MultiFab to which the particles' current jx is deposited
+ * \param jy MultiFab to which the particles' current jy is deposited
+ * \param jz MultiFab to which the particles' current jz is deposited
+ * \param cjx Same as jx (coarser, from lev-1), when using deposition buffers
+ * \param cjy Same as jy (coarser, from lev-1), when using deposition buffers
+ * \param cjz Same as jz (coarser, from lev-1), when using deposition buffers
+ * \param rho MultiFab to which the particles' charge is deposited
+ * \param crho Same as rho (coarser, from lev-1), when using deposition buffers
+ * \param cEx Same as Ex (coarser, from lev-1), when using gather buffers
+ * \param cEy Same as Ey (coarser, from lev-1), when using gather buffers
+ * \param cEz Same as Ez (coarser, from lev-1), when using gather buffers
+ * \param cBx Same as Bx (coarser, from lev-1), when using gather buffers
+ * \param cBy Same as By (coarser, from lev-1), when using gather buffers
+ * \param cBz Same as Bz (coarser, from lev-1), when using gather buffers
+ * \param t current physical time
+ * \param dt time step by which particles are advanced
+ * \param a_dt_type type of time step (used for sub-cycling)
+ *
+ * Evolve iterates over particle iterator (each box) and performs filtering,
+ * field gather, particle push and current deposition for all particles
+ * in the box.
+ */
virtual void Evolve (int lev,
const amrex::MultiFab& Ex,
const amrex::MultiFab& Ey,
@@ -163,13 +203,39 @@ public:
* \brief Apply NCI Godfrey filter to all components of E and B before gather
* \param lev MR level
* \param box box onto which the filter is applied
- * \param exeli safeguard to avoid destructing arrays between ParIter iterations on GPU
+ * \param exeli safeguard Elixir object (to avoid de-allocating too early
+ --between ParIter iterations-- on GPU) for field Ex
+ * \param eyeli safeguard Elixir object (to avoid de-allocating too early
+ --between ParIter iterations-- on GPU) for field Ey
+ * \param ezeli safeguard Elixir object (to avoid de-allocating too early
+ --between ParIter iterations-- on GPU) for field Ez
+ * \param bxeli safeguard Elixir object (to avoid de-allocating too early
+ --between ParIter iterations-- on GPU) for field Bx
+ * \param byeli safeguard Elixir object (to avoid de-allocating too early
+ --between ParIter iterations-- on GPU) for field By
+ * \param bzeli safeguard Elixir object (to avoid de-allocating too early
+ --between ParIter iterations-- on GPU) for field Bz
* \param filtered_Ex Array containing filtered value
+ * \param filtered_Ey Array containing filtered value
+ * \param filtered_Ez Array containing filtered value
+ * \param filtered_Bx Array containing filtered value
+ * \param filtered_By Array containing filtered value
+ * \param filtered_Bz Array containing filtered value
* \param Ex Field array before filtering (not modified)
- * \param ex_ptr pointer to the array used for field gather.
+ * \param Ey Field array before filtering (not modified)
+ * \param Ez Field array before filtering (not modified)
+ * \param Bx Field array before filtering (not modified)
+ * \param By Field array before filtering (not modified)
+ * \param Bz Field array before filtering (not modified)
+ * \param exfab pointer to the Ex field (modified)
+ * \param eyfab pointer to the Ey field (modified)
+ * \param ezfab pointer to the Ez field (modified)
+ * \param bxfab pointer to the Bx field (modified)
+ * \param byfab pointer to the By field (modified)
+ * \param bzfab pointer to the Bz field (modified)
*
* The NCI Godfrey filter is applied on Ex, the result is stored in filtered_Ex
- * and the pointer is modified (before this function is called, it points to Ex
+ * and the pointer exfab is modified (before this function is called, it points to Ex
* and after this function is called, it points to Ex_filtered)
*/
void applyNCIFilter (