diff options
author | 2020-07-27 09:19:47 -0700 | |
---|---|---|
committer | 2020-07-27 09:19:47 -0700 | |
commit | df0ec5715c081e71f7f4bcd13a1a895fcd942436 (patch) | |
tree | 70e203bd6a8e06a0eda68695ca0eb1d7687c5f6b /Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H | |
parent | f68983f03ff24d6207c76a6a0ca30ed87ce1adad (diff) | |
download | WarpX-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/SpectralFieldDataRZ.H')
-rw-r--r-- | Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H b/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H index d0e29d070..a2ab2b9cb 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H +++ b/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H @@ -10,6 +10,7 @@ #include "SpectralKSpaceRZ.H" #include "SpectralFieldData.H" #include "SpectralHankelTransform/SpectralHankelTransformer.H" +#include "SpectralBinomialFilter.H" #include <AMReX_MultiFab.H> /* \brief Class that stores the fields in spectral space, and performs the @@ -28,9 +29,11 @@ class SpectralFieldDataRZ #else using FFTplans = amrex::LayoutData<fftw_plan>; #endif - // Similarly, define the Hankel transformers for each box. + // Similarly, define the Hankel transformers and filter for each box. using MultiSpectralHankelTransformer = amrex::LayoutData<SpectralHankelTransformer>; + using BinomialFilter = amrex::LayoutData<SpectralBinomialFilter>; + SpectralFieldDataRZ(const amrex::BoxArray& realspace_ba, const SpectralKSpaceRZ& k_space, const amrex::DistributionMapping& dm, @@ -57,6 +60,12 @@ class SpectralFieldDataRZ amrex::MultiFab & tempHTransformedSplit, const bool is_nodal_z); + void InitFilter (amrex::IntVect const & filter_npass_each_dir, bool const compensation, + SpectralKSpaceRZ const & k_space); + + void ApplyFilter (int const field_index); + void ApplyFilter (int const field_index1, int const field_index2, int const field_index3); + // Returns an array that holds the kr for all of the modes HankelTransform::RealVector const & getKrArray(amrex::MFIter const & mfi) const { return multi_spectral_hankel_transformer[mfi].getKrArray(); @@ -78,6 +87,7 @@ class SpectralFieldDataRZ // a cell-centered grid in real space, instead of a nodal grid SpectralShiftFactor zshift_FFTfromCell, zshift_FFTtoCell; MultiSpectralHankelTransformer multi_spectral_hankel_transformer; + BinomialFilter binomialfilter; }; |