aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles')
-rwxr-xr-xSource/Particles/Deposition/ChargeDeposition.H8
-rw-r--r--Source/Particles/Deposition/CurrentDeposition.H26
-rw-r--r--Source/Particles/Gather/FieldGather.H2
-rw-r--r--Source/Particles/MultiParticleContainer.H36
-rw-r--r--Source/Particles/MultiParticleContainer.cpp46
-rw-r--r--Source/Particles/PhysicalParticleContainer.H10
-rw-r--r--Source/Particles/PhysicalParticleContainer.cpp122
-rw-r--r--Source/Particles/RigidInjectedParticleContainer.H2
-rw-r--r--Source/Particles/ShapeFactors.H2
-rw-r--r--Source/Particles/WarpXParticleContainer.H72
-rw-r--r--Source/Particles/WarpXParticleContainer.cpp18
-rw-r--r--Source/Particles/deposit_cic.F904
-rw-r--r--Source/Particles/interpolate_cic.F9034
-rw-r--r--Source/Particles/push_particles_ES.F9022
14 files changed, 202 insertions, 202 deletions
diff --git a/Source/Particles/Deposition/ChargeDeposition.H b/Source/Particles/Deposition/ChargeDeposition.H
index f02eb1033..b9210e67c 100755
--- a/Source/Particles/Deposition/ChargeDeposition.H
+++ b/Source/Particles/Deposition/ChargeDeposition.H
@@ -18,8 +18,8 @@
* /param q : species charge.
*/
template <int depos_order>
-void doChargeDepositionShapeN(const amrex::Real * const xp,
- const amrex::Real * const yp,
+void doChargeDepositionShapeN(const amrex::Real * const xp,
+ const amrex::Real * const yp,
const amrex::Real * const zp,
const amrex::Real * const wp,
const int * const ion_lev,
@@ -69,7 +69,7 @@ void doChargeDepositionShapeN(const amrex::Real * const xp,
amrex::Real sx[depos_order + 1];
// i: leftmost grid point (node-centered) that the particle touches
const int i = compute_shape_factor<depos_order>(sx, x);
-
+
#if (defined WARPX_DIM_3D)
// y direction
const amrex::Real y = (yp[ip] - ymin)*dyi;
@@ -86,7 +86,7 @@ void doChargeDepositionShapeN(const amrex::Real * const xp,
for (int iz=0; iz<=depos_order; iz++){
for (int ix=0; ix<=depos_order; ix++){
amrex::Gpu::Atomic::Add(
- &rho_arr(lo.x+i+ix, lo.y+k+iz, 0),
+ &rho_arr(lo.x+i+ix, lo.y+k+iz, 0),
sx[ix]*sz[iz]*wq);
}
}
diff --git a/Source/Particles/Deposition/CurrentDeposition.H b/Source/Particles/Deposition/CurrentDeposition.H
index c7dfde75a..7a96dab9a 100644
--- a/Source/Particles/Deposition/CurrentDeposition.H
+++ b/Source/Particles/Deposition/CurrentDeposition.H
@@ -24,8 +24,8 @@
* /param q : species charge.
*/
template <int depos_order>
-void doDepositionShapeN(const amrex::Real * const xp,
- const amrex::Real * const yp,
+void doDepositionShapeN(const amrex::Real * const xp,
+ const amrex::Real * const yp,
const amrex::Real * const zp,
const amrex::Real * const wp,
const amrex::Real * const uxp,
@@ -39,7 +39,7 @@ void doDepositionShapeN(const amrex::Real * const xp,
const std::array<amrex::Real,3>& dx,
const std::array<amrex::Real, 3> xyzmin,
const amrex::Dim3 lo,
- const amrex::Real stagger_shift,
+ const amrex::Real stagger_shift,
const amrex::Real q)
{
// Whether ion_lev is a null pointer (do_ionization=0) or a real pointer
@@ -77,7 +77,7 @@ void doDepositionShapeN(const amrex::Real * const xp,
const amrex::Real vx = uxp[ip]*gaminv;
const amrex::Real vy = uyp[ip]*gaminv;
const amrex::Real vz = uzp[ip]*gaminv;
- // wqx, wqy wqz are particle current in each direction
+ // wqx, wqy wqz are particle current in each direction
#if (defined WARPX_DIM_RZ)
// In RZ, wqx is actually wqr, and wqy is wqtheta
// Convert to cylinderical at the mid point
@@ -117,7 +117,7 @@ void doDepositionShapeN(const amrex::Real * const xp,
amrex::Real sx0[depos_order + 1];
// j0: leftmost grid point (cell-centered) that the particle touches
const int j0 = compute_shape_factor<depos_order>(sx0, xmid-stagger_shift);
-
+
#if (defined WARPX_DIM_3D)
// y direction
const amrex::Real ymid= (yp[ip]-ymin)*dyi-dts2dy*vy;
@@ -138,13 +138,13 @@ void doDepositionShapeN(const amrex::Real * const xp,
for (int iz=0; iz<=depos_order; iz++){
for (int ix=0; ix<=depos_order; ix++){
amrex::Gpu::Atomic::Add(
- &jx_arr(lo.x+j0+ix, lo.y+l +iz, 0),
+ &jx_arr(lo.x+j0+ix, lo.y+l +iz, 0),
sx0[ix]*sz [iz]*wqx);
amrex::Gpu::Atomic::Add(
- &jy_arr(lo.x+j +ix, lo.y+l +iz, 0),
+ &jy_arr(lo.x+j +ix, lo.y+l +iz, 0),
sx [ix]*sz [iz]*wqy);
amrex::Gpu::Atomic::Add(
- &jz_arr(lo.x+j +ix, lo.y+l0+iz, 0),
+ &jz_arr(lo.x+j +ix, lo.y+l0+iz, 0),
sx [ix]*sz0[iz]*wqz);
}
}
@@ -156,7 +156,7 @@ void doDepositionShapeN(const amrex::Real * const xp,
&jx_arr(lo.x+j0+ix, lo.y+k +iy, lo.z+l +iz),
sx0[ix]*sy [iy]*sz [iz]*wqx);
amrex::Gpu::Atomic::Add(
- &jy_arr(lo.x+j +ix, lo.y+k0+iy, lo.z+l +iz),
+ &jy_arr(lo.x+j +ix, lo.y+k0+iy, lo.z+l +iz),
sx [ix]*sy0[iy]*sz [iz]*wqy);
amrex::Gpu::Atomic::Add(
&jz_arr(lo.x+j +ix, lo.y+k +iy, lo.z+l0+iz),
@@ -240,7 +240,7 @@ void doEsirkepovDepositionShapeN (const amrex::Real * const xp,
const amrex::Real clightsq = 1.0/PhysConst::c/PhysConst::c;
// Loop over particles and deposit into Jx_arr, Jy_arr and Jz_arr
- amrex::ParallelFor(
+ amrex::ParallelFor(
np_to_depose,
[=] AMREX_GPU_DEVICE (long ip) {
@@ -302,7 +302,7 @@ void doEsirkepovDepositionShapeN (const amrex::Real * const xp,
const amrex::Real x_new = (xp[ip] - xmin)*dxi;
const amrex::Real x_old = x_new - dtsdx0*uxp[ip]*gaminv;
#endif
-#if (defined WARPX_DIM_3D)
+#if (defined WARPX_DIM_3D)
const amrex::Real y_new = (yp[ip] - ymin)*dyi;
const amrex::Real y_old = y_new - dtsdy0*uyp[ip]*gaminv;
#endif
@@ -336,7 +336,7 @@ void doEsirkepovDepositionShapeN (const amrex::Real * const xp,
#if (defined WARPX_DIM_3D)
const int j_new = compute_shape_factor<depos_order>(sy_new+1, y_new);
const int j_old = compute_shifted_shape_factor<depos_order>(sy_old, y_old, j_new);
-#endif
+#endif
const int k_new = compute_shape_factor<depos_order>(sz_new+1, z_new);
const int k_old = compute_shifted_shape_factor<depos_order>(sz_old, z_old, k_new);
@@ -418,7 +418,7 @@ void doEsirkepovDepositionShapeN (const amrex::Real * const xp,
for (int imode=1 ; imode < n_rz_azimuthal_modes ; imode++) {
// The factor 2 comes from the normalization of the modes
// The minus sign comes from the different convention with respect to Davidson et al.
- const Complex djt_cmplx = -2.*I*(i_new-1 + i + xmin*dxi)*wq*invdtdx/(double)imode*
+ const Complex djt_cmplx = -2.*I*(i_new-1 + i + xmin*dxi)*wq*invdtdx/(double)imode*
(sx_new[i]*sz_new[k]*(xy_new - xy_mid) + sx_old[i]*sz_old[k]*(xy_mid - xy_old));
amrex::Gpu::Atomic::Add( &Jy_arr(lo.x+i_new-1+i, lo.y+k_new-1+k, 0, 2*imode-1), djt_cmplx.real());
amrex::Gpu::Atomic::Add( &Jy_arr(lo.x+i_new-1+i, lo.y+k_new-1+k, 0, 2*imode), djt_cmplx.imag());
diff --git a/Source/Particles/Gather/FieldGather.H b/Source/Particles/Gather/FieldGather.H
index d8d1d78ef..6727b0aa9 100644
--- a/Source/Particles/Gather/FieldGather.H
+++ b/Source/Particles/Gather/FieldGather.H
@@ -97,7 +97,7 @@ void doGatherShapeN(const amrex::Real * const xp,
Bxp[ip] = 0;
Byp[ip] = 0;
Bzp[ip] = 0;
- // Each field is gathered in a separate block of
+ // Each field is gathered in a separate block of
// AMREX_SPACEDIM nested loops because the deposition
// order can differ for each component of each field
// when lower_in_v is set to 1
diff --git a/Source/Particles/MultiParticleContainer.H b/Source/Particles/MultiParticleContainer.H
index 305baf4ff..ac261b177 100644
--- a/Source/Particles/MultiParticleContainer.H
+++ b/Source/Particles/MultiParticleContainer.H
@@ -51,24 +51,24 @@ public:
const amrex::Vector<std::unique_ptr<amrex::FabArray<amrex::BaseFab<int> > > >& masks);
///
- /// This evolves all the particles by one PIC time step, including charge deposition, the
+ /// This evolves all the particles by one PIC time step, including charge deposition, the
/// field solve, and pushing the particles, for all the species in the MultiParticleContainer.
/// This is the electrostatic version.
///
- void EvolveES (const amrex::Vector<std::array<std::unique_ptr<amrex::MultiFab>, 3> >& E,
- amrex::Vector<std::unique_ptr<amrex::MultiFab> >& rho,
+ void EvolveES (const amrex::Vector<std::array<std::unique_ptr<amrex::MultiFab>, 3> >& E,
+ amrex::Vector<std::unique_ptr<amrex::MultiFab> >& rho,
amrex::Real t, amrex::Real dt);
///
- /// This pushes the particle positions by one half time step for all the species in the
+ /// This pushes the particle positions by one half time step for all the species in the
/// MultiParticleContainer. It is used to desynchronize the particles after initializaton
/// or when restarting from a checkpoint. This is the electrostatic version.
- ///
+ ///
void PushXES (amrex::Real dt);
///
/// This deposits the particle charge onto rho, accumulating the value for all the species
- /// in the MultiParticleContainer. rho is assumed to contain node-centered multifabs.
+ /// in the MultiParticleContainer. rho is assumed to contain node-centered multifabs.
/// This version is hard-coded for CIC deposition.
///
void DepositCharge(amrex::Vector<std::unique_ptr<amrex::MultiFab> >& rho, bool local = false);
@@ -79,7 +79,7 @@ public:
///
amrex::Real sumParticleCharge(bool local = false);
#endif // WARPX_DO_ELECTROSTATIC
-
+
///
/// Performs the field gather operation using the input fields E and B, for all the species
/// in the MultiParticleContainer. This is the electromagnetic version of the field gather.
@@ -87,7 +87,7 @@ public:
void FieldGather (int lev,
const amrex::MultiFab& Ex, const amrex::MultiFab& Ey,
const amrex::MultiFab& Ez, const amrex::MultiFab& Bx,
- const amrex::MultiFab& By, const amrex::MultiFab& Bz);
+ const amrex::MultiFab& By, const amrex::MultiFab& Bz);
///
/// This evolves all the particles by one PIC time step, including current deposition, the
@@ -97,8 +97,8 @@ public:
void Evolve (int lev,
const amrex::MultiFab& Ex, const amrex::MultiFab& Ey, const amrex::MultiFab& Ez,
const amrex::MultiFab& Bx, const amrex::MultiFab& By, const amrex::MultiFab& Bz,
- amrex::MultiFab& jx, amrex::MultiFab& jy, amrex::MultiFab& jz,
- amrex::MultiFab* cjx, amrex::MultiFab* cjy, amrex::MultiFab* cjz,
+ amrex::MultiFab& jx, amrex::MultiFab& jy, amrex::MultiFab& jz,
+ amrex::MultiFab* cjx, amrex::MultiFab* cjy, amrex::MultiFab* cjz,
amrex::MultiFab* rho, amrex::MultiFab* crho,
const amrex::MultiFab* cEx, const amrex::MultiFab* cEy, const amrex::MultiFab* cEz,
const amrex::MultiFab* cBx, const amrex::MultiFab* cBy, const amrex::MultiFab* cBz,
@@ -108,7 +108,7 @@ public:
/// This pushes the particle positions by one half time step for all the species in the
/// MultiParticleContainer. It is used to desynchronize the particles after initializaton
/// or when restarting from a checkpoint. This is the electromagnetic version.
- ///
+ ///
void PushX (amrex::Real dt);
///
@@ -116,7 +116,7 @@ public:
/// MultiParticleContainer. It is used to desynchronize the particles after initializaton
/// or when restarting from a checkpoint. It is also used to synchronize particles at the
/// the end of the run. This is the electromagnetic version.
- ///
+ ///
void PushP (int lev, amrex::Real dt,
const amrex::MultiFab& Ex, const amrex::MultiFab& Ey, const amrex::MultiFab& Ez,
const amrex::MultiFab& Bx, const amrex::MultiFab& By, const amrex::MultiFab& Bz);
@@ -124,7 +124,7 @@ public:
///
/// This deposits the particle charge onto a node-centered MultiFab and returns a unique ptr
/// to it. The charge density is accumulated over all the particles in the MultiParticleContainer
- ///
+ ///
std::unique_ptr<amrex::MultiFab> GetChargeDensity(int lev, bool local = false);
void doFieldIonization ();
@@ -132,7 +132,7 @@ public:
void Checkpoint (const std::string& dir) const;
void WritePlotFile (const std::string& dir) const;
-
+
void Restart (const std::string& dir);
void PostRestart ();
@@ -178,7 +178,7 @@ public:
const amrex::Real t_boost, const amrex::Real t_lab, const amrex::Real dt,
amrex::Vector<WarpXParticleContainer::DiagnosticParticleData>& parts) const;
- // Inject particles during the simulation (for particles entering the
+ // Inject particles during the simulation (for particles entering the
// simulation domain after some iterations, due to flowing plasma and/or
// moving window).
void ContinuousInjection(const amrex::RealBox& injection_box) const;
@@ -189,7 +189,7 @@ public:
std::vector<std::string> GetSpeciesNames() const { return species_names; }
PhysicalParticleContainer& GetPCtmp () { return *pc_tmp; }
-
+
protected:
// Particle container types
@@ -218,10 +218,10 @@ private:
void mapSpeciesProduct ();
int getSpeciesID (std::string product_str);
-
+
// Number of species dumped in BoostedFrameDiagnostics
int nspecies_boosted_frame_diags = 0;
- // map_species_boosted_frame_diags[i] is the species ID in
+ // map_species_boosted_frame_diags[i] is the species ID in
// MultiParticleContainer for 0<i<nspecies_boosted_frame_diags
std::vector<int> map_species_boosted_frame_diags;
int do_boosted_frame_diags = 0;
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index 640439337..612583e2f 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -23,7 +23,7 @@ MultiParticleContainer::MultiParticleContainer (AmrCore* amr_core)
allcontainers[i]->m_deposit_on_main_grid = m_deposit_on_main_grid[i];
allcontainers[i]->m_gather_from_main_grid = m_gather_from_main_grid[i];
}
-
+
for (int i = nspecies; i < nspecies+nlasers; ++i) {
allcontainers[i].reset(new LaserParticleContainer(amr_core, i, lasers_names[i-nspecies]));
}
@@ -359,7 +359,7 @@ MultiParticleContainer
{
BL_PROFILE("MultiParticleContainer::GetLabFrameData");
-
+
// Loop over particle species
for (int i = 0; i < nspecies_boosted_frame_diags; ++i){
int isp = map_species_boosted_frame_diags[i];
@@ -368,41 +368,41 @@ MultiParticleContainer
pc->GetParticleSlice(direction, z_old, z_new, t_boost, t_lab, dt, diagnostic_particles);
// Here, diagnostic_particles[lev][index] is a WarpXParticleContainer::DiagnosticParticleData
// where "lev" is the AMR level and "index" is a [grid index][tile index] pair.
-
+
// Loop over AMR levels
for (int lev = 0; lev <= pc->finestLevel(); ++lev){
- // Loop over [grid index][tile index] pairs
- // and Fills parts[species number i] with particle data from all grids and
- // tiles in diagnostic_particles. parts contains particles from all
+ // Loop over [grid index][tile index] pairs
+ // and Fills parts[species number i] with particle data from all grids and
+ // tiles in diagnostic_particles. parts contains particles from all
// AMR levels indistinctly.
for (auto it = diagnostic_particles[lev].begin(); it != diagnostic_particles[lev].end(); ++it){
// it->first is the [grid index][tile index] key
- // it->second is the corresponding
+ // it->second is the corresponding
// WarpXParticleContainer::DiagnosticParticleData value
parts[i].GetRealData(DiagIdx::w).insert( parts[i].GetRealData(DiagIdx::w ).end(),
it->second.GetRealData(DiagIdx::w ).begin(),
it->second.GetRealData(DiagIdx::w ).end());
-
+
parts[i].GetRealData(DiagIdx::x).insert( parts[i].GetRealData(DiagIdx::x ).end(),
it->second.GetRealData(DiagIdx::x ).begin(),
it->second.GetRealData(DiagIdx::x ).end());
-
+
parts[i].GetRealData(DiagIdx::y).insert( parts[i].GetRealData(DiagIdx::y ).end(),
it->second.GetRealData(DiagIdx::y ).begin(),
it->second.GetRealData(DiagIdx::y ).end());
-
+
parts[i].GetRealData(DiagIdx::z).insert( parts[i].GetRealData(DiagIdx::z ).end(),
it->second.GetRealData(DiagIdx::z ).begin(),
it->second.GetRealData(DiagIdx::z ).end());
-
+
parts[i].GetRealData(DiagIdx::ux).insert( parts[i].GetRealData(DiagIdx::ux).end(),
it->second.GetRealData(DiagIdx::ux).begin(),
it->second.GetRealData(DiagIdx::ux).end());
-
+
parts[i].GetRealData(DiagIdx::uy).insert( parts[i].GetRealData(DiagIdx::uy).end(),
it->second.GetRealData(DiagIdx::uy).begin(),
it->second.GetRealData(DiagIdx::uy).end());
-
+
parts[i].GetRealData(DiagIdx::uz).insert( parts[i].GetRealData(DiagIdx::uz).end(),
it->second.GetRealData(DiagIdx::uz).begin(),
it->second.GetRealData(DiagIdx::uz).end());
@@ -413,7 +413,7 @@ MultiParticleContainer
/* \brief Continuous injection for particles initially outside of the domain.
* \param injection_box: Domain where new particles should be injected.
- * Loop over all WarpXParticleContainer in MultiParticleContainer and
+ * Loop over all WarpXParticleContainer in MultiParticleContainer and
* calls virtual function ContinuousInjection.
*/
void
@@ -429,7 +429,7 @@ MultiParticleContainer::ContinuousInjection(const RealBox& injection_box) const
/* \brief Update position of continuous injection parameters.
* \param dt: simulation time step (level 0)
- * All classes inherited from WarpXParticleContainer do not have
+ * All classes inherited from WarpXParticleContainer do not have
* a position to update (PhysicalParticleContainer does not do anything).
*/
void
@@ -457,7 +457,7 @@ MultiParticleContainer::doContinuousInjection () const
}
/* \brief Get ID of product species of each species.
- * The users specifies the name of the product species,
+ * The users specifies the name of the product species,
* this routine get its ID.
*/
void
@@ -465,8 +465,8 @@ MultiParticleContainer::mapSpeciesProduct ()
{
for (int i=0; i<nspecies; i++){
auto& pc = allcontainers[i];
- // If species pc has ionization on, find species with name
- // pc->ionization_product_name and store its ID into
+ // If species pc has ionization on, find species with name
+ // pc->ionization_product_name and store its ID into
// pc->ionization_product.
if (pc->do_field_ionization){
int i_product = getSpeciesID(pc->ionization_product_name);
@@ -577,7 +577,7 @@ namespace
}
// --- product runtime attribs
GpuArray<Real*,6> runtime_attribs_product;
- bool do_boosted_product = WarpX::do_boosted_frame_diagnostic
+ bool do_boosted_product = WarpX::do_boosted_frame_diagnostic
&& pc_product->DoBoostedFrameDiags();
if (do_boosted_product) {
std::map<std::string, int> comps_product = pc_product->getParticleComps();
@@ -624,7 +624,7 @@ namespace
attribs_product[ia][ip] = attribs_source[ia][is];
}
// Update xold etc. if boosted frame diagnostics required
- // for product species. Fill runtime attribs with a copy of
+ // for product species. Fill runtime attribs with a copy of
// current properties (xold = x etc.).
if (do_boosted_product) {
runtime_attribs_product[0][ip] = p_source.pos(0);
@@ -647,7 +647,7 @@ MultiParticleContainer::doFieldIonization ()
// Loop over all species.
// Ionized particles in pc_source create particles in pc_product
for (auto& pc_source : allcontainers){
-
+
// Skip if not ionizable
if (!pc_source->do_field_ionization){ continue; }
@@ -661,7 +661,7 @@ MultiParticleContainer::doFieldIonization ()
// they do not exist (or if they were defined by default, i.e.,
// without runtime component).
#ifdef _OPENMP
- // Touch all tiles of source species in serial if runtime attribs
+ // Touch all tiles of source species in serial if runtime attribs
for (MFIter mfi = pc_source->MakeMFIter(lev); mfi.isValid(); ++mfi) {
const int grid_id = mfi.index();
const int tile_id = mfi.LocalTileIndex();
@@ -683,7 +683,7 @@ MultiParticleContainer::doFieldIonization ()
MFItInfo info;
if (pc_source->do_tiling && Gpu::notInLaunchRegion()) {
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(
- pc_product->do_tiling,
+ pc_product->do_tiling,
"For ionization, either all or none of the "
"particle species must use tiling.");
info.EnableTiling(pc_source->tile_size);
diff --git a/Source/Particles/PhysicalParticleContainer.H b/Source/Particles/PhysicalParticleContainer.H
index c7494fbdf..7946b4650 100644
--- a/Source/Particles/PhysicalParticleContainer.H
+++ b/Source/Particles/PhysicalParticleContainer.H
@@ -24,7 +24,7 @@ public:
void InitIonizationModule ();
-#ifdef WARPX_DO_ELECTROSTATIC
+#ifdef WARPX_DO_ELECTROSTATIC
virtual void FieldGatherES(const amrex::Vector<std::array<std::unique_ptr<amrex::MultiFab>, 3> >& E,
const amrex::Vector<std::unique_ptr<amrex::FabArray<amrex::BaseFab<int> > > >& masks) override;
@@ -32,7 +32,7 @@ public:
amrex::Vector<std::unique_ptr<amrex::MultiFab> >& rho,
amrex::Real t, amrex::Real dt) override;
#endif // WARPX_DO_ELECTROSTATIC
-
+
virtual void FieldGather (int lev,
const amrex::MultiFab& Ex,
const amrex::MultiFab& Ey,
@@ -99,14 +99,14 @@ public:
const amrex::MultiFab& Bx,
const amrex::MultiFab& By,
const amrex::MultiFab& Bz) override;
-
+
void copy_attribs(WarpXParIter& pti,const amrex::Real* xp,
const amrex::Real* yp, const amrex::Real* zp);
virtual void PostRestart () final {}
void SplitParticles(int lev);
-
+
virtual void buildIonizationMask (const amrex::MFIter& mfi, const int lev,
amrex::Gpu::ManagedDeviceVector<int>& ionization_mask) override;
@@ -125,7 +125,7 @@ public:
std::array<amrex::Real, 3> u, amrex::Real weight);
virtual void GetParticleSlice(const int direction, const amrex::Real z_old,
- const amrex::Real z_new, const amrex::Real t_boost,
+ const amrex::Real z_new, const amrex::Real t_boost,
const amrex::Real t_lab, const amrex::Real dt,
DiagnosticParticles& diagnostic_particles) final;
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp
index 318ad4664..99c6973f9 100644
--- a/Source/Particles/PhysicalParticleContainer.cpp
+++ b/Source/Particles/PhysicalParticleContainer.cpp
@@ -34,7 +34,7 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp
pp.query("do_splitting", do_splitting);
pp.query("split_type", split_type);
pp.query("do_continuous_injection", do_continuous_injection);
- // Whether to plot back-transformed (lab-frame) diagnostics
+ // Whether to plot back-transformed (lab-frame) diagnostics
// for this species.
pp.query("do_boosted_frame_diags", do_boosted_frame_diags);
@@ -51,7 +51,7 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp
do_user_plot_vars = pp.queryarr("plot_vars", plot_vars);
if (not do_user_plot_vars){
// By default, all particle variables are dumped to plotfiles,
- // including {x,y,z,ux,uy,uz}old variables when running in a
+ // including {x,y,z,ux,uy,uz}old variables when running in a
// boosted frame
if (WarpX::do_boosted_frame_diagnostic && do_boosted_frame_diags){
plot_flags.resize(PIdx::nattribs + 6, 1);
@@ -68,9 +68,9 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp
// If not none, set plot_flags values to 1 for elements in plot_vars.
if (plot_vars[0] != "none"){
for (const auto& var : plot_vars){
- // Return error if var not in PIdx.
- AMREX_ALWAYS_ASSERT_WITH_MESSAGE(
- ParticleStringNames::to_index.count(var),
+ // Return error if var not in PIdx.
+ AMREX_ALWAYS_ASSERT_WITH_MESSAGE(
+ ParticleStringNames::to_index.count(var),
"plot_vars argument not in ParticleStringNames");
plot_flags[ParticleStringNames::to_index.at(var)] = 1;
}
@@ -142,7 +142,7 @@ void PhysicalParticleContainer::MapParticletoBoostedFrame(Real& x, Real& y, Real
void
PhysicalParticleContainer::AddGaussianBeam(Real x_m, Real y_m, Real z_m,
Real x_rms, Real y_rms, Real z_rms,
- Real q_tot, long npart,
+ Real q_tot, long npart,
int do_symmetrize) {
const Geometry& geom = m_gdb->Geom(0);
@@ -154,7 +154,7 @@ PhysicalParticleContainer::AddGaussianBeam(Real x_m, Real y_m, Real z_m,
std::normal_distribution<double> distz(z_m, z_rms);
if (ParallelDescriptor::IOProcessor()) {
- // If do_symmetrize, create 4x fewer particles, and
+ // If do_symmetrize, create 4x fewer particles, and
// Replicate each particle 4 times (x,y) (-x,y) (x,-y) (-x,-y)
if (do_symmetrize){
npart /= 4;
@@ -387,11 +387,11 @@ PhysicalParticleContainer::AddPlasma (int lev, RealBox part_realbox)
const int tile_id = mfi.LocalTileIndex();
// Max number of new particles, if particles are created in the whole
- // overlap_box. All of them are created, and invalid ones are then
+ // overlap_box. All of them are created, and invalid ones are then
// discaded
int max_new_particles = overlap_box.numPts() * num_ppc;
- // If refine injection, build pointer dp_cellid that holds pointer to
+ // If refine injection, build pointer dp_cellid that holds pointer to
// array of refined cell IDs.
Vector<int> cellid_v;
if (refine_injection and lev == 0)
@@ -446,7 +446,7 @@ PhysicalParticleContainer::AddPlasma (int lev, RealBox part_realbox)
if (do_field_ionization) {
pi = soa.GetIntData(particle_icomps["ionization_level"]).data() + old_size;
}
-
+
const GpuArray<Real,AMREX_SPACEDIM> overlap_corner
{AMREX_D_DECL(overlap_realbox.lo(0),
overlap_realbox.lo(1),
@@ -458,9 +458,9 @@ PhysicalParticleContainer::AddPlasma (int lev, RealBox part_realbox)
bool loc_do_field_ionization = do_field_ionization;
int loc_ionization_initial_level = ionization_initial_level;
- // Loop over all new particles and inject them (creates too many
+ // Loop over all new particles and inject them (creates too many
// particles, in particular does not consider xmin, xmax etc.).
- // The invalid ones are given negative ID and are deleted during the
+ // The invalid ones are given negative ID and are deleted during the
// next redistribute.
amrex::For(max_new_particles, [=] AMREX_GPU_DEVICE (int ip) noexcept
{
@@ -627,7 +627,7 @@ PhysicalParticleContainer::AddPlasma (int lev, RealBox part_realbox)
p.pos(1) = z;
#endif
}, shared_mem_bytes);
-
+
if (cost) {
wt = (amrex::second() - wt) / tile_box.d_numPts();
Array4<Real> const& costarr = cost->array(mfi);
@@ -865,7 +865,7 @@ PhysicalParticleContainer::FieldGather (int lev,
MultiFab* cost = WarpX::getCosts(lev);
#ifdef _OPENMP
-#pragma omp parallel
+#pragma omp parallel
#endif
{
#ifdef _OPENMP
@@ -915,7 +915,7 @@ PhysicalParticleContainer::FieldGather (int lev,
//
int e_is_nodal = Ex.is_nodal() and Ey.is_nodal() and Ez.is_nodal();
FieldGather(pti, Exp, Eyp, Ezp, Bxp, Byp, Bzp,
- &exfab, &eyfab, &ezfab, &bxfab, &byfab, &bzfab,
+ &exfab, &eyfab, &ezfab, &bxfab, &byfab, &bzfab,
Ex.nGrow(), e_is_nodal,
0, np, thread_num, lev, lev);
@@ -949,11 +949,11 @@ PhysicalParticleContainer::Evolve (int lev,
BL_PROFILE_VAR_NS("PPC::FieldGather", blp_fg);
BL_PROFILE_VAR_NS("PPC::ParticlePush", blp_ppc_pp);
BL_PROFILE_VAR_NS("PPC::Evolve::partition", blp_partition);
-
+
const std::array<Real,3>& dx = WarpX::CellSize(lev);
const std::array<Real,3>& cdx = WarpX::CellSize(std::max(lev-1,0));
- // Get instances of NCI Godfrey filters
+ // Get instances of NCI Godfrey filters
const auto& nci_godfrey_filter_exeybz = WarpX::GetInstance().nci_godfrey_filter_exeybz;
const auto& nci_godfrey_filter_bxbyez = WarpX::GetInstance().nci_godfrey_filter_bxbyez;
@@ -978,9 +978,9 @@ PhysicalParticleContainer::Evolve (int lev,
tmp_particle_data[lev][index][i].resize(np);
}
}
-
+
#ifdef _OPENMP
-#pragma omp parallel
+#pragma omp parallel
#endif
{
#ifdef _OPENMP
@@ -1183,7 +1183,7 @@ PhysicalParticleContainer::Evolve (int lev,
}
const long np_current = (cjx) ? nfine_current : np;
-
+
//
// copy data from particle container to temp arrays
//
@@ -1199,14 +1199,14 @@ PhysicalParticleContainer::Evolve (int lev,
} else {
ion_lev = nullptr;
}
- DepositCharge(pti, wp, ion_lev, rho, 0, 0,
+ DepositCharge(pti, wp, ion_lev, rho, 0, 0,
np_current, thread_num, lev, lev);
if (has_buffer){
DepositCharge(pti, wp, ion_lev, crho, 0, np_current,
np-np_current, thread_num, lev, lev-1);
}
}
-
+
if (! do_not_push)
{
const long np_gather = (cEx) ? nfine_gather : np;
@@ -1218,7 +1218,7 @@ PhysicalParticleContainer::Evolve (int lev,
//
BL_PROFILE_VAR_START(blp_fg);
FieldGather(pti, Exp, Eyp, Ezp, Bxp, Byp, Bzp,
- exfab, eyfab, ezfab, bxfab, byfab, bzfab,
+ exfab, eyfab, ezfab, bxfab, byfab, bzfab,
Ex.nGrow(), e_is_nodal,
0, np_gather, thread_num, lev, lev);
@@ -1234,7 +1234,7 @@ PhysicalParticleContainer::Evolve (int lev,
FArrayBox const* cbxfab = &(*cBx)[pti];
FArrayBox const* cbyfab = &(*cBy)[pti];
FArrayBox const* cbzfab = &(*cBz)[pti];
-
+
if (WarpX::use_fdtd_nci_corr)
{
#if (AMREX_SPACEDIM == 2)
@@ -1272,13 +1272,13 @@ PhysicalParticleContainer::Evolve (int lev,
eyeli = filtered_Ey.elixir();
nci_godfrey_filter_exeybz[lev-1]->ApplyStencil(filtered_Ey, (*cEy)[pti], filtered_Ey.box());
ceyfab = &filtered_Ey;
-
+
// Filter Bx
filtered_Bx.resize(amrex::convert(tbox,WarpX::Bx_nodal_flag));
bxeli = filtered_Bx.elixir();
nci_godfrey_filter_bxbyez[lev-1]->ApplyStencil(filtered_Bx, (*cBx)[pti], filtered_Bx.box());
cbxfab = &filtered_Bx;
-
+
// Filter Bz
filtered_Bz.resize(amrex::convert(tbox,WarpX::Bz_nodal_flag));
bzeli = filtered_Bz.elixir();
@@ -1286,14 +1286,14 @@ PhysicalParticleContainer::Evolve (int lev,
cbzfab = &filtered_Bz;
#endif
}
-
+
// Field gather for particles in gather buffers
e_is_nodal = cEx->is_nodal() and cEy->is_nodal() and cEz->is_nodal();
- FieldGather(pti, Exp, Eyp, Ezp, Bxp, Byp, Bzp,
+ FieldGather(pti, Exp, Eyp, Ezp, Bxp, Byp, Bzp,
cexfab, ceyfab, cezfab,
cbxfab, cbyfab, cbzfab,
- cEx->nGrow(), e_is_nodal,
- nfine_gather, np-nfine_gather,
+ cEx->nGrow(), e_is_nodal,
+ nfine_gather, np-nfine_gather,
thread_num, lev, lev-1);
}
@@ -1303,7 +1303,7 @@ PhysicalParticleContainer::Evolve (int lev,
// Particle Push
//
BL_PROFILE_VAR_START(blp_ppc_pp);
- PushPX(pti, m_xp[thread_num], m_yp[thread_num], m_zp[thread_num],
+ PushPX(pti, m_xp[thread_num], m_yp[thread_num], m_zp[thread_num],
m_giv[thread_num], dt);
BL_PROFILE_VAR_STOP(blp_ppc_pp);
@@ -1317,7 +1317,7 @@ PhysicalParticleContainer::Evolve (int lev,
} else {
ion_lev = nullptr;
}
-
+
// Deposit inside domains
DepositCurrent(pti, wp, uxp, uyp, uzp, ion_lev, &jx, &jy, &jz,
0, np_current, thread_num,
@@ -1337,7 +1337,7 @@ PhysicalParticleContainer::Evolve (int lev,
pti.SetPosition(m_xp[thread_num], m_yp[thread_num], m_zp[thread_num]);
BL_PROFILE_VAR_STOP(blp_copy);
}
-
+
if (rho) {
// Deposit charge after particle push, in component 1 of MultiFab rho.
int* AMREX_RESTRICT ion_lev;
@@ -1406,7 +1406,7 @@ PhysicalParticleContainer::SplitParticles(int lev)
for(int i=0; i<np; i++){
auto& p = particles[i];
if (p.id() == DoSplitParticleID){
- // If particle is tagged, split it and put the
+ // If particle is tagged, split it and put the
// split particles in local arrays psplit_x etc.
np_split_to_add += np_split;
#if (AMREX_SPACEDIM==2)
@@ -1503,11 +1503,11 @@ PhysicalParticleContainer::SplitParticles(int lev)
}
// Add local arrays psplit_x etc. to the temporary
// particle container pctmp_split. Split particles
- // are tagged with p.id()=NoSplitParticleID so that
+ // are tagged with p.id()=NoSplitParticleID so that
// they are not re-split when entering a higher level
// AddNParticles calls Redistribute, so that particles
// in pctmp_split are in the proper grids and tiles
- pctmp_split.AddNParticles(lev,
+ pctmp_split.AddNParticles(lev,
np_split_to_add,
psplit_x.dataPtr(),
psplit_y.dataPtr(),
@@ -1559,12 +1559,12 @@ PhysicalParticleContainer::PushPX(WarpXParIter& pti,
if (do_field_ionization){
ion_lev = pti.GetiAttribs(particle_icomps["ionization_level"]).dataPtr();
}
-
+
// Loop over the particles and update their momentum
const Real q = this->charge;
const Real m = this-> mass;
if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Boris){
- amrex::ParallelFor(
+ amrex::ParallelFor(
pti.numParticles(),
[=] AMREX_GPU_DEVICE (long i) {
Real qp = q;
@@ -1613,7 +1613,7 @@ PhysicalParticleContainer::PushP (int lev, Real dt,
int thread_num = omp_get_thread_num();
#else
int thread_num = 0;
-#endif
+#endif
for (WarpXParIter pti(*this, lev); pti.isValid(); ++pti)
{
const Box& box = pti.validbox();
@@ -1653,7 +1653,7 @@ PhysicalParticleContainer::PushP (int lev, Real dt,
int e_is_nodal = Ex.is_nodal() and Ey.is_nodal() and Ez.is_nodal();
FieldGather(pti, Exp, Eyp, Ezp, Bxp, Byp, Bzp,
- &exfab, &eyfab, &ezfab, &bxfab, &byfab, &bzfab,
+ &exfab, &eyfab, &ezfab, &bxfab, &byfab, &bzfab,
Ex.nGrow(), e_is_nodal,
0, np, thread_num, lev, lev);
@@ -1701,7 +1701,7 @@ void PhysicalParticleContainer::copy_attribs(WarpXParIter& pti,const Real* xp,
Real* AMREX_RESTRICT uxp = attribs[PIdx::ux].dataPtr();
Real* AMREX_RESTRICT uyp = attribs[PIdx::uy].dataPtr();
Real* AMREX_RESTRICT uzp = attribs[PIdx::uz].dataPtr();
-
+
const auto np = pti.numParticles();
const auto lev = pti.GetLevel();
const auto index = pti.GetPairIndex();
@@ -1717,7 +1717,7 @@ void PhysicalParticleContainer::copy_attribs(WarpXParIter& pti,const Real* xp,
xpold[i]=xp[i];
ypold[i]=yp[i];
zpold[i]=zp[i];
-
+
uxpold[i]=uxp[i];
uypold[i]=uyp[i];
uzpold[i]=uzp[i];
@@ -1757,7 +1757,7 @@ void PhysicalParticleContainer::GetParticleSlice(const int direction, const Real
slice_box.setHi(direction, z_max);
diagnostic_particles.resize(finestLevel()+1);
-
+
for (int lev = 0; lev < nlevs; ++lev) {
const Real* dx = Geom(lev).CellSize();
@@ -1804,7 +1804,7 @@ void PhysicalParticleContainer::GetParticleSlice(const int direction, const Real
auto& uzp_old = tmp_particle_data[lev][index][TmpIdx::uzold];
const long np = pti.numParticles();
-
+
Real uzfrm = -WarpX::gamma_boost*WarpX::beta_boost*PhysConst::c;
Real inv_c2 = 1.0/PhysConst::c/PhysConst::c;
@@ -1839,7 +1839,7 @@ void PhysicalParticleContainer::GetParticleSlice(const int direction, const Real
Real uzp = uz_old_p *weight_old + uz_new_p *weight_new;
diagnostic_particles[lev][index].GetRealData(DiagIdx::w).push_back(wp[i]);
-
+
diagnostic_particles[lev][index].GetRealData(DiagIdx::x).push_back(xp);
diagnostic_particles[lev][index].GetRealData(DiagIdx::y).push_back(yp);
diagnostic_particles[lev][index].GetRealData(DiagIdx::z).push_back(zp);
@@ -1864,7 +1864,7 @@ PhysicalParticleContainer::ContinuousInjection(const RealBox& injection_box)
AddPlasma(lev, injection_box);
}
-/* \brief Gather fields from FArrayBox exfab, eyfab, ezfab, bxfab, byfab,
+/* \brief Gather fields from FArrayBox exfab, eyfab, ezfab, bxfab, byfab,
* bzfab into arrays of fields on particles Exp, Eyp, Ezp, Bxp, Byp, Bzp.
* \param Exp-Bzp: fields on particles.
* \param exfab-bzfab: FAB of electric and magnetic fields for particles in pti
@@ -1874,7 +1874,7 @@ PhysicalParticleContainer::ContinuousInjection(const RealBox& injection_box)
* \param np_to_gather: number of particles onto which fields are gathered
* \param thread_num: if using OpenMP, thread number
* \param lev: level on which particles are located
- * \param gather_lev: level from which particles gather fields (lev-1) for
+ * \param gather_lev: level from which particles gather fields (lev-1) for
particles in buffers.
*/
void
@@ -1901,14 +1901,14 @@ PhysicalParticleContainer::FieldGather (WarpXParIter& pti,
AMREX_ALWAYS_ASSERT_WITH_MESSAGE((gather_lev==(lev-1)) ||
(gather_lev==(lev )),
"Gather buffers only work for lev-1");
-
+
// If no particles, do not do anything
if (np_to_gather == 0) return;
// Get cell size on gather_lev
const std::array<Real,3>& dx = WarpX::CellSize(std::max(gather_lev,0));
// Set staggering shift depending on e_is_nodal
const Real stagger_shift = e_is_nodal ? 0.0 : 0.5;
-
+
// Get box from which field is gathered.
// If not gathering from the finest level, the box is coarsened.
Box box;
@@ -1918,26 +1918,26 @@ PhysicalParticleContainer::FieldGather (WarpXParIter& pti,
const IntVect& ref_ratio = WarpX::RefRatio(gather_lev);
box = amrex::coarsen(pti.tilebox(),ref_ratio);
}
-
+
// Add guard cells to the box.
box.grow(ngE);
-
+
const Array4<const Real>& ex_arr = exfab->array();
const Array4<const Real>& ey_arr = eyfab->array();
const Array4<const Real>& ez_arr = ezfab->array();
const Array4<const Real>& bx_arr = bxfab->array();
const Array4<const Real>& by_arr = byfab->array();
const Array4<const Real>& bz_arr = bzfab->array();
-
+
const Real * const AMREX_RESTRICT xp = m_xp[thread_num].dataPtr() + offset;
const Real * const AMREX_RESTRICT zp = m_zp[thread_num].dataPtr() + offset;
const Real * const AMREX_RESTRICT yp = m_yp[thread_num].dataPtr() + offset;
-
+
// Lower corner of tile box physical domain
const std::array<Real, 3>& xyzmin = WarpX::LowerCorner(box, gather_lev);
-
+
const Dim3 lo = lbound(box);
-
+
// Depending on l_lower_in_v and WarpX::nox, call
// different versions of template function doGatherShapeN
if (WarpX::l_lower_order_in_v){
@@ -2020,10 +2020,10 @@ void PhysicalParticleContainer::InitIonizationModule ()
}
// Compute ADK prefactors (See Chen, JCP 236 (2013), equation (2))
// For now, we assume l=0 and m=0.
- // The approximate expressions are used,
+ // The approximate expressions are used,
// without Gamma function
Real wa = std::pow(PhysConst::alpha,3) * PhysConst::c / PhysConst::r_e;
- Real Ea = PhysConst::m_e * PhysConst::c*PhysConst::c /PhysConst::q_e *
+ Real Ea = PhysConst::m_e * PhysConst::c*PhysConst::c /PhysConst::q_e *
std::pow(PhysConst::alpha,4)/PhysConst::r_e;
Real UH = table_ionization_energies[0];
Real l_eff = std::sqrt(UH/ionization_energies[0]) - 1.;
@@ -2038,18 +2038,18 @@ void PhysicalParticleContainer::InitIonizationModule ()
Real C2 = std::pow(2,2*n_eff)/(n_eff*tgamma(n_eff+l_eff+1)*tgamma(n_eff-l_eff));
adk_power[i] = -(2*n_eff - 1);
Real Uion = ionization_energies[i];
- adk_prefactor[i] = dt * wa * C2 * ( Uion/(2*UH) )
+ adk_prefactor[i] = dt * wa * C2 * ( Uion/(2*UH) )
* std::pow(2*std::pow((Uion/UH),3./2)*Ea,2*n_eff - 1);
adk_exp_prefactor[i] = -2./3 * std::pow( Uion/UH,3./2) * Ea;
}
}
/* \brief create mask of ionized particles (1 if ionized, 0 otherwise)
- *
+ *
* \param mfi: tile or grid
* \param lev: MR level
* \param ionization_mask: Array with as many elements as particles in mfi.
- * This function initialized the array, and set each element to 1 or 0
+ * This function initialized the array, and set each element to 1 or 0
* depending on whether the particle is ionized or not.
*/
void
@@ -2095,7 +2095,7 @@ PhysicalParticleContainer::buildIonizationMask (const amrex::MFIter& mfi, const
// Loop over all particles in grid/tile. If ionized, set mask to 1
// and increment ionization level.
- ParallelFor(
+ ParallelFor(
np,
[=] AMREX_GPU_DEVICE (long i) {
// Get index of ionization_level
diff --git a/Source/Particles/RigidInjectedParticleContainer.H b/Source/Particles/RigidInjectedParticleContainer.H
index b920ece0a..a635e9aa0 100644
--- a/Source/Particles/RigidInjectedParticleContainer.H
+++ b/Source/Particles/RigidInjectedParticleContainer.H
@@ -60,7 +60,7 @@ public:
virtual void ReadHeader (std::istream& is) override;
virtual void WriteHeader (std::ostream& os) const override;
-
+
private:
// User input quantities
diff --git a/Source/Particles/ShapeFactors.H b/Source/Particles/ShapeFactors.H
index 9d185714a..be79a4871 100644
--- a/Source/Particles/ShapeFactors.H
+++ b/Source/Particles/ShapeFactors.H
@@ -1,7 +1,7 @@
#ifndef SHAPEFACTORS_H_
#define SHAPEFACTORS_H_
-// Compute shape factor and return index of leftmost cell where
+// Compute shape factor and return index of leftmost cell where
// particle writes.
// Specialized templates are defined below for orders 0 to 3.
template <int depos_order>
diff --git a/Source/Particles/WarpXParticleContainer.H b/Source/Particles/WarpXParticleContainer.H
index f7e46b2d3..06540871b 100644
--- a/Source/Particles/WarpXParticleContainer.H
+++ b/Source/Particles/WarpXParticleContainer.H
@@ -73,19 +73,19 @@ public:
const amrex::Cuda::ManagedDeviceVector<amrex::Real>& y,
const amrex::Cuda::ManagedDeviceVector<amrex::Real>& z);
#endif
- const std::array<RealVector, PIdx::nattribs>& GetAttribs () const {
- return GetStructOfArrays().GetRealData();
+ const std::array<RealVector, PIdx::nattribs>& GetAttribs () const {
+ return GetStructOfArrays().GetRealData();
}
-
- std::array<RealVector, PIdx::nattribs>& GetAttribs () {
- return GetStructOfArrays().GetRealData();
+
+ std::array<RealVector, PIdx::nattribs>& GetAttribs () {
+ return GetStructOfArrays().GetRealData();
}
- const RealVector& GetAttribs (int comp) const {
+ const RealVector& GetAttribs (int comp) const {
return GetStructOfArrays().GetRealData(comp);
}
-
- RealVector& GetAttribs (int comp) {
+
+ RealVector& GetAttribs (int comp) {
return GetStructOfArrays().GetRealData(comp);
}
@@ -102,15 +102,15 @@ class WarpXParticleContainer
public:
friend MultiParticleContainer;
- // amrex::StructOfArrays with DiagIdx::nattribs amrex::Real components
+ // amrex::StructOfArrays with DiagIdx::nattribs amrex::Real components
// and 0 int components for the particle data.
using DiagnosticParticleData = amrex::StructOfArrays<DiagIdx::nattribs, 0>;
// DiagnosticParticles is a vector, with one element per MR level.
- // DiagnosticParticles[lev] is typically a key-value pair where the key is
- // a pair [grid_index, tile_index], and the value is the corresponding
+ // DiagnosticParticles[lev] is typically a key-value pair where the key is
+ // a pair [grid_index, tile_index], and the value is the corresponding
// DiagnosticParticleData (see above) on this tile.
using DiagnosticParticles = amrex::Vector<std::map<std::pair<int, int>, DiagnosticParticleData> >;
-
+
WarpXParticleContainer (amrex::AmrCore* amr_core, int ispecies);
virtual ~WarpXParticleContainer() {}
@@ -124,12 +124,12 @@ public:
const amrex::MultiFab& Ez, const amrex::MultiFab& Bx,
const amrex::MultiFab& By, const amrex::MultiFab& Bz) {}
-#ifdef WARPX_DO_ELECTROSTATIC
+#ifdef WARPX_DO_ELECTROSTATIC
virtual void EvolveES (const amrex::Vector<std::array<std::unique_ptr<amrex::MultiFab>, 3> >& E,
- amrex::Vector<std::unique_ptr<amrex::MultiFab> >& rho,
+ amrex::Vector<std::unique_ptr<amrex::MultiFab> >& rho,
amrex::Real t, amrex::Real dt) = 0;
#endif // WARPX_DO_ELECTROSTATIC
-
+
virtual void Evolve (int lev,
const amrex::MultiFab& Ex, const amrex::MultiFab& Ey, const amrex::MultiFab& Ez,
const amrex::MultiFab& Bx, const amrex::MultiFab& By, const amrex::MultiFab& Bz,
@@ -143,10 +143,10 @@ public:
virtual void PostRestart () = 0;
virtual void GetParticleSlice(const int direction, const amrex::Real z_old,
- const amrex::Real z_new, const amrex::Real t_boost,
+ const amrex::Real z_new, const amrex::Real t_boost,
const amrex::Real t_lab, const amrex::Real dt,
DiagnosticParticles& diagnostic_particles) {}
-
+
void AllocData ();
///
@@ -154,7 +154,7 @@ public:
/// It is used to desynchronize the particles after initializaton
/// or when restarting from a checkpoint.
/// This is the electrostatic version of the particle push.
- ///
+ ///
void PushXES (amrex::Real dt);
///
@@ -162,13 +162,13 @@ public:
/// It is used to desynchronize the particles after initializaton
/// or when restarting from a checkpoint.
/// This is the electromagnetic version of the particle push.
- ///
+ ///
void PushX ( amrex::Real dt);
void PushX (int lev, amrex::Real dt);
///
/// This pushes the particle momenta by dt.
- ///
+ ///
virtual void PushP (int lev, amrex::Real dt,
const amrex::MultiFab& Ex,
const amrex::MultiFab& Ey,
@@ -208,9 +208,9 @@ public:
int depos_lev,
amrex::Real dt);
- // If particles start outside of the domain, ContinuousInjection
- // makes sure that they are initialized when they enter the domain, and
- // NOT before. Virtual function, overriden by derived classes.
+ // If particles start outside of the domain, ContinuousInjection
+ // makes sure that they are initialized when they enter the domain, and
+ // NOT before. Virtual function, overriden by derived classes.
// Current status:
// PhysicalParticleContainer: implemented.
// LaserParticleContainer: implemented.
@@ -219,7 +219,7 @@ public:
// Update optional sub-class-specific injection location.
virtual void UpdateContinuousInjectionPosition(amrex::Real dt) {}
- ///
+ ///
/// This returns the total charge for all the particles in this ParticleContainer.
/// This is needed when solving Poisson's equation with periodic boundary conditions.
///
@@ -259,9 +259,9 @@ public:
// split along axes (0) or diagonals (1)
int split_type = 0;
- using amrex::ParticleContainer<0, 0, PIdx::nattribs>::AddRealComp;
+ using amrex::ParticleContainer<0, 0, PIdx::nattribs>::AddRealComp;
using amrex::ParticleContainer<0, 0, PIdx::nattribs>::AddIntComp;
-
+
void AddRealComp (const std::string& name, bool comm=true)
{
particle_comps[name] = NumRealComps();
@@ -274,7 +274,7 @@ public:
AddIntComp(comm);
}
- int DoBoostedFrameDiags () const { return do_boosted_frame_diags; }
+ int DoBoostedFrameDiags () const { return do_boosted_frame_diags; }
virtual void buildIonizationMask (const amrex::MFIter& mfi, const int lev,
amrex::Gpu::ManagedDeviceVector<int>& ionization_mask)
@@ -286,7 +286,7 @@ protected:
std::map<std::string, int> particle_comps;
std::map<std::string, int> particle_icomps;
-
+
int species_id;
amrex::Real charge;
@@ -300,9 +300,9 @@ protected:
static int do_not_push;
- // Whether to allow particles outside of the simulation domain to be
+ // Whether to allow particles outside of the simulation domain to be
// initialized when they enter the domain.
- // This is currently required because continuous injection does not
+ // This is currently required because continuous injection does not
// support all features allowed by direct injection.
int do_continuous_injection = 0;
@@ -316,7 +316,7 @@ protected:
amrex::Gpu::ManagedVector<amrex::Real> adk_prefactor;
amrex::Gpu::ManagedVector<amrex::Real> adk_exp_prefactor;
std::string physical_element;
-
+
int do_boosted_frame_diags = 1;
amrex::Vector<amrex::FArrayBox> local_rho;
@@ -326,20 +326,20 @@ protected:
using DataContainer = amrex::Gpu::ManagedDeviceVector<amrex::Real>;
using PairIndex = std::pair<int, int>;
-
+
amrex::Vector<DataContainer> m_xp, m_yp, m_zp, m_giv;
- // Whether to dump particle quantities.
+ // Whether to dump particle quantities.
// If true, particle position is always dumped.
int plot_species = 1;
- // For all particle attribs (execept position), whether or not
+ // For all particle attribs (execept position), whether or not
// to dump to file.
amrex::Vector<int> plot_flags;
// list of names of attributes to dump.
amrex::Vector<std::string> plot_vars;
-
+
amrex::Vector<std::map<PairIndex, std::array<DataContainer, TmpIdx::nattribs> > > tmp_particle_data;
-
+
private:
virtual void particlePostLocate(ParticleType& p, const amrex::ParticleLocData& pld,
const int lev) override;
diff --git a/Source/Particles/WarpXParticleContainer.cpp b/Source/Particles/WarpXParticleContainer.cpp
index 4e80374d8..83de9fb0e 100644
--- a/Source/Particles/WarpXParticleContainer.cpp
+++ b/Source/Particles/WarpXParticleContainer.cpp
@@ -228,7 +228,7 @@ WarpXParticleContainer::AddNParticles (int lev,
#endif
if ( (NumRuntimeRealComps()>0) || (NumRuntimeIntComps()>0) ){
- auto& ptile = DefineAndReturnParticleTile(0, 0, 0);
+ auto& ptile = DefineAndReturnParticleTile(0, 0, 0);
}
particle_tile.push_back(p);
@@ -242,7 +242,7 @@ WarpXParticleContainer::AddNParticles (int lev,
particle_tile.push_back_real(PIdx::uz, vz + ibegin, vz + iend);
if ( (NumRuntimeRealComps()>0) || (NumRuntimeIntComps()>0) ){
- auto& ptile = DefineAndReturnParticleTile(0, 0, 0);
+ auto& ptile = DefineAndReturnParticleTile(0, 0, 0);
}
for (int comp = PIdx::uz+1; comp < PIdx::nattribs; ++comp)
@@ -289,7 +289,7 @@ WarpXParticleContainer::DepositCurrent(WarpXParIter& pti,
const long offset, const long np_to_depose,
int thread_num, int lev, int depos_lev,
Real dt)
-{
+{
AMREX_ALWAYS_ASSERT_WITH_MESSAGE((depos_lev==(lev-1)) ||
(depos_lev==(lev )),
"Deposition buffers only work for lev-1");
@@ -316,7 +316,7 @@ WarpXParticleContainer::DepositCurrent(WarpXParIter& pti,
const IntVect& ref_ratio = WarpX::RefRatio(depos_lev);
tilebox = amrex::coarsen(pti.tilebox(),ref_ratio);
}
-
+
// Staggered tile boxes (different in each direction)
Box tbx = convert(tilebox, WarpX::jx_nodal_flag);
Box tby = convert(tilebox, WarpX::jy_nodal_flag);
@@ -360,11 +360,11 @@ WarpXParticleContainer::DepositCurrent(WarpXParIter& pti,
// Lower corner of tile box physical domain
// Note that this includes guard cells since it is after tilebox.ngrow
const std::array<Real, 3>& xyzmin = WarpX::LowerCorner(tilebox, depos_lev);
- // xyzmin is built on pti.tilebox(), so it does
+ // xyzmin is built on pti.tilebox(), so it does
// not include staggering, so the stagger_shift has to be done by hand.
- // Alternatively, we could define xyzminx from tbx (and the same for 3
+ // Alternatively, we could define xyzminx from tbx (and the same for 3
// directions and for jx, jy, jz). This way, sx0 would not be needed.
- // Better for memory? worth trying?
+ // Better for memory? worth trying?
const Dim3 lo = lbound(tilebox);
BL_PROFILE_VAR_START(blp_deposit);
@@ -431,7 +431,7 @@ WarpXParticleContainer::DepositCurrent(WarpXParIter& pti,
ion_lev is a null pointer.
* \param rho : Full array of charge density
* \param icomp : Component of rho into which charge is deposited.
- 0: old value (before particle push).
+ 0: old value (before particle push).
1: new value (after particle push).
* \param offset : Index of first particle for which charge is deposited
* \param np_to_depose: Number of particles for which charge is deposited.
@@ -471,7 +471,7 @@ WarpXParticleContainer::DepositCharge (WarpXParIter& pti, RealVector& wp,
const IntVect& ref_ratio = WarpX::RefRatio(depos_lev);
tilebox = amrex::coarsen(pti.tilebox(),ref_ratio);
}
-
+
tilebox.grow(ngRho);
const int nc = (rho->nComp() == 1 ? 1 : rho->nComp()/2);
diff --git a/Source/Particles/deposit_cic.F90 b/Source/Particles/deposit_cic.F90
index e4e1ace03..1fe80016f 100644
--- a/Source/Particles/deposit_cic.F90
+++ b/Source/Particles/deposit_cic.F90
@@ -7,11 +7,11 @@ module warpx_ES_deposit_cic
contains
-! This routine computes the charge density due to the particles using cloud-in-cell
+! This routine computes the charge density due to the particles using cloud-in-cell
! deposition. The Fab rho is assumed to be node-centered.
!
! Arguments:
-! particles : a pointer to the particle array-of-structs
+! particles : a pointer to the particle array-of-structs
! ns : the stride length of particle struct (the size of the struct in number of reals)
! np : the number of particles
! weights : the particle weights
diff --git a/Source/Particles/interpolate_cic.F90 b/Source/Particles/interpolate_cic.F90
index bc2c4f37e..005ab35f4 100644
--- a/Source/Particles/interpolate_cic.F90
+++ b/Source/Particles/interpolate_cic.F90
@@ -12,7 +12,7 @@ contains
! node-centered.
!
! Arguments:
-! particles : a pointer to the particle array-of-structs
+! particles : a pointer to the particle array-of-structs
! ns : the stride length of particle struct (the size of the struct in number of reals)
! np : the number of particles
! Ex_p : the electric field in the x-direction at the particle positions (output)
@@ -91,7 +91,7 @@ contains
wx_hi*wy_lo*wz_hi*Ez(i+1, j, k+1) + &
wx_hi*wy_hi*wz_lo*Ez(i+1, j+1, k ) + &
wx_hi*wy_hi*wz_hi*Ez(i+1, j+1, k+1)
-
+
end do
end subroutine warpx_interpolate_cic_3d
@@ -184,7 +184,7 @@ contains
lx = (particles(1, n) - plo(1))*inv_dx(1)
ly = (particles(2, n) - plo(2))*inv_dx(2)
lz = (particles(3, n) - plo(3))*inv_dx(3)
-
+
i = floor(lx)
j = floor(ly)
k = floor(lz)
@@ -203,11 +203,11 @@ contains
wx_hi = lx - i
wy_hi = ly - j
wz_hi = lz - k
-
+
wx_lo = 1.0d0 - wx_hi
wy_lo = 1.0d0 - wy_hi
wz_lo = 1.0d0 - wz_hi
-
+
Ex_p(n) = wx_lo*wy_lo*wz_lo*cEx(i, j, k ) + &
wx_lo*wy_lo*wz_hi*cEx(i, j, k+1) + &
wx_lo*wy_hi*wz_lo*cEx(i, j+1, k ) + &
@@ -225,7 +225,7 @@ contains
wx_hi*wy_lo*wz_hi*cEy(i+1, j, k+1) + &
wx_hi*wy_hi*wz_lo*cEy(i+1, j+1, k ) + &
wx_hi*wy_hi*wz_hi*cEy(i+1, j+1, k+1)
-
+
Ez_p(n) = wx_lo*wy_lo*wz_lo*cEz(i, j, k ) + &
wx_lo*wy_lo*wz_hi*cEz(i, j, k+1) + &
wx_lo*wy_hi*wz_lo*cEz(i, j+1, k ) + &
@@ -234,14 +234,14 @@ contains
wx_hi*wy_lo*wz_hi*cEz(i+1, j, k+1) + &
wx_hi*wy_hi*wz_lo*cEz(i+1, j+1, k ) + &
wx_hi*wy_hi*wz_hi*cEz(i+1, j+1, k+1)
-
+
! otherwise use the fine
else
wx_hi = lx - i
wy_hi = ly - j
wz_hi = lz - k
-
+
wx_lo = 1.0d0 - wx_hi
wy_lo = 1.0d0 - wy_hi
wz_lo = 1.0d0 - wz_hi
@@ -254,7 +254,7 @@ contains
wx_hi*wy_lo*wz_hi*Ex(i+1, j, k+1) + &
wx_hi*wy_hi*wz_lo*Ex(i+1, j+1, k ) + &
wx_hi*wy_hi*wz_hi*Ex(i+1, j+1, k+1)
-
+
Ey_p(n) = wx_lo*wy_lo*wz_lo*Ey(i, j, k ) + &
wx_lo*wy_lo*wz_hi*Ey(i, j, k+1) + &
wx_lo*wy_hi*wz_lo*Ey(i, j+1, k ) + &
@@ -263,7 +263,7 @@ contains
wx_hi*wy_lo*wz_hi*Ey(i+1, j, k+1) + &
wx_hi*wy_hi*wz_lo*Ey(i+1, j+1, k ) + &
wx_hi*wy_hi*wz_hi*Ey(i+1, j+1, k+1)
-
+
Ez_p(n) = wx_lo*wy_lo*wz_lo*Ez(i, j, k ) + &
wx_lo*wy_lo*wz_hi*Ez(i, j, k+1) + &
wx_lo*wy_hi*wz_lo*Ez(i, j+1, k ) + &
@@ -272,7 +272,7 @@ contains
wx_hi*wy_lo*wz_hi*Ez(i+1, j, k+1) + &
wx_hi*wy_hi*wz_lo*Ez(i+1, j+1, k ) + &
wx_hi*wy_hi*wz_hi*Ez(i+1, j+1, k+1)
-
+
end if
end do
@@ -314,7 +314,7 @@ contains
lx = (particles(1, n) - plo(1))*inv_dx(1)
ly = (particles(2, n) - plo(2))*inv_dx(2)
-
+
i = floor(lx)
j = floor(ly)
@@ -329,10 +329,10 @@ contains
wx_hi = lx - i
wy_hi = ly - j
-
+
wx_lo = 1.0d0 - wx_hi
wy_lo = 1.0d0 - wy_hi
-
+
Ex_p(n) = wx_lo*wy_lo*cEx(i, j ) + &
wx_lo*wy_hi*cEx(i, j+1) + &
wx_hi*wy_lo*cEx(i+1, j ) + &
@@ -342,13 +342,13 @@ contains
wx_lo*wy_hi*cEy(i, j+1) + &
wx_hi*wy_lo*cEy(i+1, j ) + &
wx_hi*wy_hi*cEy(i+1, j+1)
-
+
! otherwise use the fine
else
wx_hi = lx - i
wy_hi = ly - j
-
+
wx_lo = 1.0d0 - wx_hi
wy_lo = 1.0d0 - wy_hi
@@ -356,7 +356,7 @@ contains
wx_lo*wy_hi*Ex(i, j+1) + &
wx_hi*wy_lo*Ex(i+1, j ) + &
wx_hi*wy_hi*Ex(i+1, j+1)
-
+
Ey_p(n) = wx_lo*wy_lo*Ey(i, j ) + &
wx_lo*wy_hi*Ey(i, j+1) + &
wx_hi*wy_lo*Ey(i+1, j ) + &
diff --git a/Source/Particles/push_particles_ES.F90 b/Source/Particles/push_particles_ES.F90
index 9c7bd9e92..53dd3c181 100644
--- a/Source/Particles/push_particles_ES.F90
+++ b/Source/Particles/push_particles_ES.F90
@@ -8,13 +8,13 @@ module warpx_ES_push_particles
contains
!
-! This routine updates the particle positions and velocities using the
+! This routine updates the particle positions and velocities using the
! leapfrog time integration algorithm, given the electric fields at the
! particle positions. It also enforces specular reflection off the domain
! walls.
!
! Arguments:
-! particles : a pointer to the particle array-of-structs
+! particles : a pointer to the particle array-of-structs
! ns : the stride length of particle struct (the size of the struct in number of reals)
! np : the number of particles
! vx_p : the particle x-velocities
@@ -30,7 +30,7 @@ contains
! prob_hi : the right-hand corner of the problem domain
!
subroutine warpx_push_leapfrog_3d(particles, ns, np, &
- vx_p, vy_p, vz_p, &
+ vx_p, vy_p, vz_p, &
Ex_p, Ey_p, Ez_p, &
charge, mass, dt, &
prob_lo, prob_hi) &
@@ -43,7 +43,7 @@ contains
real(amrex_real), intent(in) :: mass
real(amrex_real), intent(in) :: dt
real(amrex_real), intent(in) :: prob_lo(3), prob_hi(3)
-
+
integer n
real(amrex_real) fac
@@ -69,7 +69,7 @@ contains
vx_p(n) = -vx_p(n)
end do
-! ... y...
+! ... y...
do while (particles(2, n) .lt. prob_lo(2) .or. particles(2, n) .gt. prob_hi(2))
if (particles(2, n) .lt. prob_lo(2)) then
particles(2, n) = 2.d0*prob_lo(2) - particles(2, n)
@@ -107,7 +107,7 @@ contains
real(amrex_real), intent(in) :: mass
real(amrex_real), intent(in) :: dt
real(amrex_real), intent(in) :: prob_lo(2), prob_hi(2)
-
+
integer n
real(amrex_real) fac
@@ -131,7 +131,7 @@ contains
vx_p(n) = -vx_p(n)
end do
-! ... y...
+! ... y...
do while (particles(2, n) .lt. prob_lo(2) .or. particles(2, n) .gt. prob_hi(2))
if (particles(2, n) .lt. prob_lo(2)) then
particles(2, n) = 2.d0*prob_lo(2) - particles(2, n)
@@ -152,7 +152,7 @@ contains
! from the velocities after particle initialization.
!
! Arguments:
-! particles : a pointer to the particle array-of-structs
+! particles : a pointer to the particle array-of-structs
! ns : the stride length of particle struct (the size of the struct in number of reals)
! np : the number of particles
! xx_p : the electric field in the x-direction at the particle positions
@@ -190,7 +190,7 @@ contains
vx_p(n) = -vx_p(n)
end do
-! ... y...
+! ... y...
do while (particles(2, n) .lt. prob_lo(2) .or. particles(2, n) .gt. prob_hi(2))
if (particles(2, n) .lt. prob_lo(2)) then
particles(2, n) = 2.d0*prob_lo(2) - particles(2, n)
@@ -209,7 +209,7 @@ contains
end if
vz_p(n) = -vz_p(n)
end do
-
+
end do
end subroutine warpx_push_leapfrog_positions_3d
@@ -241,7 +241,7 @@ contains
vx_p(n) = -vx_p(n)
end do
-! ... y...
+! ... y...
do while (particles(2, n) .lt. prob_lo(2) .or. particles(2, n) .gt. prob_hi(2))
if (particles(2, n) .lt. prob_lo(2)) then
particles(2, n) = 2.d0*prob_lo(2) - particles(2, n)