diff options
author | 2020-02-26 11:10:53 -0800 | |
---|---|---|
committer | 2020-02-26 11:10:53 -0800 | |
commit | 846c54ec7627513cb470e69aee32eac1b5fc45e7 (patch) | |
tree | 06871dba8ae9b612453f7537dcca2a6b0e6dea54 /Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H | |
parent | 7ded8dbbea0a294b862ce174a065022b15898a00 (diff) | |
download | WarpX-846c54ec7627513cb470e69aee32eac1b5fc45e7.tar.gz WarpX-846c54ec7627513cb470e69aee32eac1b5fc45e7.tar.zst WarpX-846c54ec7627513cb470e69aee32eac1b5fc45e7.zip |
Use C++ templates in `EvolveE` function (#676)
* Prepare EvolveE
* Cartesian equations without current
* Implement Cartesian EvolveE
* Progress towards cylindrical solver
* Correct typo
* Implement cylindrical solver (without on-axis condition)
* Fix compilation errors
* Add regularization for RZ solver
* Added correction term for F
* Remove file for nodal stencil
* Apply stylistic changes to EvolveE
* Fix compilation errors
* Correction to avoid out of bound
* Remove references to old file
* Correct bug in EvolveB
* Implement correction on axis for Et
* Remove previous field update functions
* Remove unused code
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H')
-rw-r--r-- | Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H index 4bf88077f..1e042da27 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H @@ -37,6 +37,13 @@ class FiniteDifferenceSolver void EvolveB ( std::array< std::unique_ptr<amrex::MultiFab>, 3 >& Bfield, std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Efield, amrex::Real const dt ); + + void EvolveE ( std::array< std::unique_ptr<amrex::MultiFab>, 3 >& Efield, + std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Bfield, + std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Jfield, + std::unique_ptr<amrex::MultiFab> const& Ffield, + amrex::Real const dt ); + private: int m_fdtd_algo; @@ -63,12 +70,28 @@ class FiniteDifferenceSolver std::array< std::unique_ptr<amrex::MultiFab>, 3 >& Bfield, std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Efield, amrex::Real const dt ); + + template< typename T_Algo > + void EvolveECylindrical ( + std::array< std::unique_ptr<amrex::MultiFab>, 3 >& Efield, + std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Bfield, + std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Jfield, + std::unique_ptr<amrex::MultiFab> const& Ffield, + amrex::Real const dt ); #else template< typename T_Algo > void EvolveBCartesian ( std::array< std::unique_ptr<amrex::MultiFab>, 3 >& Bfield, std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Efield, amrex::Real const dt ); + + template< typename T_Algo > + void EvolveECartesian ( + std::array< std::unique_ptr<amrex::MultiFab>, 3 >& Efield, + std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Bfield, + std::array< std::unique_ptr<amrex::MultiFab>, 3 > const& Jfield, + std::unique_ptr<amrex::MultiFab> const& Ffield, + amrex::Real const dt ); #endif }; |