diff options
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H')
-rw-r--r-- | Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H | 31 |
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 |