8 #ifndef WARPX_PML_CURRENT_H_
9 #define WARPX_PML_CURRENT_H_
20 amrex::Real
const *
const sigjy,
21 amrex::Real
const *
const sigjz,
25 #if defined(WARPX_DIM_3D)
26 amrex::Real alpha_xy, alpha_xz;
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]);
47 amrex::Real
const *
const sigjx,
48 amrex::Real
const *
const sigjz,
52 #if defined(WARPX_DIM_3D)
53 amrex::Real alpha_yx, alpha_yz;
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]);
75 amrex::Real
const *
const sigjx,
76 amrex::Real
const *
const sigjy,
80 #if defined(WARPX_DIM_3D)
81 amrex::Real alpha_zx, alpha_zy;
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]);
101 amrex::Real
const*
const sigsjx,
102 amrex::Real
const*
const sigjy,
103 amrex::Real
const*
const sigjz,
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];
117 amrex::Real
const *
const sigjx,
118 amrex::Real
const *
const sigsjy,
119 amrex::Real
const *
const sigjz,
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];
133 amrex::Real
const *
const sigjx,
134 amrex::Real
const *
const sigjy,
135 amrex::Real
const *
const sigsjz,
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
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void ignore_unused(const Ts &...)
@ 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