XGC1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
FourierFilter Class Reference

#include <fourier_filter.hpp>

Collaboration diagram for FourierFilter:
Collaboration graph
[legend]

Classes

struct  Options
 

Public Types

enum class  ScrapeOffLayerMethod { BlendWindow =0 , RetainSineModes , RetainAllModes }
 
enum class  FilterMode {
  None =0 , SingleN , M_Range , N_M_Range ,
  N_Range_M_Resonant
}
 

Public Member Functions

 FourierFilter ()
 
 FourierFilter (NLReader::NamelistReader &nlr, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma)
 
void m_range (const DomainDecomposition< DeviceType > &pol_decomp, const Options &options, const View< double *, CLayout, HostType > &x) const
 
void m_range (const DomainDecomposition< DeviceType > &pol_decomp, const Options &options, const View< double **, CLayout, HostType > &x) const
 
void m_range (const DomainDecomposition< DeviceType > &pol_decomp, const Options &options, const View< double *, CLayout, DeviceType > &x) const
 
void m_range (const DomainDecomposition< DeviceType > &pol_decomp, const Options &options, const View< double **, CLayout, DeviceType > &x) const
 
void n_m_range (int nplanes, const View< double *, CLayout, HostType > &view, const Options &options) const
 
void apply (const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const Options &options, const View< double *, CLayout, HostType > &view) const
 
void destroy ()
 

Static Public Member Functions

static void single_n (const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const View< double *, CLayout, HostType > &view, const Options &options)
 
static void single_n_flex (const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const View< double *, CLayout, HostType > &view_in, const View< double **, CLayout, HostType > &result, const Options &options, int ntor_num)
 

Public Attributes

View< int *, CLayout, DeviceTypem_limit
 
View< double *, CLayout, DeviceTypeqsafety
 
View< int *, CLayout, DeviceTypem_max_surf
 
int mres_q
 

Private Member Functions

int get_dir (int ntor_real) const
 
void fft_execute (int isurf, const View< double *, CLayout, HostType > &x, const View< Complex *, CLayout, HostType > &spec) const
 
void set_nonaligned (const View< double **, CLayout, HostType > &x) const
 
void set_nonaligned (const View< double **, CLayout, DeviceType > &x) const
 
void m_range_one_surf (int isurf, const View< double **, CLayout, HostType > &x, const Options &options) const
 
void m_range_all_surfs (const View< double **, CLayout, DeviceType > &x, const Options &options) const
 
int get_n_points (int n_nodes) const
 
int get_n_frequencies (int n_points) const
 

Private Attributes

int nsurf
 
View< bool *, CLayout, HostTyperun_filter
 
int max_n_points
 
View< bool *, CLayout, HostTypeis_periodic
 
View< int *, CLayout, DeviceTypennodes_on_surf
 
View< int *, CLayout, DeviceTypenfreq_on_surf
 
View< int *, CLayout, HostTypenuni_on_surf
 
View< int *, CLayout, DeviceTypenode_offsets
 
View< int *, CLayout, HostTypenode_offsets_h
 
View< int *, CLayout, DeviceTypefreq_offsets
 
View< int *, CLayout, HostTypeuni_offsets
 
View< int *, CLayout, DeviceTypenode_surf_map
 
View< int *, CLayout, DeviceTypefreq_surf_map
 
View< double *, CLayout, DeviceTypeinv_npt
 
View< int **, CLayout, DeviceTypem_minmax
 
std::vector< FFTWrapperfft_plan
 
View< int *, CLayout, DeviceTypemapping_all
 
View< double *, CLayout, DeviceTypetheta_all
 
View< double *, CLayout, HostTypetheta_all_h
 
View< UniformRange *, CLayout, HostTypetheta_uniform_range_all
 
View< double *, CLayout, DeviceTypewindow_all
 
std::vector< SplinePrecomputations< HostType > > spline_precomputation
 
int b_sign
 
int wedge_n
 
int nplanes
 
View< double *, CLayout, DeviceTypepsi_surf
 
View< double **, CLayout, DeviceTypex_ordered_all
 
View< double **, CLayout, HostTypex_ordered_h_view
 
std::vector< std::vector< View< double *, CLayout, HostType > > > x_ordered_h
 
View< double **, CLayout, HostTypex_uniform_h_view
 
std::vector< std::vector< View< double *, CLayout, HostType > > > x_uniform_h
 
View< Complex **, CLayout, DeviceTypespec_all
 
View< Complex **, CLayout, HostTypespec_h_view
 
std::vector< std::vector< View< Complex *, CLayout, HostType > > > spec_h
 
View< int *, CLayout, DeviceTypenon_aligned_vert
 
View< int **, CLayout, DeviceTypenon_aligned_ff_idx
 
View< double **, CLayout, DeviceTypenon_aligned_ff_w
 
View< int *, CLayout, HostTypegrid_non_aligned_vert
 
View< int **, CLayout, HostTypegrid_non_aligned_ff_idx
 
View< double **, CLayout, HostTypegrid_non_aligned_ff_w
 

Member Enumeration Documentation

◆ FilterMode

Enumerator
None 
SingleN 
M_Range 
N_M_Range 
N_Range_M_Resonant 

◆ ScrapeOffLayerMethod

Enumerator
BlendWindow 
RetainSineModes 
RetainAllModes 

Constructor & Destructor Documentation

◆ FourierFilter() [1/2]

FourierFilter::FourierFilter ( )
inline

◆ FourierFilter() [2/2]

FourierFilter::FourierFilter ( NLReader::NamelistReader nlr,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
Plasma plasma 
)
Here is the call graph for this function:

Member Function Documentation

◆ apply()

void FourierFilter::apply ( const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Options options,
const View< double *, CLayout, HostType > &  view 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ destroy()

void FourierFilter::destroy ( )
Here is the caller graph for this function:

◆ fft_execute()

void FourierFilter::fft_execute ( int  isurf,
const View< double *, CLayout, HostType > &  x,
const View< Complex *, CLayout, HostType > &  spec 
) const
private
Here is the caller graph for this function:

◆ get_dir()

int FourierFilter::get_dir ( int  ntor_real) const
private
Here is the caller graph for this function:

◆ get_n_frequencies()

int FourierFilter::get_n_frequencies ( int  n_points) const
private
Here is the caller graph for this function:

◆ get_n_points()

int FourierFilter::get_n_points ( int  n_nodes) const
private
Here is the caller graph for this function:

◆ m_range() [1/4]

void FourierFilter::m_range ( const DomainDecomposition< DeviceType > &  pol_decomp,
const Options options,
const View< double **, CLayout, DeviceType > &  x 
) const
Here is the call graph for this function:

◆ m_range() [2/4]

void FourierFilter::m_range ( const DomainDecomposition< DeviceType > &  pol_decomp,
const Options options,
const View< double **, CLayout, HostType > &  x 
) const
Here is the call graph for this function:

◆ m_range() [3/4]

void FourierFilter::m_range ( const DomainDecomposition< DeviceType > &  pol_decomp,
const Options options,
const View< double *, CLayout, DeviceType > &  x 
) const
Here is the call graph for this function:

◆ m_range() [4/4]

void FourierFilter::m_range ( const DomainDecomposition< DeviceType > &  pol_decomp,
const Options options,
const View< double *, CLayout, HostType > &  x 
) const
Here is the caller graph for this function:

◆ m_range_all_surfs()

void FourierFilter::m_range_all_surfs ( const View< double **, CLayout, DeviceType > &  x,
const Options options 
) const
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ m_range_one_surf()

void FourierFilter::m_range_one_surf ( int  isurf,
const View< double **, CLayout, HostType > &  x,
const Options options 
) const
private

◆ n_m_range()

void FourierFilter::n_m_range ( int  nplanes,
const View< double *, CLayout, HostType > &  view,
const Options options 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_nonaligned() [1/2]

void FourierFilter::set_nonaligned ( const View< double **, CLayout, DeviceType > &  x) const
private
Here is the call graph for this function:

◆ set_nonaligned() [2/2]

void FourierFilter::set_nonaligned ( const View< double **, CLayout, HostType > &  x) const
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ single_n()

void FourierFilter::single_n ( const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
const View< double *, CLayout, HostType > &  view,
const Options options 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ single_n_flex()

void FourierFilter::single_n_flex ( const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
const View< double *, CLayout, HostType > &  view_in,
const View< double **, CLayout, HostType > &  result,
const Options options,
int  ntor_num 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ b_sign

int FourierFilter::b_sign
private

◆ fft_plan

std::vector<FFTWrapper> FourierFilter::fft_plan
private

◆ freq_offsets

View<int*,CLayout,DeviceType> FourierFilter::freq_offsets
private

◆ freq_surf_map

View<int*,CLayout,DeviceType> FourierFilter::freq_surf_map
private

◆ grid_non_aligned_ff_idx

View<int**, CLayout, HostType> FourierFilter::grid_non_aligned_ff_idx
private

◆ grid_non_aligned_ff_w

View<double**, CLayout, HostType> FourierFilter::grid_non_aligned_ff_w
private

◆ grid_non_aligned_vert

View<int*, CLayout, HostType> FourierFilter::grid_non_aligned_vert
private

◆ inv_npt

View<double*,CLayout,DeviceType> FourierFilter::inv_npt
private

◆ is_periodic

View<bool*,CLayout,HostType> FourierFilter::is_periodic
private

◆ m_limit

View<int*,CLayout,DeviceType> FourierFilter::m_limit

◆ m_max_surf

View<int*, CLayout, DeviceType> FourierFilter::m_max_surf

◆ m_minmax

View<int**,CLayout,DeviceType> FourierFilter::m_minmax
private

◆ mapping_all

View<int*,CLayout,DeviceType> FourierFilter::mapping_all
private

◆ max_n_points

int FourierFilter::max_n_points
private

◆ mres_q

int FourierFilter::mres_q

◆ nfreq_on_surf

View<int*,CLayout,DeviceType> FourierFilter::nfreq_on_surf
private

◆ nnodes_on_surf

View<int*,CLayout,DeviceType> FourierFilter::nnodes_on_surf
private

◆ node_offsets

View<int*,CLayout,DeviceType> FourierFilter::node_offsets
private

◆ node_offsets_h

View<int*,CLayout,HostType> FourierFilter::node_offsets_h
private

◆ node_surf_map

View<int*,CLayout,DeviceType> FourierFilter::node_surf_map
private

◆ non_aligned_ff_idx

View<int**, CLayout, DeviceType> FourierFilter::non_aligned_ff_idx
private

◆ non_aligned_ff_w

View<double**, CLayout, DeviceType> FourierFilter::non_aligned_ff_w
private

◆ non_aligned_vert

View<int*, CLayout, DeviceType> FourierFilter::non_aligned_vert
private

◆ nplanes

int FourierFilter::nplanes
private

◆ nsurf

int FourierFilter::nsurf
private

◆ nuni_on_surf

View<int*,CLayout,HostType> FourierFilter::nuni_on_surf
private

◆ psi_surf

View<double*,CLayout,DeviceType> FourierFilter::psi_surf
private

◆ qsafety

View<double*,CLayout,DeviceType> FourierFilter::qsafety

◆ run_filter

View<bool*,CLayout,HostType> FourierFilter::run_filter
private

◆ spec_all

View<Complex**,CLayout,DeviceType> FourierFilter::spec_all
private

◆ spec_h

std::vector<std::vector<View<Complex*, CLayout, HostType> > > FourierFilter::spec_h
private

◆ spec_h_view

View<Complex**,CLayout,HostType> FourierFilter::spec_h_view
private

◆ spline_precomputation

std::vector<SplinePrecomputations<HostType> > FourierFilter::spline_precomputation
private

◆ theta_all

View<double*,CLayout,DeviceType> FourierFilter::theta_all
private

◆ theta_all_h

View<double*,CLayout,HostType> FourierFilter::theta_all_h
private

◆ theta_uniform_range_all

View<UniformRange*,CLayout,HostType> FourierFilter::theta_uniform_range_all
private

◆ uni_offsets

View<int*,CLayout,HostType> FourierFilter::uni_offsets
private

◆ wedge_n

int FourierFilter::wedge_n
private

◆ window_all

View<double*,CLayout,DeviceType> FourierFilter::window_all
private

◆ x_ordered_all

View<double**, CLayout, DeviceType> FourierFilter::x_ordered_all
private

◆ x_ordered_h

std::vector<std::vector<View<double*, CLayout, HostType> > > FourierFilter::x_ordered_h
private

◆ x_ordered_h_view

View<double**, CLayout, HostType> FourierFilter::x_ordered_h_view
private

◆ x_uniform_h

std::vector<std::vector<View<double*, CLayout, HostType> > > FourierFilter::x_uniform_h
private

◆ x_uniform_h_view

View<double**, CLayout, HostType> FourierFilter::x_uniform_h_view
private

The documentation for this class was generated from the following files: