19 [[nodiscard]]
virtual View<RZPair*, HostType>
get_x()
const = 0;
20 [[nodiscard]]
virtual View<int*, HostType>
get_rgn()
const = 0;
23 [[nodiscard]]
virtual View<Vertex*, HostType>
get_nodes()
const = 0;
25 [[nodiscard]]
virtual View<int*, HostType>
get_i_x()
const = 0;
39 [[nodiscard]]
virtual View<int**, CLayout, HostType>
get_surf_idx()
const = 0;
41 [[nodiscard]]
virtual View<int*, HostType>
pack_scalars(
int max_nodes_on_surface,
int n_xpts,
int n_separatrices)
const = 0;
42 virtual void unpack_scalars(
const View<int*, HostType>& scalars,
int& max_nodes_on_surface,
int& n_xpts,
int& n_separatrices) = 0;
45 [[nodiscard]]
virtual View<Equil::XPoint*, HostType>
get_xpts()
const = 0;
48 [[nodiscard]]
virtual View<double*, HostType>
get_psiN()
const = 0;
62 View<RZPair*, HostType>
x;
63 View<int*, HostType>
rgn;
70 View<int*, HostType>
i_x;
83 View<double*, HostType>
psiN;
88 void convert_to_x_rgn_format(
const View<double**, CLayout, HostType>& tmp_nodes, View<RZPair*, HostType>&
x, View<int*, HostType>&
rgn,
bool is_stellarator);
102 PlaneFiles(
const std::string& node_file,
const std::string& element_file,
const std::string& flx_aif_file,
bool is_stellarator,
const MPI_Comm& comm);
111 void construct_hex_grid(
int nshells,
double raxis,
double zaxis,
double rscale,
double zscale);
125 View<RZPair*, HostType>
get_x()
const override;
126 View<int*, HostType>
get_rgn()
const override;
129 View<Vertex*, HostType>
get_nodes()
const override;
131 View<int*, HostType>
get_i_x()
const override;
145 View<int**, CLayout, HostType>
get_surf_idx()
const override;
147 View<int*, HostType>
pack_scalars(
int max_nodes_on_surface,
int n_xpts,
int n_separatrices)
const override;
148 void unpack_scalars(
const View<int*, HostType>& scalars,
int& max_nodes_on_surface,
int& n_xpts,
int& n_separatrices)
override;
151 View<Equil::XPoint*, HostType>
get_xpts()
const override;
154 View<double*, HostType>
get_psiN()
const override;
Definition: magnetic_field.hpp:12
Definition: NamelistReader.hpp:193
Definition: grid_files.hpp:51
int nsurfaces3b
Definition: grid_files.hpp:73
View< int *, HostType > nnodes_on_surface
Definition: grid_files.hpp:75
int nsurfaces1
Definition: grid_files.hpp:73
View< int *, HostType > non_aligned_nsurf
Definition: grid_files.hpp:79
View< RZPair *, HostType > x
Definition: grid_files.hpp:62
int num_non_aligned
Definition: grid_files.hpp:77
int ntriangles
Definition: grid_files.hpp:66
View< Vertex *, HostType > nodes
Definition: grid_files.hpp:67
View< int *, HostType > i_x
Definition: grid_files.hpp:70
int nnodes
Definition: grid_files.hpp:61
View< int *, HostType > rgn
Definition: grid_files.hpp:63
int nsurfaces2
Definition: grid_files.hpp:73
View< int **, CLayout, HostType > non_aligned_surf_idx
Definition: grid_files.hpp:80
View< double *, HostType > psiN
An array of normalized psi coordinates temporarily needed for the stellarator version.
Definition: grid_files.hpp:83
View< int **, CLayout, HostType > surf_idx
Definition: grid_files.hpp:81
int nsurfaces3a
Definition: grid_files.hpp:73
int nsurfaces
Definition: grid_files.hpp:72
int sum_nnodes_on_surfaces
Definition: grid_files.hpp:76
View< int *, HostType > i_surf_separatrices
Definition: grid_files.hpp:74
View< int *, HostType > non_aligned_vert
Definition: grid_files.hpp:78
FileRegion
Definition: grid_files.hpp:55
@ Inside
Definition: grid_files.hpp:56
@ OnWall
Definition: grid_files.hpp:57
Definition: grid_files.hpp:13
virtual View< int *, HostType > get_rgn() const =0
virtual int get_nsurfaces3a() const =0
virtual View< int **, CLayout, HostType > get_non_aligned_surf_idx() const =0
virtual int get_nsurfaces1() const =0
virtual int n_specified_xpts() const =0
virtual int get_nsurfaces3b() const =0
virtual View< RZPair *, HostType > get_x() const =0
virtual int get_nsurfaces() const =0
virtual int get_nnodes() const =0
virtual View< int *, HostType > get_non_aligned_nsurf() const =0
virtual RZPair get_reference_point() const =0
virtual View< Vertex *, HostType > get_nodes() const =0
virtual int get_ntriangles() const =0
virtual int get_num_non_aligned() const =0
virtual View< int *, HostType > get_nnodes_on_surface() const =0
virtual View< Equil::XPoint *, HostType > get_xpts() const =0
virtual View< int *, HostType > get_i_surf_separatrices() const =0
virtual int get_sum_nnodes_on_surfaces() const =0
virtual RZPair get_axis() const =0
virtual ~PlaneFilesInterface()=default
virtual View< double *, HostType > get_psiN() const =0
virtual View< int **, CLayout, HostType > get_surf_idx() const =0
virtual View< int *, HostType > get_i_x() const =0
virtual void unpack_scalars(const View< int *, HostType > &scalars, int &max_nodes_on_surface, int &n_xpts, int &n_separatrices)=0
virtual int get_nsurfaces2() const =0
virtual View< int *, HostType > get_non_aligned_vert() const =0
virtual View< int *, HostType > pack_scalars(int max_nodes_on_surface, int n_xpts, int n_separatrices) const =0
Definition: magnetic_field.F90:1
Definition: grid_files.hpp:157
static int nshells_from_nnodes(int nnodes)
Definition: grid_files.cpp:918
int n_planes() const
Definition: grid_files.cpp:909
std::vector< std::unique_ptr< PlaneFilesInterface > > plane_files_vec
Definition: grid_files.hpp:162
static constexpr GridCreateOpt Hexagonal
Definition: grid_files.hpp:159
const PlaneFilesInterface & midplane() const
Definition: grid_files.cpp:901
const PlaneFilesInterface & rplane() const
Definition: grid_files.cpp:905
const PlaneFilesInterface & lplane() const
Definition: grid_files.cpp:897
GridFiles(int nshells, double raxis, double zaxis, double rscale, double zscale, GridCreateOpt grid_opt=Hexagonal)
Definition: grid_files.cpp:776
static constexpr GridCreateOpt Circular
Definition: grid_files.hpp:160
std::string ifile_int2str(int ifile) const
Definition: grid_files.cpp:784
void clear()
Definition: grid_files.cpp:913
Definition: my_mpi.hpp:19
Definition: grid_files.hpp:86
int get_nsurfaces() const override
Definition: grid_files.cpp:694
void unpack_scalars(const View< int *, HostType > &scalars, int &max_nodes_on_surface, int &n_xpts, int &n_separatrices) override
Definition: grid_files.cpp:50
PlaneFiles()
Definition: grid_files.hpp:93
static int nshells_from_nnodes(int nnodes)
Definition: grid_files.cpp:589
View< Vertex *, HostType > get_nodes() const override
Definition: grid_files.cpp:686
View< int *, HostType > get_non_aligned_nsurf() const override
Definition: grid_files.cpp:734
int get_nsurfaces3b() const override
Definition: grid_files.cpp:710
View< int *, HostType > get_non_aligned_vert() const override
Definition: grid_files.cpp:730
void convert_to_x_rgn_format(const View< double **, CLayout, HostType > &tmp_nodes, View< RZPair *, HostType > &x, View< int *, HostType > &rgn, bool is_stellarator)
Definition: grid_files.cpp:15
int get_num_non_aligned() const override
Definition: grid_files.cpp:726
View< int **, CLayout, HostType > get_non_aligned_surf_idx() const override
Definition: grid_files.cpp:738
View< int **, CLayout, HostType > get_surf_idx() const override
Definition: grid_files.cpp:742
RZPair get_axis() const override
Definition: grid_files.cpp:760
int get_ntriangles() const override
Definition: grid_files.cpp:682
int get_nsurfaces3a() const override
Definition: grid_files.cpp:706
View< int *, HostType > get_i_x() const override
Definition: grid_files.cpp:690
RZPair get_reference_point() const override
Definition: grid_files.cpp:765
void construct_hex_grid(int nshells, double raxis, double zaxis, double rscale, double zscale)
Definition: grid_files.cpp:372
View< int *, HostType > get_i_surf_separatrices() const override
Definition: grid_files.cpp:714
View< int *, HostType > pack_scalars(int max_nodes_on_surface, int n_xpts, int n_separatrices) const override
Definition: grid_files.cpp:33
View< double *, HostType > get_psiN() const override
Definition: grid_files.cpp:770
View< RZPair *, HostType > get_x() const override
Definition: grid_files.cpp:674
double node_to_node_dist(RZPair a, RZPair b)
Definition: grid_files.cpp:475
int get_nsurfaces2() const override
Definition: grid_files.cpp:702
void construct_circular_grid(int nshells, double raxis, double zaxis, double rscale, double zscale)
Definition: grid_files.cpp:488
void convert_to_node_format(const View< int **, CLayout, HostType > &tmp_ele, View< Vertex *, HostType > &nodes)
Definition: grid_files.cpp:24
View< int *, HostType > get_rgn() const override
Definition: grid_files.cpp:678
GridCreateOpt
Definition: grid_files.hpp:106
@ Hexagonal
Definition: grid_files.hpp:107
@ Circular
Definition: grid_files.hpp:108
int n_specified_xpts() const override
Definition: grid_files.cpp:746
int get_nsurfaces1() const override
Definition: grid_files.cpp:698
int get_nnodes() const override
Definition: grid_files.cpp:670
int get_sum_nnodes_on_surfaces() const override
Definition: grid_files.cpp:722
View< Equil::XPoint *, HostType > get_xpts() const override
Definition: grid_files.cpp:750
View< int *, HostType > get_nnodes_on_surface() const override
Definition: grid_files.cpp:718
Definition: grid_structs.hpp:28