aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-27 12:11:44 -0800
committerGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-27 12:11:44 -0800
commitf418ee4d2757364d2b666aad26bac94548f30f83 (patch)
tree7841b4d0014b9b21a6a535e0923eea603f430313 /Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
parent8c51ade2f97743402830feead1db7ad5135c6ed7 (diff)
downloadWarpX-f418ee4d2757364d2b666aad26bac94548f30f83.tar.gz
WarpX-f418ee4d2757364d2b666aad26bac94548f30f83.tar.zst
WarpX-f418ee4d2757364d2b666aad26bac94548f30f83.zip
Implement cylindrical Yee algorithm
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H13
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
index c08810f85..deb89b1d6 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
+++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
@@ -27,12 +27,19 @@ class FiniteDifferenceSolver
m_fdtd_algo = fdtd_algo;
// Calculate coefficients of finite-difference stencil
+#ifdef WARPX_DIM_RZ
+ m_dr = cell_size[0];
+ if (fdtd_algo == MaxwellSolverAlgo::Yee){
+ CylindricalYeeAlgorithm::InitializeStencilCoefficients( cell_size,
+ stencil_coefs_r, stencil_coefs_z );
+#else
if (fdtd_algo == MaxwellSolverAlgo::Yee){
YeeAlgorithm::InitializeStencilCoefficients( cell_size,
stencil_coefs_x, stencil_coefs_y, stencil_coefs_z );
} else if (fdtd_algo == MaxwellSolverAlgo::CKC) {
CKCAlgorithm::InitializeStencilCoefficients( cell_size,
stencil_coefs_x, stencil_coefs_y, stencil_coefs_z );
+#endif
} else {
amrex::Abort("Unknown algorithm");
}
@@ -45,9 +52,15 @@ class FiniteDifferenceSolver
int m_fdtd_algo;
+#ifdef WARPX_DIM_RZ
+ amrex::Real m_dr;
+ amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_r;
+ amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_z;
+#else
amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_x;
amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_y;
amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_z;
+#endif
#ifdef WARPX_DIM_RZ
template< typename T_Algo >