From fe0f8a45cd7ceab2b4797135fd14fb6f130041e4 Mon Sep 17 00:00:00 2001 From: David Grote Date: Fri, 13 Mar 2020 15:17:25 -0700 Subject: Fixed FDTD coefficients of E push from F (#804) --- .../FieldSolver/FiniteDifferenceSolver/EvolveE.cpp | 26 +++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp') diff --git a/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp b/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp index ebe3dfcdd..22067b7b6 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp +++ b/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp @@ -137,13 +137,13 @@ void FiniteDifferenceSolver::EvolveECartesian ( amrex::ParallelFor(tex, tey, tez, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - Ex(i, j, k) += T_Algo::UpwardDx(F, coefs_x, n_coefs_x, i, j, k); + Ex(i, j, k) += c2 * dt * T_Algo::UpwardDx(F, coefs_x, n_coefs_x, i, j, k); }, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - Ey(i, j, k) += T_Algo::UpwardDy(F, coefs_y, n_coefs_y, i, j, k); + Ey(i, j, k) += c2 * dt * T_Algo::UpwardDy(F, coefs_y, n_coefs_y, i, j, k); }, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - Ez(i, j, k) += T_Algo::UpwardDz(F, coefs_z, n_coefs_z, i, j, k); + Ez(i, j, k) += c2 * dt * T_Algo::UpwardDz(F, coefs_z, n_coefs_z, i, j, k); } ); @@ -303,10 +303,10 @@ void FiniteDifferenceSolver::EvolveECylindrical ( amrex::ParallelFor(ter, tet, tez, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - Er(i, j, 0, 0) += T_Algo::UpwardDr(F, coefs_r, n_coefs_r, i, j, 0, 0); + Er(i, j, 0, 0) += c2 * dt * T_Algo::UpwardDr(F, coefs_r, n_coefs_r, i, j, 0, 0); for (int m=1; m= 2) { // needs to have at least m=0 and m=1 int const m=1; - Et(i, j, 0, 2*m-1) += m * F(i+1, j, 0, 2*m )/dr; // Real part - Et(i, j, 0, 2*m ) += -m * F(i+1, j, 0, 2*m-1)/dr; // Imaginary part + Et(i, j, 0, 2*m-1) += c2 * dt * m * F(i+1, j, 0, 2*m )/dr; // Real part + Et(i, j, 0, 2*m ) += c2 * dt * -m * F(i+1, j, 0, 2*m-1)/dr; // Imaginary part } } }, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - Ez(i, j, 0, 0) += T_Algo::UpwardDz(F, coefs_z, n_coefs_z, i, j, 0, 0); + Ez(i, j, 0, 0) += c2 * dt * T_Algo::UpwardDz(F, coefs_z, n_coefs_z, i, j, 0, 0); for (int m=1; m