7 #ifndef WARPX_SPECTRAL_FIELD_DATA_RZ_H_ 8 #define WARPX_SPECTRAL_FIELD_DATA_RZ_H_ 15 #include <AMReX_MultiFab.H> 28 #if defined(AMREX_USE_CUDA) 29 using FFTplans = amrex::LayoutData<cufftHandle>;
30 #elif defined(AMREX_USE_HIP) 31 using FFTplans = amrex::LayoutData<rocfft_plan>;
41 const amrex::BoxArray& realspace_ba,
43 const amrex::DistributionMapping& dm,
44 const int n_field_required,
50 void ForwardTransform (
const int lev,
const amrex::MultiFab& mf,
const int field_index,
52 void ForwardTransform (
const int lev,
const amrex::MultiFab& mf_r,
const int field_index_r,
53 const amrex::MultiFab& mf_t,
const int field_index_t);
54 void BackwardTransform (
const int lev, amrex::MultiFab& mf,
const int field_index,
56 void BackwardTransform (
const int lev, amrex::MultiFab& mf_r,
const int field_index_r,
57 amrex::MultiFab& mf_t,
const int field_index_t);
60 amrex::MultiFab
const & tempHTransformedSplit,
61 int field_index,
const bool is_nodal_z);
63 const int field_index,
64 amrex::MultiFab & tempHTransformedSplit,
65 const bool is_nodal_z);
104 void InitFilter (amrex::IntVect
const & filter_npass_each_dir,
bool const compensation,
107 void ApplyFilter (
const int lev,
int const field_index);
108 void ApplyFilter (
const int lev,
int const field_index1,
109 int const field_index2,
int const field_index3);
139 #endif // WARPX_SPECTRAL_FIELD_DATA_RZ_H_ amrex::LayoutData< SpectralHankelTransformer > MultiSpectralHankelTransformer
Definition: SpectralFieldDataRZ.H:36
SpectralFieldDataRZ()=default
SpectralFieldDataRZ & operator=(SpectralFieldDataRZ &&field_data)=default
void CopySpectralDataComp(const int src_comp, const int dest_comp)
Copy spectral data from component src_comp to component dest_comp of fields.
Definition: SpectralFieldDataRZ.H:74
~SpectralFieldDataRZ()
Definition: SpectralFieldDataRZ.cpp:180
amrex::LayoutData< SpectralBinomialFilter > BinomialFilter
Definition: SpectralFieldDataRZ.H:38
SpectralField tempHTransformed
Definition: SpectralFieldDataRZ.H:128
void ScaleDataComp(const int icomp, const amrex::Real scale_factor)
Scale the data on component icomp of fields by a given scale factor.
Definition: SpectralFieldDataRZ.H:98
HankelTransform::RealVector const & getKrArray(amrex::MFIter const &mfi) const
Definition: SpectralFieldDataRZ.H:112
SpectralShiftFactor zshift_FFTtoCell
Definition: SpectralFieldDataRZ.H:133
amrex::LayoutData< fftw_plan > FFTplans
Definition: SpectralFieldDataRZ.H:33
SpectralFieldIndex m_spectral_index
Definition: SpectralFieldDataRZ.H:123
FFTplans forward_plan
Definition: SpectralFieldDataRZ.H:130
Definition: SpectralFieldDataRZ.H:20
void FABZForwardTransform(amrex::MFIter const &mfi, amrex::Box const &realspace_bx, amrex::MultiFab const &tempHTransformedSplit, int field_index, const bool is_nodal_z)
Definition: SpectralFieldDataRZ.cpp:208
BinomialFilter binomialfilter
Definition: SpectralFieldDataRZ.H:135
void ForwardTransform(const int lev, const amrex::MultiFab &mf, const int field_index, const int i_comp=0)
Definition: SpectralFieldDataRZ.cpp:398
SpectralField fields
Definition: SpectralFieldDataRZ.H:117
FFTplans backward_plan
Definition: SpectralFieldDataRZ.H:130
MultiSpectralHankelTransformer multi_spectral_hankel_transformer
Definition: SpectralFieldDataRZ.H:134
Definition: SpectralKSpaceRZ.H:18
void InitFilter(amrex::IntVect const &filter_npass_each_dir, bool const compensation, SpectralKSpaceRZ const &k_space)
Definition: SpectralFieldDataRZ.cpp:702
Definition: SpectralFieldData.H:32
int m_n_fields
Definition: SpectralFieldDataRZ.H:124
amrex::FabArray< amrex::BaseFab< Complex > > SpectralField
Definition: SpectralFieldData.H:30
void ApplyFilter(const int lev, int const field_index)
Definition: SpectralFieldDataRZ.cpp:719
int n_rz_azimuthal_modes
Definition: SpectralFieldDataRZ.H:119
SpectralShiftFactor zshift_FFTfromCell
Definition: SpectralFieldDataRZ.H:133
amrex::LayoutData< amrex::Gpu::DeviceVector< Complex > > SpectralShiftFactor
Definition: SpectralKSpace.H:32
void ZeroOutDataComp(const int icomp)
Set to zero the data on component icomp of fields.
Definition: SpectralFieldDataRZ.H:86
void FABZBackwardTransform(amrex::MFIter const &mfi, amrex::Box const &realspace_bx, const int field_index, amrex::MultiFab &tempHTransformedSplit, const bool is_nodal_z)
Definition: SpectralFieldDataRZ.cpp:306
SpectralField tmpSpectralField
Definition: SpectralFieldDataRZ.H:129
void BackwardTransform(const int lev, amrex::MultiFab &mf, const int field_index, const int i_comp=0)
Definition: SpectralFieldDataRZ.cpp:522