aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-27 13:51:10 -0800
committerGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-27 13:51:10 -0800
commit658c6888a1cf1de2828a187d6d051a6bc5a2f4cb (patch)
tree152f9a2db1ad6f3f02fed0b44b1cc7771d6b3621 /Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.cpp
parentf418ee4d2757364d2b666aad26bac94548f30f83 (diff)
downloadWarpX-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.cpp30
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");
+ }
+};