diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/Laser/LaserParticleContainer.cpp | 4 | ||||
-rw-r--r-- | Source/Particles/PhotonParticleContainer.H | 1 | ||||
-rw-r--r-- | Source/Particles/PhotonParticleContainer.cpp | 2 | ||||
-rw-r--r-- | Source/Particles/PhysicalParticleContainer.H | 1 | ||||
-rw-r--r-- | Source/Particles/PhysicalParticleContainer.cpp | 18 | ||||
-rw-r--r-- | Source/Particles/Pusher/UpdateMomentumBoris.H | 3 | ||||
-rw-r--r-- | Source/Particles/Pusher/UpdateMomentumVay.H | 3 | ||||
-rw-r--r-- | Source/Particles/RigidInjectedParticleContainer.H | 1 | ||||
-rw-r--r-- | Source/Particles/RigidInjectedParticleContainer.cpp | 15 | ||||
-rw-r--r-- | Source/Particles/WarpXParticleContainer.H | 2 | ||||
-rw-r--r-- | Source/Particles/WarpXParticleContainer.cpp | 1 |
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 |