8#ifndef WARPX_PML_CURRENT_H_
9#define WARPX_PML_CURRENT_H_
25#if defined(WARPX_DIM_3D)
27 if (sigjy[k-ylo]+sigjz[l-zlo] == 0){
32 alpha_xy = sigjy[k-ylo]/(sigjy[k-ylo]+sigjz[l-zlo]);
33 alpha_xz = sigjz[l-zlo]/(sigjy[k-ylo]+sigjz[l-zlo]);
52#if defined(WARPX_DIM_3D)
54 if (sigjx[j-xlo]+sigjz[l-zlo] == 0){
59 alpha_yx = sigjx[j-xlo]/(sigjx[j-xlo]+sigjz[l-zlo]);
60 alpha_yz = sigjz[l-zlo]/(sigjx[j-xlo]+sigjz[l-zlo]);
80#if defined(WARPX_DIM_3D)
82 if (sigjx[j-xlo]+sigjy[k-ylo]==0){
87 alpha_zx = sigjx[j-xlo]/(sigjx[j-xlo]+sigjy[k-ylo]);
88 alpha_zy = sigjy[k-ylo]/(sigjx[j-xlo]+sigjy[k-ylo]);
104 int xlo,
int ylo,
int zlo)
106#if defined(WARPX_DIM_3D)
107 jx(j,k,l) = jx(j,k,l) * sigsjx[j-xlo] * sigjy[k-ylo] * sigjz[l-zlo];
109 jx(j,k,l) = jx(j,k,l) * sigsjx[j-xlo] * sigjz[k-zlo];
120 int xlo,
int ylo,
int zlo)
122#if defined(WARPX_DIM_3D)
123 jy(j,k,l) = jy(j,k,l) * sigjx[j-xlo] * sigsjy[k-ylo] * sigjz[l-zlo];
125 jy(j,k,l) = jy(j,k,l) * sigjx[j-xlo] * sigjz[k-zlo];
136 int xlo,
int ylo,
int zlo)
138#if defined(WARPX_DIM_3D)
139 jz(j,k,l) = jz(j,k,l) * sigjx[j-xlo] * sigjy[k-ylo] * sigsjz[l-zlo];
141 jz(j,k,l) = jz(j,k,l) * sigjx[j-xlo] * sigsjz[k-zlo];
#define AMREX_GPU_HOST_DEVICE
AMREX_GPU_HOST_DEVICE AMREX_INLINE void push_ey_pml_current(int j, int k, int l, amrex::Array4< amrex::Real > const &Ey, amrex::Array4< amrex::Real const > const &jy, amrex::Real const *const sigjx, amrex::Real const *const sigjz, int xlo, int zlo, amrex::Real mu_c2_dt)
Definition PML_current.H:44
AMREX_GPU_HOST_DEVICE AMREX_INLINE void push_ez_pml_current(int j, int k, int l, amrex::Array4< amrex::Real > const &Ez, amrex::Array4< amrex::Real const > const &jz, amrex::Real const *const sigjx, amrex::Real const *const sigjy, int xlo, int ylo, amrex::Real mu_c2_dt)
Definition PML_current.H:72
AMREX_GPU_HOST_DEVICE AMREX_INLINE void damp_jz_pml(int j, int k, int l, amrex::Array4< amrex::Real > const &jz, amrex::Real const *const sigjx, amrex::Real const *const sigjy, amrex::Real const *const sigsjz, int xlo, int ylo, int zlo)
Definition PML_current.H:131
AMREX_GPU_HOST_DEVICE AMREX_INLINE void damp_jy_pml(int j, int k, int l, amrex::Array4< amrex::Real > const &jy, amrex::Real const *const sigjx, amrex::Real const *const sigsjy, amrex::Real const *const sigjz, int xlo, int ylo, int zlo)
Definition PML_current.H:115
AMREX_GPU_HOST_DEVICE AMREX_INLINE void damp_jx_pml(int j, int k, int l, amrex::Array4< amrex::Real > const &jx, amrex::Real const *const sigsjx, amrex::Real const *const sigjy, amrex::Real const *const sigjz, int xlo, int ylo, int zlo)
Definition PML_current.H:99
AMREX_GPU_HOST_DEVICE AMREX_INLINE void push_ex_pml_current(int j, int k, int l, amrex::Array4< amrex::Real > const &Ex, amrex::Array4< amrex::Real const > const &jx, amrex::Real const *const sigjy, amrex::Real const *const sigjz, int ylo, int zlo, amrex::Real mu_c2_dt)
Definition PML_current.H:17
__host__ __device__ void ignore_unused(const Ts &...)
ArrayND< T, 4, true > Array4
@ xz
Definition PMLComponent.H:16
@ zx
Definition PMLComponent.H:18
@ zy
Definition PMLComponent.H:18
@ yz
Definition PMLComponent.H:17
@ yx
Definition PMLComponent.H:17
@ xy
Definition PMLComponent.H:16