From 662b209b17bd6380f7cbc8da15ff73fb7d49b657 Mon Sep 17 00:00:00 2001 From: Dave Grote Date: Tue, 13 Aug 2019 15:05:58 -0700 Subject: Fix rigid injection for 2D --- Source/Particles/RigidInjectedParticleContainer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Source/Particles/RigidInjectedParticleContainer.cpp') diff --git a/Source/Particles/RigidInjectedParticleContainer.cpp b/Source/Particles/RigidInjectedParticleContainer.cpp index f049fdb7c..038d50d0a 100644 --- a/Source/Particles/RigidInjectedParticleContainer.cpp +++ b/Source/Particles/RigidInjectedParticleContainer.cpp @@ -347,7 +347,8 @@ RigidInjectedParticleContainer::Evolve (int lev, // particles have crossed the inject plane. const Real* plo = Geom(lev).ProbLo(); const Real* phi = Geom(lev).ProbHi(); - done_injecting[lev] = (zinject_plane_levels[lev] < plo[2] || zinject_plane_levels[lev] > phi[2]); + const int zdir = AMREX_SPACEDIM-1; + done_injecting[lev] = (zinject_plane_levels[lev] < plo[zdir] || zinject_plane_levels[lev] > phi[zdir]); done_injecting_lev = done_injecting[lev]; PhysicalParticleContainer::Evolve (lev, -- cgit v1.2.3 From 19888b109c0c40ca4fbe472e095393964029b4a0 Mon Sep 17 00:00:00 2001 From: Dave Grote Date: Wed, 14 Aug 2019 16:51:21 -0700 Subject: For RigidInjection, fixed calculation of done_injecting --- Source/Particles/RigidInjectedParticleContainer.cpp | 3 ++- Source/WarpX.H | 2 +- Source/WarpX.cpp | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'Source/Particles/RigidInjectedParticleContainer.cpp') diff --git a/Source/Particles/RigidInjectedParticleContainer.cpp b/Source/Particles/RigidInjectedParticleContainer.cpp index 038d50d0a..6f1c5450b 100644 --- a/Source/Particles/RigidInjectedParticleContainer.cpp +++ b/Source/Particles/RigidInjectedParticleContainer.cpp @@ -348,7 +348,8 @@ RigidInjectedParticleContainer::Evolve (int lev, const Real* plo = Geom(lev).ProbLo(); const Real* phi = Geom(lev).ProbHi(); const int zdir = AMREX_SPACEDIM-1; - done_injecting[lev] = (zinject_plane_levels[lev] < plo[zdir] || zinject_plane_levels[lev] > phi[zdir]); + done_injecting[lev] = ((zinject_plane_levels[lev] < plo[zdir] && WarpX::moving_window_v > 0.) || + (zinject_plane_levels[lev] > phi[zdir] && WarpX::moving_window_v < 0.)); done_injecting_lev = done_injecting[lev]; PhysicalParticleContainer::Evolve (lev, diff --git a/Source/WarpX.H b/Source/WarpX.H index 4d72b8629..927cc1f32 100644 --- a/Source/WarpX.H +++ b/Source/WarpX.H @@ -257,6 +257,7 @@ public: static int do_moving_window; static int moving_window_dir; + static amrex::Real moving_window_v; // slice generation // void InitializeSliceMultiFabs (); @@ -504,7 +505,6 @@ private: amrex::Vector > pml; amrex::Real moving_window_x = std::numeric_limits::max(); - amrex::Real moving_window_v = std::numeric_limits::max(); amrex::Real current_injection_position = 0; // Plasma injection parameters diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp index 07f124820..a6a7a3399 100644 --- a/Source/WarpX.cpp +++ b/Source/WarpX.cpp @@ -30,6 +30,7 @@ Vector WarpX::B_external(3, 0.0); int WarpX::do_moving_window = 0; int WarpX::moving_window_dir = -1; +Real WarpX::moving_window_v = std::numeric_limits::max(); Real WarpX::gamma_boost = 1.; Real WarpX::beta_boost = 0.; -- cgit v1.2.3 From e04655046d2dbedd5ad3f6f4798e3d7f8925f0f9 Mon Sep 17 00:00:00 2001 From: Dave Grote Date: Thu, 15 Aug 2019 15:59:01 -0700 Subject: Fixes for done_injecting to include boosted frame --- Source/Particles/RigidInjectedParticleContainer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/Particles/RigidInjectedParticleContainer.cpp') diff --git a/Source/Particles/RigidInjectedParticleContainer.cpp b/Source/Particles/RigidInjectedParticleContainer.cpp index 6f1c5450b..36cb9d224 100644 --- a/Source/Particles/RigidInjectedParticleContainer.cpp +++ b/Source/Particles/RigidInjectedParticleContainer.cpp @@ -348,8 +348,8 @@ RigidInjectedParticleContainer::Evolve (int lev, const Real* plo = Geom(lev).ProbLo(); const Real* phi = Geom(lev).ProbHi(); const int zdir = AMREX_SPACEDIM-1; - done_injecting[lev] = ((zinject_plane_levels[lev] < plo[zdir] && WarpX::moving_window_v > 0.) || - (zinject_plane_levels[lev] > phi[zdir] && WarpX::moving_window_v < 0.)); + done_injecting[lev] = ((zinject_plane_levels[lev] < plo[zdir] && WarpX::moving_window_v + WarpX::beta_boost*PhysConst::c >= 0.) || + (zinject_plane_levels[lev] > phi[zdir] && WarpX::moving_window_v + WarpX::beta_boost*PhysConst::c <= 0.)); done_injecting_lev = done_injecting[lev]; PhysicalParticleContainer::Evolve (lev, -- cgit v1.2.3