aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H
diff options
context:
space:
mode:
authorGravatar David Grote <grote1@llnl.gov> 2020-07-27 09:19:47 -0700
committerGravatar GitHub <noreply@github.com> 2020-07-27 09:19:47 -0700
commitdf0ec5715c081e71f7f4bcd13a1a895fcd942436 (patch)
tree70e203bd6a8e06a0eda68695ca0eb1d7687c5f6b /Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H
parentf68983f03ff24d6207c76a6a0ca30ed87ce1adad (diff)
downloadWarpX-df0ec5715c081e71f7f4bcd13a1a895fcd942436.tar.gz
WarpX-df0ec5715c081e71f7f4bcd13a1a895fcd942436.tar.zst
WarpX-df0ec5715c081e71f7f4bcd13a1a895fcd942436.zip
Added k-space filter for RZ spectral solver (#1006)
* Added k-space filter for RZ spectral solver * Added SpectralBinomialFilter files for RZ spectral solver * Added RZspectral binomial filter to CMakeLists.txt * Update Docs/source/running_cpp/parameters.rst Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Docs/source/running_cpp/parameters.rst Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/FieldSolver/SpectralSolver/SpectralBinomialFilter.H Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/FieldSolver/SpectralSolver/SpectralBinomialFilter.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Fixed literals in SpectralBinomialFilter.cpp * For RZ spectral, apply filter to rho old and new * Added SpectralBinomialFilter::InitFilterArray * For SpectralBinomialFilter, combine R and Z into one routine Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * For SpectralBinomialFilter, combine R and Z into one routine, part 2 Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * For SpectralBinomialFilter, combine R and Z into one routine, part 3 Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H')
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H19
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H b/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H
index e1179d9cf..7a6f80278 100644
--- a/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H
+++ b/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.H
@@ -80,6 +80,24 @@ class SpectralSolverRZ
algorithm->pushSpectralFields(field_data);
};
+ /* \brief Initialize K space filtering arrays */
+ void InitFilter (amrex::IntVect const & filter_npass_each_dir,
+ bool const compensation)
+ {
+ field_data.InitFilter(filter_npass_each_dir, compensation, k_space);
+ };
+
+ /* \brief Apply K space filtering for a scalar */
+ void ApplyFilter (int const field_index)
+ {
+ field_data.ApplyFilter(field_index);
+ };
+
+ /* \brief Apply K space filtering for a vector */
+ void ApplyFilter (int const field_index1, int const field_index2, int const field_index3)
+ {
+ field_data.ApplyFilter(field_index1, field_index2, field_index3);
+ };
/**
* \brief Public interface to call the member function ComputeSpectralDivE
* of the base class SpectralBaseAlgorithmRZ from objects of class SpectralSolverRZ
@@ -120,6 +138,7 @@ class SpectralSolverRZ
private:
+ SpectralKSpaceRZ k_space; // Save the instance to initialize filtering
SpectralFieldDataRZ field_data; // Store field in spectral space
// and perform the Fourier transforms
std::unique_ptr<SpectralBaseAlgorithmRZ> algorithm;