From 0564feb5041728173716ef251f1d66d37c314770 Mon Sep 17 00:00:00 2001
From: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Date: Thu, 6 Aug 2020 06:30:14 -0700
Subject: Galilean PSATD: current correction and rho-free formulation (#1151)
* Introduce option to update E with/without rho
* Clean up
* Implement current correction for Galilean PSATD (needs bug fix)
* Include equations in docs
* Fix EOL whitespaces error
* Small clean-up
* Implement Galilean PSATD update without rho
* Clean up
* Fix bug in current correction
* Fix EOL whitespaces
* Clean up
* Fix unused import
* Remove unused variable
* [skip CI] Improve docs
* Clean up style
* Fix EOL whitespaces
* Fix EOL whitespaces
* Clean up style
* Revert analysis script to old status
* [skip CI] Clean up style
* Make equations more human-readable and improve comments
* 2D test with current correction works
* Temporary build fix as in #1197
* 3D test with current correction works
* Rename th and th_star as theta and theta_star
* Fix a couple of wrong comments
* Add vertical spaces to improve readability
* Improve documentation
* Function CurrentCorrection is now pure
* 2D benchmark fields data are now correct
* Add limits of coefficients for nu=-1
* Change default of update_with_rho for Galilean PSATD
---
.../SpectralAlgorithms/SpectralBaseAlgorithm.H | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
(limited to 'Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H')
diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H
index 2a34d21ab..73ad773f3 100644
--- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H
+++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H
@@ -33,19 +33,17 @@ class SpectralBaseAlgorithm
/**
* \brief Virtual function for current correction in Fourier space
- * (equation (19) of https://doi.org/10.1016/j.jcp.2013.03.010).
- * This virtual function is not pure: it can be overridden in derived
- * classes (e.g. PsatdAlgorithm, PMLPsatdAlgorithm), but a base-class
- * implementation is provided (empty implementation in this case).
+ * ( Vay et al, 2013).
+ * This virtual function is pure and must be defined in derived classes.
*
- * \param[in,out] field_data all fields in Fourier space
- * \param[in,out] current three-dimensional array of unique pointers to MultiFab
- * storing the three components of the current density
- * \param[in] rho unique pointer to MultiFab storing the charge density
+ * \param[in,out] field_data All fields in Fourier space
+ * \param[in,out] current Array of unique pointers to \c MultiFab storing
+ * the three components of the current density
+ * \param[in] rho Unique pointer to \c MultiFab storing the charge density
*/
- virtual void CurrentCorrection ( SpectralFieldData& field_data,
- std::array,3>& current,
- const std::unique_ptr& rho ) {};
+ virtual void CurrentCorrection (SpectralFieldData& field_data,
+ std::array,3>& current,
+ const std::unique_ptr& rho) = 0;
/**
* \brief Virtual function for Vay current deposition in Fourier space
--
cgit v1.2.3