aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H31
1 files changed, 6 insertions, 25 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
index deb89b1d6..9ce910e3d 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
+++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
@@ -2,7 +2,9 @@
#define WARPX_FINITE_DIFFERENCE_SOLVER_H_
#include "WarpXAlgorithmSelection.H"
-#ifndef WARPX_DIM_RZ
+#ifdef WARPX_DIM_RZ
+ #include "FiniteDifferenceAlgorithms/CylindricalYeeAlgorithm.H"
+#else
#include "FiniteDifferenceAlgorithms/YeeAlgorithm.H"
#include "FiniteDifferenceAlgorithms/CKCAlgorithm.H"
#endif
@@ -21,29 +23,7 @@ class FiniteDifferenceSolver
// Constructor
FiniteDifferenceSolver ( int const fdtd_algo,
- std::array<amrex::Real,3> cell_size ) {
-
- // Register the type of finite-difference algorithm
- 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");
- }
- };
+ std::array<amrex::Real,3> cell_size );
void EvolveB ( VectorField& Bfield,
VectorField const& Efield,
@@ -53,7 +33,8 @@ class FiniteDifferenceSolver
int m_fdtd_algo;
#ifdef WARPX_DIM_RZ
- amrex::Real m_dr;
+ amrex::Real m_dr, m_rmin;
+ amrex::Real m_nmodes;
amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_r;
amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_z;
#else