aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H35
1 files changed, 35 insertions, 0 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
index b23e3bbed..e60ceed3e 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
+++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H
@@ -9,6 +9,7 @@
#define WARPX_FINITE_DIFFERENCE_SOLVER_H_
#include <AMReX_MultiFab.H>
+#include "BoundaryConditions/PML.H"
/**
* \brief Top-level class for the electromagnetic finite-difference solver
@@ -53,6 +54,20 @@ class FiniteDifferenceSolver
void ComputeDivE ( const std::array<std::unique_ptr<amrex::MultiFab>,3>& Efield,
amrex::MultiFab& divE );
+ void EvolveBPML ( std::array< amrex::MultiFab*, 3 > Bfield,
+ std::array< amrex::MultiFab*, 3 > const Efield,
+ amrex::Real const dt );
+
+ void EvolveEPML ( std::array< amrex::MultiFab*, 3 > Efield,
+ std::array< amrex::MultiFab*, 3 > const Bfield,
+ std::array< amrex::MultiFab*, 3 > const Jfield,
+ amrex::MultiFab* const Ffield,
+ MultiSigmaBox const& sigba,
+ amrex::Real const dt, bool pml_has_particles );
+
+ void EvolveFPML ( amrex::MultiFab* Ffield,
+ std::array< amrex::MultiFab*, 3 > const Efield,
+ amrex::Real const dt );
private:
@@ -130,6 +145,26 @@ class FiniteDifferenceSolver
const std::array<std::unique_ptr<amrex::MultiFab>,3>& Efield,
amrex::MultiFab& divE );
+ template< typename T_Algo >
+ void EvolveBPMLCartesian (
+ std::array< amrex::MultiFab*, 3 > Bfield,
+ std::array< amrex::MultiFab*, 3 > const Efield,
+ amrex::Real const dt );
+
+ template< typename T_Algo >
+ void EvolveEPMLCartesian (
+ std::array< amrex::MultiFab*, 3 > Efield,
+ std::array< amrex::MultiFab*, 3 > const Bfield,
+ std::array< amrex::MultiFab*, 3 > const Jfield,
+ amrex::MultiFab* const Ffield,
+ MultiSigmaBox const& sigba,
+ amrex::Real const dt, bool pml_has_particles );
+
+ template< typename T_Algo >
+ void EvolveFPMLCartesian ( amrex::MultiFab* Ffield,
+ std::array< amrex::MultiFab*, 3 > const Efield,
+ amrex::Real const dt );
+
#endif
};