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;
53 View<int*, HostType>
pack_scalars(
int max_nodes_on_surface,
int n_xpts,
int n_separatrices)
const override;
54 void unpack_scalars(
const View<int*, HostType>& scalars,
int& max_nodes_on_surface,
int& n_xpts,
int& n_separatrices)
override;
65 View<RZPair*, HostType>
x;
66 View<int*, HostType>
rgn;
73 View<int*, HostType>
i_x;
86 View<double*, HostType>
psiN;
91 void convert_to_x_rgn_format(
const View<double**, CLayout, HostType>& tmp_nodes, View<RZPair*, HostType>&
x, View<int*, HostType>&
rgn,
bool is_stellarator);
105 PlaneFiles(
const std::string& node_file,
const std::string& element_file,
const std::string& flx_aif_file,
bool is_stellarator,
const MPI_Comm& comm);
114 void construct_hex_grid(
int nshells,
double raxis,
double zaxis,
double rscale,
double zscale);
128 View<RZPair*, HostType>
get_x()
const override;
129 View<int*, HostType>
get_rgn()
const override;
132 View<Vertex*, HostType>
get_nodes()
const override;
134 View<int*, HostType>
get_i_x()
const override;
148 View<int**, CLayout, HostType>
get_surf_idx()
const 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:199
Definition: grid_files.hpp:51
int nsurfaces3b
Definition: grid_files.hpp:76
View< int *, HostType > nnodes_on_surface
Definition: grid_files.hpp:78
int nsurfaces1
Definition: grid_files.hpp:76
View< int *, HostType > pack_scalars(int max_nodes_on_surface, int n_xpts, int n_separatrices) const override
Definition: grid_files.cpp:37
View< int *, HostType > non_aligned_nsurf
Definition: grid_files.hpp:82
View< RZPair *, HostType > x
Definition: grid_files.hpp:65
int num_non_aligned
Definition: grid_files.hpp:80
int ntriangles
Definition: grid_files.hpp:69
View< Vertex *, HostType > nodes
Definition: grid_files.hpp:70
View< int *, HostType > i_x
Definition: grid_files.hpp:73
int nnodes
Definition: grid_files.hpp:64
View< int *, HostType > rgn
Definition: grid_files.hpp:66
void unpack_scalars(const View< int *, HostType > &scalars, int &max_nodes_on_surface, int &n_xpts, int &n_separatrices) override
Definition: grid_files.cpp:54
int nsurfaces2
Definition: grid_files.hpp:76
View< int **, CLayout, HostType > non_aligned_surf_idx
Definition: grid_files.hpp:83
View< double *, HostType > psiN
An array of normalized psi coordinates temporarily needed for the stellarator version.
Definition: grid_files.hpp:86
View< int **, CLayout, HostType > surf_idx
Definition: grid_files.hpp:84
int nsurfaces3a
Definition: grid_files.hpp:76
int nsurfaces
Definition: grid_files.hpp:75
int sum_nnodes_on_surfaces
Definition: grid_files.hpp:79
View< int *, HostType > i_surf_separatrices
Definition: grid_files.hpp:77
View< int *, HostType > non_aligned_vert
Definition: grid_files.hpp:81
FileRegion
Definition: grid_files.hpp:58
@ Inside
Definition: grid_files.hpp:59
@ OnWall
Definition: grid_files.hpp:60
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:936
int n_planes() const
Definition: grid_files.cpp:927
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:919
const PlaneFilesInterface & rplane() const
Definition: grid_files.cpp:923
const PlaneFilesInterface & lplane() const
Definition: grid_files.cpp:915
GridFiles(int nshells, double raxis, double zaxis, double rscale, double zscale, GridCreateOpt grid_opt=Hexagonal)
Definition: grid_files.cpp:779
static constexpr GridCreateOpt Circular
Definition: grid_files.hpp:160
std::string ifile_int2str(int ifile) const
Definition: grid_files.cpp:787
void clear()
Definition: grid_files.cpp:931
Definition: my_mpi.hpp:19
Definition: grid_files.hpp:89
int get_nsurfaces() const override
Definition: grid_files.cpp:698
PlaneFiles()
Definition: grid_files.hpp:96
static int nshells_from_nnodes(int nnodes)
Definition: grid_files.cpp:593
View< Vertex *, HostType > get_nodes() const override
Definition: grid_files.cpp:690
View< int *, HostType > get_non_aligned_nsurf() const override
Definition: grid_files.cpp:738
int get_nsurfaces3b() const override
Definition: grid_files.cpp:714
View< int *, HostType > get_non_aligned_vert() const override
Definition: grid_files.cpp:734
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:19
int get_num_non_aligned() const override
Definition: grid_files.cpp:730
View< int **, CLayout, HostType > get_non_aligned_surf_idx() const override
Definition: grid_files.cpp:742
View< int **, CLayout, HostType > get_surf_idx() const override
Definition: grid_files.cpp:746
RZPair get_axis() const override
Definition: grid_files.cpp:764
int get_ntriangles() const override
Definition: grid_files.cpp:686
int get_nsurfaces3a() const override
Definition: grid_files.cpp:710
View< int *, HostType > get_i_x() const override
Definition: grid_files.cpp:694
RZPair get_reference_point() const override
Definition: grid_files.cpp:769
void construct_hex_grid(int nshells, double raxis, double zaxis, double rscale, double zscale)
Definition: grid_files.cpp:376
View< int *, HostType > get_i_surf_separatrices() const override
Definition: grid_files.cpp:718
View< double *, HostType > get_psiN() const override
Definition: grid_files.cpp:774
View< RZPair *, HostType > get_x() const override
Definition: grid_files.cpp:678
double node_to_node_dist(RZPair a, RZPair b)
Definition: grid_files.cpp:479
int get_nsurfaces2() const override
Definition: grid_files.cpp:706
void construct_circular_grid(int nshells, double raxis, double zaxis, double rscale, double zscale)
Definition: grid_files.cpp:492
void convert_to_node_format(const View< int **, CLayout, HostType > &tmp_ele, View< Vertex *, HostType > &nodes)
Definition: grid_files.cpp:28
View< int *, HostType > get_rgn() const override
Definition: grid_files.cpp:682
GridCreateOpt
Definition: grid_files.hpp:109
@ Hexagonal
Definition: grid_files.hpp:110
@ Circular
Definition: grid_files.hpp:111
int n_specified_xpts() const override
Definition: grid_files.cpp:750
int get_nsurfaces1() const override
Definition: grid_files.cpp:702
int get_nnodes() const override
Definition: grid_files.cpp:674
int get_sum_nnodes_on_surfaces() const override
Definition: grid_files.cpp:726
View< Equil::XPoint *, HostType > get_xpts() const override
Definition: grid_files.cpp:754
View< int *, HostType > get_nnodes_on_surface() const override
Definition: grid_files.cpp:722
Definition: grid_structs.hpp:28