1 #ifndef FOURIER_FILTER_HPP
2 #define FOURIER_FILTER_HPP
13 View<double*,CLayout,HostType>
tmp;
15 View<double*,CLayout,HostType>
tmp2;
16 View<double*,CLayout,HostType>
theta;
17 View<double*,CLayout,HostType>
win;
18 View<Complex**,CLayout,HostType>
spec;
31 static const View<double*,CLayout,HostType>
view(
const View<double*,CLayout,HostType>& in,
int n){
32 return View<double*,CLayout,HostType, Kokkos::MemoryTraits<Kokkos::Unmanaged>>(in.data(), n);
35 static const View<int*,CLayout,HostType>
view(
const View<int*,CLayout,HostType>& in,
int n){
36 return View<int*,CLayout,HostType, Kokkos::MemoryTraits<Kokkos::Unmanaged>>(in.data(), n);
39 static const View<Complex**,CLayout,HostType>
view(
const View<Complex**,CLayout,HostType>& in,
int n_dim2,
int n){
40 return View<Complex**,CLayout,HostType, Kokkos::MemoryTraits<Kokkos::Unmanaged>>(in.data(), n_dim2, n);
76 std::vector<View<int*,CLayout,HostType>>
mapping;
77 std::vector<View<double*,CLayout,HostType>>
theta;
80 std::vector<View<double*,CLayout,HostType>>
window;
90 std::vector<View<Complex**,CLayout,HostType>>
spec_all;
93 void get_m_min_max(
const Options& options,
int isurf,
double qsafety,
int& minm,
int& maxm)
const;
95 void fft_execute(
int isurf,
const View<double*,CLayout,HostType>& x,
const View<Complex*,CLayout,HostType>& spec)
const;
std::vector< View< int *, CLayout, HostType > > mapping
Definition: fourier_filter.hpp:76
std::vector< View< double **, CLayout, HostType > > x_uniform_all
Definition: fourier_filter.hpp:91
int minm
Definition: fourier_filter.hpp:56
bool is_spectral
Definition: fourier_filter.hpp:58
int b_sign
Definition: fourier_filter.hpp:86
View< int *, CLayout, HostType > nnodes_on_surf
Definition: fourier_filter.hpp:70
View< bool *, CLayout, HostType > run_filter
Definition: fourier_filter.hpp:65
std::vector< View< double *, CLayout, HostType > > theta
Definition: fourier_filter.hpp:77
View< double *, CLayout, HostType > win
Definition: fourier_filter.hpp:17
int ntor_real
Definition: fourier_filter.hpp:60
View< Complex **, CLayout, HostType > spec
Definition: fourier_filter.hpp:18
subroutine fourier_filter(grid, filt_inout, inpsi, outpsi, bd_width, op_mode, div_mix)
Interface routine for Fourier filter.
Definition: search.F90:3263
int get_n_frequencies(int n_points) const
Definition: fourier_filter.cpp:73
subroutine plasma(grid, itr, p, dene_out, deni_out, Te_out, Ti_out, Vparai_out)
Calculate the plasma density, temperature, and parallel velocity for a point in triangle itr using pl...
Definition: neutral_totalf.F90:1248
std::vector< SplinePrecomputations< HostType > > spline_precomputation
Definition: fourier_filter.hpp:83
int maxm
Definition: fourier_filter.hpp:57
std::vector< View< double **, CLayout, HostType > > x_ordered_all
Definition: fourier_filter.hpp:89
ScrapeOffLayerMethod
Definition: fourier_filter.hpp:46
Definition: NamelistReader.hpp:193
Definition: magnetic_field.hpp:12
std::vector< View< double *, CLayout, HostType > > window
Definition: fourier_filter.hpp:80
View< double *, CLayout, HostType > tmp
Definition: fourier_filter.hpp:13
FilterTmpViews()
Definition: fourier_filter.hpp:20
std::vector< FFTWrapper > fft_plan
Definition: fourier_filter.hpp:73
double outpsi
Definition: fourier_filter.hpp:54
FourierFilter()
Definition: fourier_filter.hpp:104
View< double *, CLayout, HostType > theta
Definition: fourier_filter.hpp:16
ScrapeOffLayerMethod sol_method
Definition: fourier_filter.hpp:61
static const View< int *, CLayout, HostType > view(const View< int *, CLayout, HostType > &in, int n)
Definition: fourier_filter.hpp:35
static const View< double *, CLayout, HostType > view(const View< double *, CLayout, HostType > &in, int n)
Definition: fourier_filter.hpp:31
static const View< Complex **, CLayout, HostType > view(const View< Complex **, CLayout, HostType > &in, int n_dim2, int n)
Definition: fourier_filter.hpp:39
void m_range_one_surf(const Grid< DeviceType > &grid, int isurf, const View< double **, CLayout, HostType > &x, const Options &options) const
Definition: fourier_filter.cpp:459
double inpsi
Definition: fourier_filter.hpp:53
double bd_width
Definition: fourier_filter.hpp:55
void m_range(const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const Options &options, const View< double *, CLayout, HostType > &x) const
Definition: fourier_filter.cpp:563
bool is_resonant
Definition: fourier_filter.hpp:59
void destroy()
Definition: fourier_filter.cpp:314
void get_m_min_max(const Options &options, int isurf, double qsafety, int &minm, int &maxm) const
Definition: fourier_filter.cpp:286
Definition: fourier_filter.hpp:52
void fft_execute(int isurf, const View< double *, CLayout, HostType > &x, const View< Complex *, CLayout, HostType > &spec) const
Definition: fourier_filter.cpp:310
Definition: magnetic_field.F90:1
View< bool *, CLayout, HostType > is_periodic
Definition: fourier_filter.hpp:69
View< int *, CLayout, HostType > node_mapping
Definition: fourier_filter.hpp:14
Definition: plasma.hpp:13
std::vector< View< Complex **, CLayout, HostType > > spec_all
Definition: fourier_filter.hpp:90
int get_n_points(int n_nodes) const
Definition: fourier_filter.cpp:67
Definition: fourier_filter.hpp:44
View< double *, CLayout, HostType > tmp2
Definition: fourier_filter.hpp:15
View< int *, CLayout, HostType > m_limit
Definition: fourier_filter.hpp:68
FilterTmpViews(int n_dim2, int n_max)
Definition: fourier_filter.hpp:22
Definition: fourier_filter.hpp:12
Kokkos::ViewAllocateWithoutInitializing NoInit
Definition: space_settings.hpp:69
int max_n_points
Definition: fourier_filter.hpp:67
int mres_q
Definition: fourier_filter.hpp:66