aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-10 10:52:31 -0800
committerGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-10 13:45:11 -0800
commit9035ee165054e25aedf98d97f16786d8d5f2965a (patch)
tree0f0aafafbe0361ec78410dce5aa0491135cde17e /Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
parent160d752af70ec454c7b220705378c42e0df9b29a (diff)
downloadWarpX-9035ee165054e25aedf98d97f16786d8d5f2965a.tar.gz
WarpX-9035ee165054e25aedf98d97f16786d8d5f2965a.tar.zst
WarpX-9035ee165054e25aedf98d97f16786d8d5f2965a.zip
Started implementing finite difference solver
Added Yee algorithm
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H38
1 files changed, 38 insertions, 0 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
new file mode 100644
index 000000000..c1fdef5dd
--- /dev/null
+++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
@@ -0,0 +1,38 @@
+#ifndef WARPX_FINITE_DIFFERENCE_SOLVER_H_
+#define WARPX_FINITE_DIFFERENCE_SOLVER_H_
+
+/**
+ * \brief Top-level class for the electromagnetic finite-difference solver
+ *
+ * TODO
+ */
+class FiniteDifferenceSolver
+{
+ public:
+
+ using VectorField = std::array< std::unique_ptr<amrex::MultiFab>, 3 >;
+ using ConstVectorField = std::array< std::unique_ptr<amrex::MultiFab const>, 3 >;
+
+ // Constructor
+ void FiniteDifferenceSolver( std::array<Real,3> dx );
+
+ void EvolveB( VectorField Bfield,
+ ConstVectorField Efield,
+ amrex::Real dt ) const;
+
+ };
+
+ private:
+
+ int fdtd_algo;
+
+ amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_x;
+ amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_y;
+ amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_z;
+
+ template< typename fdtd_algo >
+ void EvolveB
+
+};
+
+#endif // WARPX_FINITE_DIFFERENCE_SOLVER_H_