diff options
author | 2020-01-27 13:51:10 -0800 | |
---|---|---|
committer | 2020-01-27 13:51:10 -0800 | |
commit | 658c6888a1cf1de2828a187d6d051a6bc5a2f4cb (patch) | |
tree | 152f9a2db1ad6f3f02fed0b44b1cc7771d6b3621 /Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp | |
parent | f418ee4d2757364d2b666aad26bac94548f30f83 (diff) | |
download | WarpX-658c6888a1cf1de2828a187d6d051a6bc5a2f4cb.tar.gz WarpX-658c6888a1cf1de2828a187d6d051a6bc5a2f4cb.tar.zst WarpX-658c6888a1cf1de2828a187d6d051a6bc5a2f4cb.zip |
Fix compilation errors
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp')
-rw-r--r-- | Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
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<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]; + 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"); + } +}; |