aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/Laser/LaserParticleContainer.cpp4
-rw-r--r--Source/Particles/PhotonParticleContainer.H1
-rw-r--r--Source/Particles/PhotonParticleContainer.cpp2
-rw-r--r--Source/Particles/PhysicalParticleContainer.H1
-rw-r--r--Source/Particles/PhysicalParticleContainer.cpp18
-rw-r--r--Source/Particles/Pusher/UpdateMomentumBoris.H3
-rw-r--r--Source/Particles/Pusher/UpdateMomentumVay.H3
-rw-r--r--Source/Particles/RigidInjectedParticleContainer.H1
-rw-r--r--Source/Particles/RigidInjectedParticleContainer.cpp15
-rw-r--r--Source/Particles/WarpXParticleContainer.H2
-rw-r--r--Source/Particles/WarpXParticleContainer.cpp1
11 files changed, 13 insertions, 38 deletions
diff --git a/Source/Laser/LaserParticleContainer.cpp b/Source/Laser/LaserParticleContainer.cpp
index 15e82e940..2adf751e1 100644
--- a/Source/Laser/LaserParticleContainer.cpp
+++ b/Source/Laser/LaserParticleContainer.cpp
@@ -444,8 +444,6 @@ LaserParticleContainer::Evolve (int lev,
// For now, laser particles do not take the current buffers into account
const long np_current = np;
- m_giv[thread_num].resize(np);
-
plane_Xp.resize(np);
plane_Yp.resize(np);
amplitude_E.resize(np);
@@ -670,7 +668,6 @@ LaserParticleContainer::update_laser_particle(
Real * const AMREX_RESTRICT xp = m_xp[thread_num].dataPtr();
Real * const AMREX_RESTRICT yp = m_yp[thread_num].dataPtr();
Real * const AMREX_RESTRICT zp = m_zp[thread_num].dataPtr();
- Real * const AMREX_RESTRICT giv = m_giv[thread_num].dataPtr();
Real tmp_p_X_0 = p_X[0];
Real tmp_p_X_1 = p_X[1];
Real tmp_p_X_2 = p_X[2];
@@ -700,7 +697,6 @@ LaserParticleContainer::update_laser_particle(
}
// Get the corresponding momenta
const Real gamma = gamma_boost/std::sqrt(1. - v_over_c*v_over_c);
- giv[i] = 1./gamma;
puxp[i] = gamma * vx;
puyp[i] = gamma * vy;
puzp[i] = gamma * vz;
diff --git a/Source/Particles/PhotonParticleContainer.H b/Source/Particles/PhotonParticleContainer.H
index 4f9fbc047..94c8f03ef 100644
--- a/Source/Particles/PhotonParticleContainer.H
+++ b/Source/Particles/PhotonParticleContainer.H
@@ -43,7 +43,6 @@ public:
amrex::Cuda::ManagedDeviceVector<amrex::Real>& xp,
amrex::Cuda::ManagedDeviceVector<amrex::Real>& yp,
amrex::Cuda::ManagedDeviceVector<amrex::Real>& zp,
- amrex::Cuda::ManagedDeviceVector<amrex::Real>& giv,
amrex::Real dt) override;
diff --git a/Source/Particles/PhotonParticleContainer.cpp b/Source/Particles/PhotonParticleContainer.cpp
index c0a159f1b..55dc839eb 100644
--- a/Source/Particles/PhotonParticleContainer.cpp
+++ b/Source/Particles/PhotonParticleContainer.cpp
@@ -37,7 +37,6 @@ PhotonParticleContainer::PushPX(WarpXParIter& pti,
Cuda::ManagedDeviceVector<Real>& xp,
Cuda::ManagedDeviceVector<Real>& yp,
Cuda::ManagedDeviceVector<Real>& zp,
- Cuda::ManagedDeviceVector<Real>& giv,
Real dt)
{
@@ -47,7 +46,6 @@ PhotonParticleContainer::PushPX(WarpXParIter& pti,
Real* const AMREX_RESTRICT x = xp.dataPtr();
Real* const AMREX_RESTRICT y = yp.dataPtr();
Real* const AMREX_RESTRICT z = zp.dataPtr();
- Real* const AMREX_RESTRICT gi = giv.dataPtr();
Real* const AMREX_RESTRICT ux = attribs[PIdx::ux].dataPtr();
Real* const AMREX_RESTRICT uy = attribs[PIdx::uy].dataPtr();
Real* const AMREX_RESTRICT uz = attribs[PIdx::uz].dataPtr();
diff --git a/Source/Particles/PhysicalParticleContainer.H b/Source/Particles/PhysicalParticleContainer.H
index 529bffab1..db25e9c85 100644
--- a/Source/Particles/PhysicalParticleContainer.H
+++ b/Source/Particles/PhysicalParticleContainer.H
@@ -89,7 +89,6 @@ public:
amrex::Cuda::ManagedDeviceVector<amrex::Real>& xp,
amrex::Cuda::ManagedDeviceVector<amrex::Real>& yp,
amrex::Cuda::ManagedDeviceVector<amrex::Real>& zp,
- amrex::Cuda::ManagedDeviceVector<amrex::Real>& giv,
amrex::Real dt);
virtual void PushP (int lev, amrex::Real dt,
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp
index 0b82df7b5..4bc0ee16e 100644
--- a/Source/Particles/PhysicalParticleContainer.cpp
+++ b/Source/Particles/PhysicalParticleContainer.cpp
@@ -1085,8 +1085,6 @@ PhysicalParticleContainer::Evolve (int lev,
Byp.assign(np,WarpX::B_external[1]);
Bzp.assign(np,WarpX::B_external[2]);
- m_giv[thread_num].resize(np);
-
long nfine_current = np; //! number of particles depositing to fine grid
long nfine_gather = np; //! number of particles gathering from fine grid
if (has_buffer && !do_not_push)
@@ -1303,8 +1301,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],
- m_giv[thread_num], dt);
+ PushPX(pti, m_xp[thread_num], m_yp[thread_num], m_zp[thread_num], dt);
BL_PROFILE_VAR_STOP(blp_ppc_pp);
//
@@ -1529,7 +1526,6 @@ PhysicalParticleContainer::PushPX(WarpXParIter& pti,
Cuda::ManagedDeviceVector<Real>& xp,
Cuda::ManagedDeviceVector<Real>& yp,
Cuda::ManagedDeviceVector<Real>& zp,
- Cuda::ManagedDeviceVector<Real>& giv,
Real dt)
{
@@ -1539,7 +1535,6 @@ PhysicalParticleContainer::PushPX(WarpXParIter& pti,
Real* const AMREX_RESTRICT x = xp.dataPtr();
Real* const AMREX_RESTRICT y = yp.dataPtr();
Real* const AMREX_RESTRICT z = zp.dataPtr();
- Real* const AMREX_RESTRICT gi = giv.dataPtr();
Real* const AMREX_RESTRICT ux = attribs[PIdx::ux].dataPtr();
Real* const AMREX_RESTRICT uy = attribs[PIdx::uy].dataPtr();
Real* const AMREX_RESTRICT uz = attribs[PIdx::uz].dataPtr();
@@ -1569,7 +1564,7 @@ PhysicalParticleContainer::PushPX(WarpXParIter& pti,
[=] AMREX_GPU_DEVICE (long i) {
Real qp = q;
if (ion_lev){ qp *= ion_lev[i]; }
- UpdateMomentumBoris( ux[i], uy[i], uz[i], gi[i],
+ UpdateMomentumBoris( ux[i], uy[i], uz[i],
Ex[i], Ey[i], Ez[i], Bx[i],
By[i], Bz[i], qp, m, dt);
UpdatePosition( x[i], y[i], z[i],
@@ -1582,7 +1577,7 @@ PhysicalParticleContainer::PushPX(WarpXParIter& pti,
[=] AMREX_GPU_DEVICE (long i) {
Real qp = q;
if (ion_lev){ qp *= ion_lev[i]; }
- UpdateMomentumVay( ux[i], uy[i], uz[i], gi[i],
+ UpdateMomentumVay( ux[i], uy[i], uz[i],
Ex[i], Ey[i], Ez[i], Bx[i],
By[i], Bz[i], qp, m, dt);
UpdatePosition( x[i], y[i], z[i],
@@ -1644,8 +1639,6 @@ PhysicalParticleContainer::PushP (int lev, Real dt,
Byp.assign(np,WarpX::B_external[1]);
Bzp.assign(np,WarpX::B_external[2]);
- m_giv[thread_num].resize(np);
-
//
// copy data from particle container to temp arrays
//
@@ -1659,7 +1652,6 @@ PhysicalParticleContainer::PushP (int lev, Real dt,
// This wraps the momentum advance so that inheritors can modify the call.
// Extract pointers to the different particle quantities
- Real* const AMREX_RESTRICT gi = m_giv[thread_num].dataPtr();
Real* const AMREX_RESTRICT ux = attribs[PIdx::ux].dataPtr();
Real* const AMREX_RESTRICT uy = attribs[PIdx::uy].dataPtr();
Real* const AMREX_RESTRICT uz = attribs[PIdx::uz].dataPtr();
@@ -1676,14 +1668,14 @@ PhysicalParticleContainer::PushP (int lev, Real dt,
if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Boris){
amrex::ParallelFor( pti.numParticles(),
[=] AMREX_GPU_DEVICE (long i) {
- UpdateMomentumBoris( ux[i], uy[i], uz[i], gi[i],
+ UpdateMomentumBoris( ux[i], uy[i], uz[i],
Expp[i], Eypp[i], Ezpp[i], Bxpp[i], Bypp[i], Bzpp[i], q, m, dt);
}
);
} else if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Vay) {
amrex::ParallelFor( pti.numParticles(),
[=] AMREX_GPU_DEVICE (long i) {
- UpdateMomentumVay( ux[i], uy[i], uz[i], gi[i],
+ UpdateMomentumVay( ux[i], uy[i], uz[i],
Expp[i], Eypp[i], Ezpp[i], Bxpp[i], Bypp[i], Bzpp[i], q, m, dt);
}
);
diff --git a/Source/Particles/Pusher/UpdateMomentumBoris.H b/Source/Particles/Pusher/UpdateMomentumBoris.H
index 71e9a8ed1..a33058347 100644
--- a/Source/Particles/Pusher/UpdateMomentumBoris.H
+++ b/Source/Particles/Pusher/UpdateMomentumBoris.H
@@ -7,7 +7,7 @@
* given the value of its momenta `ux`, `uy`, `uz` */
AMREX_GPU_HOST_DEVICE AMREX_INLINE
void UpdateMomentumBoris(
- amrex::Real& ux, amrex::Real& uy, amrex::Real& uz, amrex::Real& gaminv,
+ amrex::Real& ux, amrex::Real& uy, amrex::Real& uz,
const amrex::Real Ex, const amrex::Real Ey, const amrex::Real Ez,
const amrex::Real Bx, const amrex::Real By, const amrex::Real Bz,
const amrex::Real q, const amrex::Real m, const amrex::Real dt )
@@ -41,7 +41,6 @@ void UpdateMomentumBoris(
ux += econst*Ex;
uy += econst*Ey;
uz += econst*Ez;
- gaminv = 1./std::sqrt(1. + (ux*ux + uy*uy + uz*uz)*inv_c2);
}
#endif // WARPX_PARTICLES_PUSHER_UPDATEMOMENTUM_BORIS_H_
diff --git a/Source/Particles/Pusher/UpdateMomentumVay.H b/Source/Particles/Pusher/UpdateMomentumVay.H
index 044297e22..1f0f19e63 100644
--- a/Source/Particles/Pusher/UpdateMomentumVay.H
+++ b/Source/Particles/Pusher/UpdateMomentumVay.H
@@ -9,7 +9,7 @@
* given the value of its momenta `ux`, `uy`, `uz` */
AMREX_GPU_HOST_DEVICE AMREX_INLINE
void UpdateMomentumVay(
- amrex::Real& ux, amrex::Real& uy, amrex::Real& uz, amrex::Real& gaminv,
+ amrex::Real& ux, amrex::Real& uy, amrex::Real& uz,
const amrex::Real Ex, const amrex::Real Ey, const amrex::Real Ez,
const amrex::Real Bx, const amrex::Real By, const amrex::Real Bz,
const amrex::Real q, const amrex::Real m, const amrex::Real dt )
@@ -48,7 +48,6 @@ void UpdateMomentumVay(
ux = s*(uxpr+tx*tu+uypr*tz-uzpr*ty);
uy = s*(uypr+ty*tu+uzpr*tx-uxpr*tz);
uz = s*(uzpr+tz*tu+uxpr*ty-uypr*tx);
- gaminv = 1./std::sqrt(1. + (ux*ux + uy*uy + uz*uz)*invclightsq);
}
#endif // WARPX_PARTICLES_PUSHER_UPDATEMOMENTUM_VAY_H_
diff --git a/Source/Particles/RigidInjectedParticleContainer.H b/Source/Particles/RigidInjectedParticleContainer.H
index a635e9aa0..c22979d0f 100644
--- a/Source/Particles/RigidInjectedParticleContainer.H
+++ b/Source/Particles/RigidInjectedParticleContainer.H
@@ -46,7 +46,6 @@ public:
amrex::Cuda::ManagedDeviceVector<amrex::Real>& xp,
amrex::Cuda::ManagedDeviceVector<amrex::Real>& yp,
amrex::Cuda::ManagedDeviceVector<amrex::Real>& zp,
- amrex::Cuda::ManagedDeviceVector<amrex::Real>& giv,
amrex::Real dt) override;
virtual void PushP (int lev, amrex::Real dt,
diff --git a/Source/Particles/RigidInjectedParticleContainer.cpp b/Source/Particles/RigidInjectedParticleContainer.cpp
index 4893b3294..cd5e34770 100644
--- a/Source/Particles/RigidInjectedParticleContainer.cpp
+++ b/Source/Particles/RigidInjectedParticleContainer.cpp
@@ -210,7 +210,6 @@ RigidInjectedParticleContainer::PushPX(WarpXParIter& pti,
Cuda::ManagedDeviceVector<Real>& xp,
Cuda::ManagedDeviceVector<Real>& yp,
Cuda::ManagedDeviceVector<Real>& zp,
- Cuda::ManagedDeviceVector<Real>& giv,
Real dt)
{
@@ -227,7 +226,6 @@ RigidInjectedParticleContainer::PushPX(WarpXParIter& pti,
Real* const AMREX_RESTRICT x = xp.dataPtr();
Real* const AMREX_RESTRICT y = yp.dataPtr();
Real* const AMREX_RESTRICT z = zp.dataPtr();
- Real* const AMREX_RESTRICT gi = giv.dataPtr();
Real* const AMREX_RESTRICT ux = uxp.dataPtr();
Real* const AMREX_RESTRICT uy = uyp.dataPtr();
Real* const AMREX_RESTRICT uz = uzp.dataPtr();
@@ -269,7 +267,7 @@ RigidInjectedParticleContainer::PushPX(WarpXParIter& pti,
);
}
- PhysicalParticleContainer::PushPX(pti, xp, yp, zp, giv, dt);
+ PhysicalParticleContainer::PushPX(pti, xp, yp, zp, dt);
if (!done_injecting_lev) {
@@ -292,14 +290,14 @@ RigidInjectedParticleContainer::PushPX(WarpXParIter& pti,
ux[i] = ux_save[i];
uy[i] = uy_save[i];
uz[i] = uz_save[i];
- gi[i] = 1./std::sqrt(1. + (ux[i]*ux[i] + uy[i]*uy[i] + uz[i]*uz[i])*inv_csq);
x[i] = x_save[i];
y[i] = y_save[i];
if (rigid) {
z[i] = z_save[i] + dt*vz_ave_boosted;
}
else {
- z[i] = z_save[i] + dt*uz[i]*gi[i];
+ const Real gi = 1./std::sqrt(1. + (ux[i]*ux[i] + uy[i]*uy[i] + uz[i]*uz[i])*inv_csq);
+ z[i] = z_save[i] + dt*uz[i]*gi;
}
}
}
@@ -399,8 +397,6 @@ RigidInjectedParticleContainer::PushP (int lev, Real dt,
Byp.assign(np,WarpX::B_external[1]);
Bzp.assign(np,WarpX::B_external[2]);
- m_giv[thread_num].resize(np);
-
//
// copy data from particle container to temp arrays
//
@@ -420,7 +416,6 @@ RigidInjectedParticleContainer::PushP (int lev, Real dt,
// This wraps the momentum advance so that inheritors can modify the call.
// Extract pointers to the different particle quantities
const Real* const AMREX_RESTRICT zp = m_zp[thread_num].dataPtr();
- Real* const AMREX_RESTRICT gi = m_giv[thread_num].dataPtr();
Real* const AMREX_RESTRICT uxpp = uxp.dataPtr();
Real* const AMREX_RESTRICT uypp = uyp.dataPtr();
Real* const AMREX_RESTRICT uzpp = uzp.dataPtr();
@@ -437,14 +432,14 @@ RigidInjectedParticleContainer::PushP (int lev, Real dt,
if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Boris){
amrex::ParallelFor( pti.numParticles(),
[=] AMREX_GPU_DEVICE (long i) {
- UpdateMomentumBoris( uxpp[i], uypp[i], uzpp[i], gi[i],
+ UpdateMomentumBoris( uxpp[i], uypp[i], uzpp[i],
Expp[i], Eypp[i], Ezpp[i], Bxpp[i], Bypp[i], Bzpp[i], q, m, dt);
}
);
} else if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Vay) {
amrex::ParallelFor( pti.numParticles(),
[=] AMREX_GPU_DEVICE (long i) {
- UpdateMomentumVay( uxpp[i], uypp[i], uzpp[i], gi[i],
+ UpdateMomentumVay( uxpp[i], uypp[i], uzpp[i],
Expp[i], Eypp[i], Ezpp[i], Bxpp[i], Bypp[i], Bzpp[i], q, m, dt);
}
);
diff --git a/Source/Particles/WarpXParticleContainer.H b/Source/Particles/WarpXParticleContainer.H
index 4411436fa..e96e78c7a 100644
--- a/Source/Particles/WarpXParticleContainer.H
+++ b/Source/Particles/WarpXParticleContainer.H
@@ -327,7 +327,7 @@ 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;
+ amrex::Vector<DataContainer> m_xp, m_yp, m_zp;
// Whether to dump particle quantities.
// If true, particle position is always dumped.
diff --git a/Source/Particles/WarpXParticleContainer.cpp b/Source/Particles/WarpXParticleContainer.cpp
index ee606aadb..176c147da 100644
--- a/Source/Particles/WarpXParticleContainer.cpp
+++ b/Source/Particles/WarpXParticleContainer.cpp
@@ -99,7 +99,6 @@ WarpXParticleContainer::WarpXParticleContainer (AmrCore* amr_core, int ispecies)
m_xp.resize(num_threads);
m_yp.resize(num_threads);
m_zp.resize(num_threads);
- m_giv.resize(num_threads);
}
void