diff options
-rw-r--r-- | Source/BoundaryConditions/WarpX_PML_kernels.H | 212 |
1 files changed, 106 insertions, 106 deletions
diff --git a/Source/BoundaryConditions/WarpX_PML_kernels.H b/Source/BoundaryConditions/WarpX_PML_kernels.H index e0915c30a..a45ec6264 100644 --- a/Source/BoundaryConditions/WarpX_PML_kernels.H +++ b/Source/BoundaryConditions/WarpX_PML_kernels.H @@ -8,33 +8,33 @@ using namespace amrex; // PML BX YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_bx_yee (int i, int j, int k, Array4<Real> const& Bx, +void warpx_push_pml_bx_yee (int i, int j, int k, Array4<Real> const& Bx, Array4<Real const> const& Ey, Array4<Real const> const& Ez, Real dtsdy, Real dtsdz) { #if (AMREX_SPACEDIM == 3) - Bx(i,j,k,0) += - dtsdy * (Ez(i,j+1,k,0) + Ez(i,j+1,k,1) + Ez(i,j+1,k,2) + Bx(i,j,k,0) += - dtsdy * (Ez(i,j+1,k,0) + Ez(i,j+1,k,1) + Ez(i,j+1,k,2) - Ez(i,j,k,0) - Ez(i,j,k,1) - Ez(i,j,k,2)) ; - Bx(i,j,k,1) += dtsdz * (Ey(i,j,k+1,0) + Ey(i,j,k+1,1) + Ey(i,j,k+1,2) + Bx(i,j,k,1) += dtsdz * (Ey(i,j,k+1,0) + Ey(i,j,k+1,1) + Ey(i,j,k+1,2) - Ey(i,j,k,0) - Ey(i,j,k,1) - Ey(i,j,k,2)) ; #else - Bx(i,j,k,1) += dtsdz * (Ey(i,j+1,k,0) + Ey(i,j+1,k,1) + Ey(i,j+1,k,2) + Bx(i,j,k,1) += dtsdz * (Ey(i,j+1,k,0) + Ey(i,j+1,k,1) + Ey(i,j+1,k,2) - Ey(i,j,k,0) - Ey(i,j,k,1) - Ey(i,j,k,2)) ; -#endif +#endif } //PML BY YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_by_yee (int i, int j, int k, Array4<Real> const& By, +void warpx_push_pml_by_yee (int i, int j, int k, Array4<Real> const& By, Array4<Real const> const& Ex, Array4<Real const> const& Ez, Real dtsdx, Real dtsdz) { #if (AMREX_SPACEDIM == 3) - By(i,j,k,0) += -dtsdz * (Ex(i,j,k+1,0) + Ex(i,j,k+1,1) + Ex(i,j,k+1,2) + By(i,j,k,0) += -dtsdz * (Ex(i,j,k+1,0) + Ex(i,j,k+1,1) + Ex(i,j,k+1,2) - Ex(i,j,k,0) - Ex(i,j,k,1) - Ex(i,j,k,2)); #else - By(i,j,k,0) += -dtsdz * (Ex(i,j+1,k,0) + Ex(i,j+1,k,1) + Ex(i,j+1,k,2) + By(i,j,k,0) += -dtsdz * (Ex(i,j+1,k,0) + Ex(i,j+1,k,1) + Ex(i,j+1,k,2) - Ex(i,j,k,0) - Ex(i,j,k,1) - Ex(i,j,k,2)); #endif By(i,j,k,1) += dtsdx * (Ez(i+1,j,k,0) + Ez(i+1,j,k,1) + Ez(i+1,j,k,2) @@ -44,7 +44,7 @@ void warpx_push_pml_by_yee (int i, int j, int k, Array4<Real> const& By, //PML BZ YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_bz_yee (int i, int j, int k, Array4<Real> const& Bz, +void warpx_push_pml_bz_yee (int i, int j, int k, Array4<Real> const& Bz, Array4<Real const> const& Ex, Array4<Real const> const& Ey, Real dtsdx, Real dtsdy) { @@ -59,18 +59,18 @@ void warpx_push_pml_bz_yee (int i, int j, int k, Array4<Real> const& Bz, //PML BX CKC AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_bx_ckc(int i, int j, int k, Array4<Real> const&Bx, - Array4<Real const> const& Ey, +void warpx_push_pml_bx_ckc(int i, int j, int k, Array4<Real> const&Bx, + Array4<Real const> const& Ey, Array4<Real const> const& Ez, - Real betaxy, Real betaxz, Real betayx, Real betayz, - Real betazx, Real betazy, Real gammax, Real gammay, + Real betaxy, Real betaxz, Real betayx, Real betayz, + Real betazx, Real betazy, Real gammax, Real gammay, Real gammaz, Real alphax, Real alphay, Real alphaz) { #if (AMREX_SPACEDIM == 3) - Bx(i,j,k,0) += -alphay*(Ez(i ,j+1,k ,0) + Ez(i ,j+1,k ,1) + Ez(i ,j+1,k ,2) - - Ez(i ,j ,k ,0) - Ez(i ,j ,k ,1) - Ez(i ,j ,k ,2)) - -betayx*(Ez(i+1,j+1,k ,0) + Ez(i+1,j+1,k ,1) + Ez(i+1,j+1,k ,2) - - Ez(i+1,j ,k ,0) - Ez(i+1,j ,k ,1) - Ez(i+1,j ,k ,2) + Bx(i,j,k,0) += -alphay*(Ez(i ,j+1,k ,0) + Ez(i ,j+1,k ,1) + Ez(i ,j+1,k ,2) + - Ez(i ,j ,k ,0) - Ez(i ,j ,k ,1) - Ez(i ,j ,k ,2)) + -betayx*(Ez(i+1,j+1,k ,0) + Ez(i+1,j+1,k ,1) + Ez(i+1,j+1,k ,2) + - Ez(i+1,j ,k ,0) - Ez(i+1,j ,k ,1) - Ez(i+1,j ,k ,2) + Ez(i-1,j+1,k ,0) + Ez(i-1,j+1,k ,1) + Ez(i-1,j+1,k ,2) - Ez(i-1,j ,k ,0) - Ez(i-1,j ,k ,1) - Ez(i-1,j ,k ,2)) -betayz*(Ez(i ,j+1,k+1,0) + Ez(i ,j+1,k+1,1) + Ez(i ,j+1,k+1,2) @@ -83,17 +83,17 @@ void warpx_push_pml_bx_ckc(int i, int j, int k, Array4<Real> const&Bx, - Ez(i-1,j ,k+1,0) - Ez(i-1,j ,k+1,1) - Ez(i-1,j ,k+1,2) + Ez(i+1,j+1,k-1,0) + Ez(i+1,j+1,k-1,1) + Ez(i+1,j+1,k-1,2) - Ez(i+1,j ,k-1,0) - Ez(i+1,j ,k-1,1) - Ez(i+1,j ,k-1,2) - + Ez(i-1,j+1,k-1,0) + Ez(i-1,j+1,k-1,1) + Ez(i-1,j+1,k-1,2) - - Ez(i-1,j ,k-1,0) - Ez(i-1,j ,k-1,1) - Ez(i-1,j ,k-1,2)); + + Ez(i-1,j+1,k-1,0) + Ez(i-1,j+1,k-1,1) + Ez(i-1,j+1,k-1,2) + - Ez(i-1,j ,k-1,0) - Ez(i-1,j ,k-1,1) - Ez(i-1,j ,k-1,2)); Bx(i,j,k,1) += alphaz*(Ey(i ,j ,k+1,0) + Ey(i ,j ,k+1,1) + Ez(i ,j ,k+1,2) - Ey(i ,j ,k ,0) - Ey(i ,j ,k ,1) - Ey(i ,j ,k ,2)) - +betazx*(Ey(i+1,j ,k+1,0) + Ey(i+1,j ,k+1,1) + Ey(i+1,j ,k+1,2) + +betazx*(Ey(i+1,j ,k+1,0) + Ey(i+1,j ,k+1,1) + Ey(i+1,j ,k+1,2) - Ey(i+1,j ,k ,0) - Ey(i+1,j ,k ,1) - Ey(i+1,j ,k ,2) + Ey(i-1,j ,k+1,0) + Ey(i-1,j ,k+1,1) + Ey(i-1,j ,k+1,2) - Ey(i-1,j ,k ,0) - Ey(i-1,j ,k ,1) - Ey(i-1,j ,k ,2)) - +betazy*(Ey(i ,j+1,k+1,0) + Ey(i ,j+1,k+1,1) + Ey(i ,j+1,k+1,2) - - Ey(i ,j+1,k ,0) - Ey(i ,j+1,k ,1) - Ey(i ,j+1,k ,2) - + Ey(i, j-1,k+1,0) + Ey(i ,j-1,k+1,1) + Ey(i ,j-1,k+1,2) + +betazy*(Ey(i ,j+1,k+1,0) + Ey(i ,j+1,k+1,1) + Ey(i ,j+1,k+1,2) + - Ey(i ,j+1,k ,0) - Ey(i ,j+1,k ,1) - Ey(i ,j+1,k ,2) + + Ey(i, j-1,k+1,0) + Ey(i ,j-1,k+1,1) + Ey(i ,j-1,k+1,2) - Ey(i ,j-1,k ,0) - Ey(i ,j-1,k ,1) - Ey(i ,j-1,k ,2)) +gammaz*(Ey(i+1,j+1,k+1,0) + Ey(i+1,j+1,k+1,1) + Ey(i+1,j+1,k+1,2) - Ey(i+1,j+1,k ,0) - Ey(i+1,j+1,k ,1) - Ey(i+1,j+1,k ,2) @@ -101,29 +101,29 @@ void warpx_push_pml_bx_ckc(int i, int j, int k, Array4<Real> const&Bx, - Ey(i-1,j+1,k ,0) - Ey(i-1,j+1,k ,1) - Ey(i-1,j+1,k ,2) + Ey(i+1,j-1,k+1,0) + Ey(i+1,j-1,k+1,1) + Ey(i+1,j-2,k+1,2) - Ey(i+1,j-1,k ,0) - Ey(i+1,j-1,k ,1) - Ey(i+1,j-1,k ,2) - + Ey(i-1,j-1,k+1,0) + Ey(i-1,j-1,k+1,1) + Ey(i-1,j-1,k+1,1) + + Ey(i-1,j-1,k+1,0) + Ey(i-1,j-1,k+1,1) + Ey(i-1,j-1,k+1,1) - Ey(i-1,j-1,k ,0) - Ey(i-1,j-1,k ,1) - Ey(i-1,j-1,k ,2)); #else Bx(i,j,k,1) += alphaz*(Ey(i ,j+1,k ,0) + Ey(i ,j+1,k ,1) + Ey(i ,j+1,k ,2) - - Ey(i ,j ,k ,0) - Ey(i ,j ,k ,1) - Ey(i ,j ,k ,2)) + - Ey(i ,j ,k ,0) - Ey(i ,j ,k ,1) - Ey(i ,j ,k ,2)) +betazx*(Ey(i+1,j+1,k ,0) + Ey(i+1,j+1,k ,1) + Ey(i+1,j+1,k ,2) - Ey(i+1,j ,k ,0) - Ey(i+1,j ,k ,1) - Ey(i+1,j+1,k ,2) + Ey(i-1,j+1,k ,0) + Ey(i-1,j+1,k ,1) + Ey(i-1,j+1,k ,2) - Ey(i-1,j ,k ,0) - Ey(i-1,j ,k ,1) - Ey(i-1,j ,k ,2)); - + #endif } AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_by_ckc(int i, int j, int k, Array4<Real> const&By, - Array4<Real const> const& Ex, +void warpx_push_pml_by_ckc(int i, int j, int k, Array4<Real> const&By, + Array4<Real const> const& Ex, Array4<Real const> const& Ez, - Real betaxy, Real betaxz, Real betayx, Real betayz, - Real betazx, Real betazy, Real gammax, Real gammay, + Real betaxy, Real betaxz, Real betayx, Real betayz, + Real betazx, Real betazy, Real gammax, Real gammay, Real gammaz, Real alphax, Real alphay, Real alphaz) { #if (AMREX_SPACEDIM==3) @@ -133,7 +133,7 @@ void warpx_push_pml_by_ckc(int i, int j, int k, Array4<Real> const&By, - Ex(i+1,j ,k ,0) - Ex(i+1,j ,k+1,1) - Ex(i+1,j ,k ,2) + Ex(i-1,j ,k+1,0) + Ex(i-1,j ,k+1,1) + Ex(i-1,j ,k+1,2) - Ex(i-1,j ,k ,0) - Ex(i-1,j ,k ,1) - Ex(i-1,j ,k ,2)) - -betaxy*(Ex(i ,j+1,k+1,0) + Ex(i ,j+1,k+1,1) + Ex(i ,j+1,k+1,2) + -betazy*(Ex(i ,j+1,k+1,0) + Ex(i ,j+1,k+1,1) + Ex(i ,j+1,k+1,2) - Ex(i ,j+1,k ,0) - Ex(i ,j+1,k ,1) - Ex(i ,j+1,k ,2) + Ex(i ,j-1,k+1,0) + Ex(i ,j-1,k+1,1) + Ex(i ,j-1,k+1,2) - Ex(i ,j-1,k ,0) - Ex(i ,j-1,k ,1) - Ex(i ,j-1,k ,2)) @@ -147,34 +147,34 @@ void warpx_push_pml_by_ckc(int i, int j, int k, Array4<Real> const&By, - Ex(i-1,j-1,k ,0) - Ex(i-1,j-1,k ,1) - Ex(i-1,j-1,k ,2)); By(i,j,k,1) += alphax*(Ez(i+1,j ,k ,0) + Ez(i+1,j ,k ,1) + Ez(i+1,j ,k ,2) - - Ez(i ,j ,k ,0) - Ez(i ,j ,k ,1) - Ez(i ,j ,k ,2)) + - Ez(i ,j ,k ,0) - Ez(i ,j ,k ,1) - Ez(i ,j ,k ,2)) +betaxy*(Ez(i+1,j+1,k ,0) + Ez(i+1,j+1,k ,1) + Ez(i+1,j+1,k ,2) - Ez(i ,j+1,k ,0) - Ez(i ,j+1,k ,1) - Ez(i ,j+1,k ,2) + Ez(i+1,j-1,k ,0) + Ez(i+1,j-1,k ,1) + Ez(i+1,j-1,k ,2) - Ez(i ,j-1,k ,0) - Ez(i ,j-1,k ,1) - Ez(i ,j-1,k ,2)) - +betaxz*(Ez(i+1,j ,k+1,0) + Ez(i+1,j ,k+1,1) + Ez(i+1,j ,k+1,2) - - Ez(i ,j ,k+1,0) - Ez(i ,j ,k+1,1) - Ez(i ,j ,k+1,2) + +betaxz*(Ez(i+1,j ,k+1,0) + Ez(i+1,j ,k+1,1) + Ez(i+1,j ,k+1,2) + - Ez(i ,j ,k+1,0) - Ez(i ,j ,k+1,1) - Ez(i ,j ,k+1,2) + Ez(i+1,j ,k-1,0) + Ez(i+1,j ,k-1,1) + Ez(i+1,j ,k-1,2) - Ez(i ,j ,k-1,0) - Ez(i ,j ,k-1,1) - Ez(i ,j ,k-1,2)) +gammax*(Ez(i+1,j+1,k+1,0) + Ez(i+1,j+1,k+1,1) + Ez(i+1,j+1,k+1,2) - Ez(i ,j+1,k+1,0) - Ez(i ,j+1,k+1,1) - Ez(i ,j+1,k+1,2) - + Ez(i+1,j-1,k+1,0) + Ez(i+1,j-1,k+1,1) + Ez(i+1,j-1,k+1,2) + + Ez(i+1,j-1,k+1,0) + Ez(i+1,j-1,k+1,1) + Ez(i+1,j-1,k+1,2) - Ez(i ,j-1,k+1,0) - Ez(i ,j-1,k+1,1) - Ez(i ,j-1,k+1,2) + Ez(i+1,j+1,k-1,0) + Ez(i+1,j+1,k-1,1) + Ez(i+1,j+1,k-1,2) - Ez(i ,j+1,k-1,0) - Ez(i ,j+1,k-1,1) - Ez(i ,j+1,k-1,2) - + Ez(i+1,j-1,k-1,0) + Ez(i+1,j-1,k-1,1) + Ez(i+1,j-1,k-1,2) + + Ez(i+1,j-1,k-1,0) + Ez(i+1,j-1,k-1,1) + Ez(i+1,j-1,k-1,2) - Ez(i ,j-1,k-1,0) - Ez(i ,j-1,k-1,1) - Ez(i ,j-1,k-1,2)); #else - By(i,j,k,0) += -alphaz*(Ex(i ,j+1,k ,0) + Ex(i ,j+1,k ,1) + Ex(i ,j+1,k ,2) + By(i,j,k,0) += -alphaz*(Ex(i ,j+1,k ,0) + Ex(i ,j+1,k ,1) + Ex(i ,j+1,k ,2) - Ex(i ,j ,k ,0) - Ex(i ,j ,k ,1) - Ex(i ,j ,k ,2)) - -betazx*(Ex(i+1,j+1,k ,0) + Ex(i+1,j+1,k ,1) + Ex(i+1,j+1,k ,2) + -betazx*(Ex(i+1,j+1,k ,0) + Ex(i+1,j+1,k ,1) + Ex(i+1,j+1,k ,2) - Ex(i+1,j ,k ,0) - Ex(i+1,j ,k ,1) - Ex(i+1,j ,k ,2) - + Ex(i-1,j+1,k ,0) + Ex(i-1,j+1,k ,1) + Ex(i-1,j+1,k ,2) + + Ex(i-1,j+1,k ,0) + Ex(i-1,j+1,k ,1) + Ex(i-1,j+1,k ,2) - Ex(i-1,j ,k ,0) - Ex(i-1,j ,k ,1) - Ex(i-1,j ,k ,2)); - By(i,j,k,1) += alphax*(Ez(i+1,j ,k ,0) + Ez(i+1,j ,k ,1) + Ez(i+1,j ,k ,2) + By(i,j,k,1) += alphax*(Ez(i+1,j ,k ,0) + Ez(i+1,j ,k ,1) + Ez(i+1,j ,k ,2) - Ez(i ,j ,k ,0) - Ez(i ,j ,k ,1) - Ez(i ,j ,k ,2)) - +betaxz*(Ez(i+1,j+1,k ,0) + Ez(i+1,j+1,k ,1) + Ez(i+1,j+1,k ,2) + +betaxz*(Ez(i+1,j+1,k ,0) + Ez(i+1,j+1,k ,1) + Ez(i+1,j+1,k ,2) - Ez(i ,j+1,k ,0) - Ez(i ,j+1,k ,1) - Ez(i ,j+1,k ,2) + Ez(i+1,j-1,k ,0) + Ez(i+1,j-1,k ,1) + Ez(i+1,j-1,k ,2) - Ez(i ,j-1,k ,0) - Ez(i ,j-1,k ,1) - Ez(i ,j-1,k ,2)); @@ -186,15 +186,15 @@ void warpx_push_pml_by_ckc(int i, int j, int k, Array4<Real> const&By, AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_bz_ckc(int i, int j, int k, Array4<Real> const&Bz, +void warpx_push_pml_bz_ckc(int i, int j, int k, Array4<Real> const&Bz, Array4<Real const> const& Ex, Array4<Real const> const& Ey, - Real betaxy, Real betaxz, Real betayx, Real betayz, - Real betazx, Real betazy, Real gammax, Real gammay, + Real betaxy, Real betaxz, Real betayx, Real betayz, + Real betazx, Real betazy, Real gammax, Real gammay, Real gammaz, Real alphax, Real alphay, Real alphaz) { #if (AMREX_SPACEDIM==3) - Bz(i,j,k,0) += -alphax*(Ey(i+1,j ,k ,0) + Ey(i+1,j ,k ,1) + Ey(i+1,j ,k ,2) + Bz(i,j,k,0) += -alphax*(Ey(i+1,j ,k ,0) + Ey(i+1,j ,k ,1) + Ey(i+1,j ,k ,2) - Ey(i ,j ,k ,0) - Ey(i ,j ,k ,1) - Ey(i ,j ,k ,2)) -betaxy*(Ey(i+1,j+1,k ,0) + Ey(i+1,j+1,k ,1) + Ey(i+1,j+1,k ,2) - Ey(i ,j+1,k ,0) - Ey(i ,j+1,k ,1) - Ey(i ,j+1,k ,2) @@ -215,17 +215,17 @@ void warpx_push_pml_bz_ckc(int i, int j, int k, Array4<Real> const&Bz, Bz(i,j,k,1) += alphay*(Ex(i ,j+1,k ,0) + Ex(i ,j+1,k ,1) + Ex(i ,j+1,k ,2) - Ex(i ,j ,k ,0) - Ex(i ,j ,k ,1) - Ex(i ,j ,k ,2)) - +betayx*(Ex(i+1,j+1,k ,0) + Ex(i+1,j+1,k ,1) + Ex(i+1,j+1,k ,2) + +betayx*(Ex(i+1,j+1,k ,0) + Ex(i+1,j+1,k ,1) + Ex(i+1,j+1,k ,2) - Ex(i+1,j ,k ,0) - Ex(i+1,j ,k ,1) - Ex(i+1,j ,k ,2) + Ex(i-1,j+1,k ,0) + Ex(i-1,j+1,k ,1) + Ex(i-1,j+1,k ,2) - Ex(i-1,j ,k ,0) - Ex(i-1,j ,k ,1) - Ex(i-1,j ,k ,2)) +betayz*(Ex(i ,j+1,k+1,0) + Ex(i ,j+1,k+1,1) + Ex(i ,j+1,k+1,2) - Ex(i ,j ,k+1,0) - Ex(i ,j ,k+1,1) - Ex(i ,j ,k+1,2) + Ex(i ,j+1,k-1,0) + Ex(i ,j+1,k-1,1) + Ex(i ,j+1,k-1,2) - - Ex(i ,j ,k-1,0) - Ex(i ,j ,k-1,1) - Ex(i ,j ,k-1,2)) + - Ex(i ,j ,k-1,0) - Ex(i ,j ,k-1,1) - Ex(i ,j ,k-1,2)) +gammay*(Ex(i+1,j+1,k+1,0) + Ex(i+1,j+1,k+1,1) + Ex(i+1,j+1,k+1,2) - Ex(i+1,j ,k+1,0) - Ex(i+1,j ,k+1,1) - Ex(i+1,j ,k+1,2) - + Ex(i-1,j+1,k+1,0) + Ex(i-1,j+1,k+1,1) + Ex(i-1,j+1,k+1,2) + + Ex(i-1,j+1,k+1,0) + Ex(i-1,j+1,k+1,1) + Ex(i-1,j+1,k+1,2) - Ex(i-1,j ,k+1,0) - Ex(i-1,j ,k+1,1) - Ex(i-1,j ,k+1,2) + Ex(i+1,j+1,k-1,0) + Ex(i+1,j+1,k-1,1) + Ex(i+1,j+1,k-1,2) - Ex(i+1,j ,k-1,0) - Ex(i+1,j ,k-1,1) - Ex(i+1,j ,k-1,2) @@ -234,7 +234,7 @@ void warpx_push_pml_bz_ckc(int i, int j, int k, Array4<Real> const&Bz, #else - Bz(i,j,k,0) += -alphax*(Ey(i+1,j ,k ,0) + Ey(i+1,j ,k ,1) + Ey(i+1,j ,k ,2) + Bz(i,j,k,0) += -alphax*(Ey(i+1,j ,k ,0) + Ey(i+1,j ,k ,1) + Ey(i+1,j ,k ,2) - Ey(i ,j ,k ,0) - Ey(i ,j ,k ,1) - Ey(i ,j ,k ,2)) -betaxz*(Ey(i+1,j+1,k ,0) + Ey(i+1,j+1,k ,1) + Ey(i+1,j+1,k ,2) - Ey(i ,j+1,k ,0) - Ey(i ,j+1,k ,1) - Ey(i ,j+1,k ,2) @@ -250,19 +250,19 @@ void warpx_push_pml_bz_ckc(int i, int j, int k, Array4<Real> const&Bz, //PML EX YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_ex_yee (int i, int j, int k, Array4<Real> const& Ex, +void warpx_push_pml_ex_yee (int i, int j, int k, Array4<Real> const& Ex, Array4<Real const> const& By, Array4<Real const> const& Bz, Real dtsdy_c2, Real dtsdz_c2) { #if (AMREX_SPACEDIM == 3) - Ex(i,j,k,0) += dtsdy_c2 * ( Bz(i,j ,k,0) + Bz(i,j ,k,1) + Ex(i,j,k,0) += dtsdy_c2 * ( Bz(i,j ,k,0) + Bz(i,j ,k,1) - Bz(i,j-1,k,0) - Bz(i,j-1,k,1) ); - Ex(i,j,k,1) += -dtsdz_c2 * (By(i,j,k ,0) + By(i,j,k ,1) + Ex(i,j,k,1) += -dtsdz_c2 * (By(i,j,k ,0) + By(i,j,k ,1) - By(i,j,k-1,0) - By(i,j,k-1,1) ); #else - Ex(i,j,k,1) += -dtsdz_c2 * (By(i,j ,k,0) + By(i,j ,k,1) + Ex(i,j,k,1) += -dtsdz_c2 * (By(i,j ,k,0) + By(i,j ,k,1) - By(i,j-1,k,0) - By(i,j-1,k,1) ); #endif } @@ -275,13 +275,13 @@ void warpx_push_pml_ey_yee (int i, int j, int k, Array4<Real> const& Ey, Real dtsdx_c2, Real dtsdz_c2) { #if (AMREX_SPACEDIM == 3) - Ey(i,j,k,0) += dtsdz_c2 * (Bx(i,j,k ,0) + Bx(i,j,k ,1) + Ey(i,j,k,0) += dtsdz_c2 * (Bx(i,j,k ,0) + Bx(i,j,k ,1) - Bx(i,j,k-1,0) - Bx(i,j,k-1,1)); #else - Ey(i,j,k,0) += dtsdz_c2 * (Bx(i,j ,k,0) + Bx(i,j ,k,1) + Ey(i,j,k,0) += dtsdz_c2 * (Bx(i,j ,k,0) + Bx(i,j ,k,1) - Bx(i,j-1,k,0) - Bx(i,j-1,k,1)); #endif - Ey(i,j,k,1) += -dtsdx_c2 * (Bz(i ,j,k,0) + Bz(i ,j,k,1) + Ey(i,j,k,1) += -dtsdx_c2 * (Bz(i ,j,k,0) + Bz(i ,j,k,1) - Bz(i-1,j,k,0) - Bz(i-1,j,k,1) ); } @@ -292,10 +292,10 @@ void warpx_push_pml_ez_yee (int i, int j, int k, Array4<Real> const& Ez, Array4<Real const> const& By, Real dtsdx_c2, Real dtsdy_c2) { - Ez(i,j,k,0) += dtsdx_c2 * (By(i, j,k,0) + By(i, j,k,1) + Ez(i,j,k,0) += dtsdx_c2 * (By(i, j,k,0) + By(i, j,k,1) - By(i-1,j,k,0) - By(i-1,j,k,1) ); #if (AMREX_SPACEDIM==3) - Ez(i,j,k,1) += - dtsdy_c2 * (Bx(i,j, k,0) + Bx(i,j, k,1) + Ez(i,j,k,1) += - dtsdy_c2 * (Bx(i,j, k,0) + Bx(i,j, k,1) - Bx(i,j-1,k,0) - Bx(i,j-1,k,1) ); #endif } @@ -303,72 +303,72 @@ void warpx_push_pml_ez_yee (int i, int j, int k, Array4<Real> const& Ez, // PML EX F YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_ex_f_yee(int i, int j, int k, +void warpx_push_pml_ex_f_yee(int i, int j, int k, Array4<Real> const& Exfab, Array4<Real const> const& F_fab, Real dtsdx_c2) { - Exfab(i,j,k,2) += dtsdx_c2 * (F_fab(i+1,j,k,0) - F_fab(i,j,k,0) - + F_fab(i+1,j,k,1) - F_fab(i,j,k,1) + Exfab(i,j,k,2) += dtsdx_c2 * (F_fab(i+1,j,k,0) - F_fab(i,j,k,0) + + F_fab(i+1,j,k,1) - F_fab(i,j,k,1) + F_fab(i+1,j,k,2) - F_fab(i,j,k,2)); } // PML EY F YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_ey_f_yee(int i, int j, int k, +void warpx_push_pml_ey_f_yee(int i, int j, int k, Array4<Real> const& Eyfab, Array4<Real const> const& F_fab, Real dtsdy_c2) { - Eyfab(i,j,k,2) += dtsdy_c2 * (F_fab(i,j+1,k,0) - F_fab(i,j,k,0) - + F_fab(i,j+1,k,1) - F_fab(i,j,k,1) + Eyfab(i,j,k,2) += dtsdy_c2 * (F_fab(i,j+1,k,0) - F_fab(i,j,k,0) + + F_fab(i,j+1,k,1) - F_fab(i,j,k,1) + F_fab(i,j+1,k,2) - F_fab(i,j,k,2)); } // PML EZ F YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_ez_f_yee(int i, int j, int k, +void warpx_push_pml_ez_f_yee(int i, int j, int k, Array4<Real> const& Ezfab, Array4<Real const> const& F_fab, Real dtsdz_c2) { #if (AMREX_SPACEDIM == 3) - Ezfab(i,j,k,2) += dtsdz_c2 * (F_fab(i,j,k+1,0) - F_fab(i,j,k,0) - + F_fab(i,j,k+1,1) - F_fab(i,j,k,1) + Ezfab(i,j,k,2) += dtsdz_c2 * (F_fab(i,j,k+1,0) - F_fab(i,j,k,0) + + F_fab(i,j,k+1,1) - F_fab(i,j,k,1) + F_fab(i,j,k+1,2) - F_fab(i,j,k,2)); #else - Ezfab(i,j,k,2) += dtsdz_c2 * (F_fab(i,j+1,k,0) - F_fab(i,j,k,0) - + F_fab(i,j+1,k,1) - F_fab(i,j,k,1) + Ezfab(i,j,k,2) += dtsdz_c2 * (F_fab(i,j+1,k,0) - F_fab(i,j,k,0) + + F_fab(i,j+1,k,1) - F_fab(i,j,k,1) + F_fab(i,j+1,k,2) - F_fab(i,j,k,2)); #endif } // PML EX F CKC AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_ex_f_ckc(int i, int j, int k, +void warpx_push_pml_ex_f_ckc(int i, int j, int k, Array4<Real> const& Exfab, Array4<Real const> const& F, Real alphax, Real betaxy, Real betaxz,Real gammax) { #if (AMREX_SPACEDIM==3) - Exfab(i,j,k,2) += alphax*( + Exfab(i,j,k,2) += alphax*( F(i+1,j ,k ,0) + F(i+1,j ,k ,1) + F(i+1,j ,k ,2) - F(i ,j ,k ,0) - F(i ,j ,k ,1) - F(i ,j ,k ,2)) +betaxy*( - F(i+1,j+1,k ,0) + F(i+1,j+1,k ,1) + F(i+1,j+1,k ,2) + F(i+1,j+1,k ,0) + F(i+1,j+1,k ,1) + F(i+1,j+1,k ,2) - F(i ,j+1,k ,0) - F(i ,j+1,k ,1) - F(i ,j+1,k ,2) + F(i+1,j-1,k ,0) + F(i+1,j-1,k ,1) + F(i+1,j-1,k ,2) - F(i ,j-1,k ,0) - F(i ,j-1,k ,1) - F(i ,j-1,k ,2)) +betaxz*( - F(i+1,j ,k+1,0) + F(i+1,j ,k+1,1) + F(i+1,j ,k+1,2) + F(i+1,j ,k+1,0) + F(i+1,j ,k+1,1) + F(i+1,j ,k+1,2) - F(i ,j ,k+1,0) - F(i ,j ,k+1,1) - F(i ,j ,k+1,2) + F(i+1,j ,k-1,0) + F(i+1,j ,k-1,1) + F(i+1,j ,k-1,2) - F(i ,j ,k-1,0) - F(i ,j ,k-1,1) - F(i ,j ,k-1,2)) - +gammax*( + +gammax*( F(i+1,j+1,k+1,0) + F(i+1,j+1,k+1,1) + F(i+1,j+1,k+1,2) - F(i ,j+1,k+1,0) - F(i ,j+1,k+1,1) - F(i ,j+1,k+1,2) - + F(i+1,j-1,k+1,0) + F(i+1,j-1,k+1,1) + F(i+1,j-1,k+1,2) - - F(i ,j-1,k+1,0) - F(i ,j-1,k+1,1) - F(i ,j-1,k+1,2) + + F(i+1,j-1,k+1,0) + F(i+1,j-1,k+1,1) + F(i+1,j-1,k+1,2) + - F(i ,j-1,k+1,0) - F(i ,j-1,k+1,1) - F(i ,j-1,k+1,2) + F(i+1,j+1,k-1,0) + F(i+1,j+1,k-1,1) + F(i+1,j+1,k-1,2) - F(i ,j+1,k-1,0) - F(i ,j+1,k-1,1) - F(i ,j+1,k-1,2) + F(i+1,j-1,k-1,0) + F(i+1,j-1,k-1,1) + F(i+1,j-1,k-1,2) @@ -378,7 +378,7 @@ void warpx_push_pml_ex_f_ckc(int i, int j, int k, F(i+1,j ,k ,0) + F(i+1,j ,k ,1) + F(i+1,j ,k ,2) - F(i ,j ,k ,0) - F(i ,j ,k ,1) - F(i ,j ,k ,2)) +betaxz*( - F(i+1,j+1,k ,0) + F(i+1,j+1,k ,1) + F(i+1,j+1,k ,2) + F(i+1,j+1,k ,0) + F(i+1,j+1,k ,1) + F(i+1,j+1,k ,2) - F(i ,j+1,k ,0) - F(i ,j+1,k ,1) - F(i ,j+1,k ,2) + F(i+1,j-1,k ,0) + F(i+1,j-1,k ,1) + F(i+1,j-1,k ,2) - F(i ,j-1,k ,0) - F(i ,j-1,k ,1) - F(i ,j-1,k ,2)); @@ -388,45 +388,45 @@ void warpx_push_pml_ex_f_ckc(int i, int j, int k, #if (AMREX_SPACEDIM==3) AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_ey_f_ckc(int i, int j, int k, +void warpx_push_pml_ey_f_ckc(int i, int j, int k, Array4<Real> const& Eyfab, Array4<Real const> const& F, Real alphay, Real betayx, Real betayz,Real gammay) { - Eyfab(i,j,k,2) += alphay*( - F(i ,j+1,k ,0) + F(i ,j+1,k ,1) + F(i ,j+1,k ,2) - - F(i ,j ,k ,0) - F(i ,j ,k ,1) - F(i ,j ,k ,2)) + Eyfab(i,j,k,2) += alphay*( + F(i ,j+1,k ,0) + F(i ,j+1,k ,1) + F(i ,j+1,k ,2) + - F(i ,j ,k ,0) - F(i ,j ,k ,1) - F(i ,j ,k ,2)) +betayx*( F(i+1,j+1,k ,0) + F(i+1,j+1,k ,1) + F(i+1,j+1,k ,2) - - F(i+1,j ,k ,0) - F(i+1,j ,k ,1) - F(i+1,j ,k ,2) - + F(i-1,j+1,k ,0) + F(i-1,j+1,k ,1) + F(i-1,j+1,k ,2) + - F(i+1,j ,k ,0) - F(i+1,j ,k ,1) - F(i+1,j ,k ,2) + + F(i-1,j+1,k ,0) + F(i-1,j+1,k ,1) + F(i-1,j+1,k ,2) - F(i-1,j ,k ,0) - F(i-1,j ,k ,1) - F(i-1,j ,k ,2)) +betayz*( F(i ,j+1,k+1,0) + F(i ,j+1,k+1,1) + F(i ,j+1,k+1,2) - F(i ,j ,k+1,0) - F(i ,j ,k+1,1) - F(i ,j ,k+1,2) - + F(i ,j+1,k-1,0) + F(i ,j+1,k-1,1) + F(i ,j+1,k-1,2) + + F(i ,j+1,k-1,0) + F(i ,j+1,k-1,1) + F(i ,j+1,k-1,2) - F(i ,j ,k-1,0) - F(i ,j ,k-1,1) - F(i ,j ,k-1,2)) +gammay*( - F(i+1,j+1,k+1,0) + F(i+1,j+1,k+1,1) + F(i+1,j+1,k+1,2) + F(i+1,j+1,k+1,0) + F(i+1,j+1,k+1,1) + F(i+1,j+1,k+1,2) - F(i+1,j ,k+1,0) - F(i+1,j ,k+1,1) - F(i+1,j ,k+1,2) + F(i-1,j+1,k+1,0) + F(i-1,j+1,k+1,1) + F(i-1,j+1,k+1,2) - - F(i-1,j ,k+1,0) - F(i-1,j ,k+1,1) - F(i-1,j ,k+1,2) + - F(i-1,j ,k+1,0) - F(i-1,j ,k+1,1) - F(i-1,j ,k+1,2) + F(i+1,j+1,k-1,0) + F(i+1,j+1,k-1,1) + F(i+1,j+1,k-1,2) - - F(i+1,j ,k-1,0) - F(i+1,j ,k-1,1) - F(i+1,j ,k-1,2) + - F(i+1,j ,k-1,0) - F(i+1,j ,k-1,1) - F(i+1,j ,k-1,2) + F(i-1,j+1,k-1,0) + F(i-1,j+1,k-1,1) + F(i-1,j+1,k-1,2) - F(i-1,j ,k-1,0) - F(i-1,j ,k-1,1) - F(i-1,j ,k-1,2)); } #endif AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_ez_f_ckc(int i, int j, int k, +void warpx_push_pml_ez_f_ckc(int i, int j, int k, Array4<Real> const& Ezfab, Array4<Real const> const& F, Real alphaz, Real betazx, Real betazy,Real gammaz) { #if (AMREX_SPACEDIM==3) - Ezfab(i,j,k,2) += alphaz*( - F(i ,j ,k+1,0) + F(i ,j ,k+1,1) + F(i ,j ,k+1,2) + Ezfab(i,j,k,2) += alphaz*( + F(i ,j ,k+1,0) + F(i ,j ,k+1,1) + F(i ,j ,k+1,2) - F(i ,j ,k ,0) - F(i ,j ,k ,1) - F(i ,j ,k ,2)) +betazx*( F(i+1,j ,k+1,0) + F(i+1,j ,k+1,1) + F(i+1,j ,k+1,2) @@ -441,20 +441,20 @@ void warpx_push_pml_ez_f_ckc(int i, int j, int k, +gammaz*( F(i+1,j+1,k+1,0) + F(i+1,j+1,k+1,1) + F(i+1,j+1,k+1,2) - F(i+1,j+1,k ,0) - F(i+1,j+1,k ,1) - F(i+1,j+1,k ,2) - + F(i-1,j+1,k+1,0) + F(i-1,j+1,k+1,1) + F(i-1,j+1,k+1,2) + + F(i-1,j+1,k+1,0) + F(i-1,j+1,k+1,1) + F(i-1,j+1,k+1,2) - F(i-1,j+1,k ,0) - F(i-1,j+1,k ,1) - F(i-1,j+1,k ,2) - + F(i+1,j-1,k+1,0) + F(i+1,j-1,k+1,1) + F(i+1,j-1,k+1,2) + + F(i+1,j-1,k+1,0) + F(i+1,j-1,k+1,1) + F(i+1,j-1,k+1,2) - F(i+1,j-1,k ,0) - F(i+1,j-1,k ,1) - F(i+1,j-1,k ,2) + F(i-1,j-1,k+1,0) + F(i-1,j-1,k+1,1) + F(i-1,j-1,k+1,2) - F(i-1,j-1,k ,0) - F(i-1,j-1,k ,1) - F(i-1,j-1,k ,2)); #else Ezfab(i,j,k,2) += alphaz*( - F(i ,j+1,k ,0) + F(i ,j+1,k ,1) + F(i ,j+1,k ,2) + F(i ,j+1,k ,0) + F(i ,j+1,k ,1) + F(i ,j+1,k ,2) - F(i ,j ,k ,0) - F(i ,j ,k ,1) - F(i ,j ,k ,2)) +betazx*( F(i+1,j+1,k ,0) + F(i+1,j+1,k ,1) + F(i+1,j+1,k ,2) - F(i+1,j ,k ,0) - F(i+1,j ,k ,1) - F(i+1,j ,k ,2) - + F(i-1,j+1,k ,0) + F(i-1,j+1,k ,1) + F(i-1,j+1,k ,2) + + F(i-1,j+1,k ,0) + F(i-1,j+1,k ,1) + F(i-1,j+1,k ,2) - F(i-1,j ,k ,0) - F(i-1,j ,k ,1) - F(i-1,j ,k ,2)); #endif @@ -465,14 +465,14 @@ void warpx_push_pml_ez_f_ckc(int i, int j, int k, // PML F YEE AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_push_pml_F(int i, int j, int k, Array4<Real> const& F_fab, - Array4<Real const> const& Exfab, - Array4<Real const> const& Eyfab, - Array4<Real const> const& Ezfab, +void warpx_push_pml_F(int i, int j, int k, Array4<Real> const& F_fab, + Array4<Real const> const& Exfab, + Array4<Real const> const& Eyfab, + Array4<Real const> const& Ezfab, Real dtsdx, Real dtsdy, Real dtsdz) { - F_fab(i,j,k,0) += dtsdx * (Exfab(i,j,k,0) - Exfab(i-1,j,k,0) - + Exfab(i,j,k,1) - Exfab(i-1,j,k,1) + F_fab(i,j,k,0) += dtsdx * (Exfab(i,j,k,0) - Exfab(i-1,j,k,0) + + Exfab(i,j,k,1) - Exfab(i-1,j,k,1) + Exfab(i,j,k,2) - Exfab(i-1,j,k,2)); #if (AMREX_SPACEDIM==3) F_fab(i,j,k,1) += dtsdy * (Eyfab(i,j,k,0) - Eyfab(i,j-1,k,0) @@ -493,7 +493,7 @@ AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void warpx_damp_pml_ex (int i, int j, int k, Array4<Real> const& Ex, const Real* const sigma_fac_y, const Real* const sigma_fac_z, - const Real* const sigma_star_fac_x, + const Real* const sigma_star_fac_x, int xlo,int ylo, int zlo) { #if (AMREX_SPACEDIM == 3) @@ -509,10 +509,10 @@ void warpx_damp_pml_ex (int i, int j, int k, Array4<Real> const& Ex, //AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE // AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_damp_pml_ey (int i, int j, int k, Array4<Real> const& Ey, +void warpx_damp_pml_ey (int i, int j, int k, Array4<Real> const& Ey, const Real* const sigma_fac_z, const Real* const sigma_fac_x, - const Real* const sigma_star_fac_y, + const Real* const sigma_star_fac_y, int xlo,int ylo, int zlo) { #if (AMREX_SPACEDIM == 3) @@ -530,10 +530,10 @@ void warpx_damp_pml_ey (int i, int j, int k, Array4<Real> const& Ey, //AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE // AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE -void warpx_damp_pml_ez (int i, int j, int k, Array4<Real> const& Ez, +void warpx_damp_pml_ez (int i, int j, int k, Array4<Real> const& Ez, const Real* const sigma_fac_x, const Real* const sigma_fac_y, - const Real* const sigma_star_fac_z, + const Real* const sigma_star_fac_z, int xlo,int ylo, int zlo) { Ez(i,j,k,0) *= sigma_fac_x[i-xlo]; @@ -580,7 +580,7 @@ void warpx_damp_pml_by (int i, int j, int k, Array4<Real> const& By, By(i,j,k,1) *= sigma_star_fac_x[i-xlo]; } -//// damp pml bz +//// damp pml bz AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void warpx_damp_pml_bz (int i, int j, int k, Array4<Real> const& Bz, const Real* const sigma_star_fac_x, |