From 658c6888a1cf1de2828a187d6d051a6bc5a2f4cb Mon Sep 17 00:00:00 2001 From: Remi Lehe Date: Mon, 27 Jan 2020 13:51:10 -0800 Subject: Fix compilation errors --- .../FiniteDifferenceSolver.cpp | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp') diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp new file mode 100644 index 000000000..d89e6e9d3 --- /dev/null +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp @@ -0,0 +1,30 @@ +#include "FiniteDifferenceSolver.H" +#include "WarpX.H" + +// Constructor +FiniteDifferenceSolver::FiniteDifferenceSolver ( int const fdtd_algo, + std::array 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]; + m_nmodes = WarpX::GetInstance().n_rz_azimuthal_modes; + m_rmin = WarpX::GetInstance().Geom(0).ProbLo(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"); + } +}; -- cgit v1.2.3