diff options
author | 2020-01-27 12:11:44 -0800 | |
---|---|---|
committer | 2020-01-27 12:11:44 -0800 | |
commit | f418ee4d2757364d2b666aad26bac94548f30f83 (patch) | |
tree | 7841b4d0014b9b21a6a535e0923eea603f430313 /Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H | |
parent | 8c51ade2f97743402830feead1db7ad5135c6ed7 (diff) | |
download | WarpX-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.H | 13 |
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 > |