19#include "iogs_export.h"
137 explicit GeneratedMesh(
const std::string ¶meters,
int proc_count = 1,
int my_proc = 0);
138 GeneratedMesh(int64_t num_x, int64_t num_y, int64_t num_z,
int proc_count = 1,
int my_proc = 0);
171 void set_scale(
double scl_x,
double scl_y,
double scl_z);
172 void set_offset(
double off_x,
double off_y,
double off_z);
173 void set_bbox(
double xmin,
double ymin,
double zmin,
double xmax,
double ymax,
double zmax);
181 void set_rotation(
const std::string &axis,
double angle_degrees);
237 IOSS_NODISCARD virtual int64_t element_count(int64_t block_number)
const;
244 IOSS_NODISCARD int64_t element_count_proc(int64_t block_number)
const;
251 IOSS_NODISCARD virtual std::pair<std::string, int> topology_type(int64_t block_number)
const;
253 void build_node_map(
Ioss::Int64Vector &map, std::vector<int> &proc, int64_t slab,
254 size_t slabOffset,
size_t adjacentProc,
size_t index);
255 IOSS_NODISCARD virtual int64_t communication_node_count_proc()
const;
256 virtual void node_communication_map(
Ioss::Int64Vector &map, std::vector<int> &proc);
257 virtual void owning_processor(
int *owner, int64_t num_node);
273 virtual void element_map(int64_t block_number,
Ioss::IntVector &map)
const;
303 void connectivity(int64_t block_number,
Ioss::IntVector &connect)
const;
304 void connectivity(int64_t block_number, int64_t *connect)
const;
305 virtual void connectivity(int64_t block_number,
int *connect)
const;
314 virtual void coordinates(std::vector<double> &coord)
const;
315 virtual void coordinates(
double *coord)
const;
323 virtual void coordinates(std::vector<double> &x, std::vector<double> &y,
324 std::vector<double> &z)
const;
335 virtual void coordinates(
int component, std::vector<double> &xyz)
const;
346 void coordinates(
int component,
int zone,
double *coord)
const;
357 virtual void sideset_elem_sides(int64_t
id,
Ioss::Int64Vector &elem_sides)
const;
371 template <
typename INT>
void raw_element_map(int64_t block_number, std::vector<INT> &map)
const;
372 template <
typename INT>
void raw_element_map(std::vector<INT> &map)
const;
373 template <
typename INT>
void raw_connectivity(int64_t block_number, INT *connect)
const;
384 std::array<std::array<double, 3>, 3>
rotmat;
385 size_t numX{0}, numY{0}, numZ{0};
394 double offX{0}, offY{0}, offZ{0};
395 double sclX{1}, sclY{1}, sclZ{1};
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:55
Definition Iogs_GeneratedMesh.h:23
void initialize()
Definition Iogs_GeneratedMesh.C:55
void show_parameters() const
Definition Iogs_GeneratedMesh.C:292
GeneratedMesh & operator=(const GeneratedMesh &)
void set_rotation(const std::string &axis, double angle_degrees)
Definition Iogs_GeneratedMesh.C:854
virtual IOSS_NODISCARD int64_t node_count() const
Definition Iogs_GeneratedMesh.C:325
size_t processorCount
Definition Iogs_GeneratedMesh.h:388
double offX
Definition Iogs_GeneratedMesh.h:394
std::vector< ShellLocation > sidesets
Definition Iogs_GeneratedMesh.h:383
double sclX
Definition Iogs_GeneratedMesh.h:395
virtual IOSS_NODISCARD int64_t structured_block_count() const
Definition Iogs_GeneratedMesh.C:329
ShellLocation
Definition Iogs_GeneratedMesh.h:25
@ MX
Definition Iogs_GeneratedMesh.h:25
@ PZ
Definition Iogs_GeneratedMesh.h:25
@ MY
Definition Iogs_GeneratedMesh.h:25
@ MZ
Definition Iogs_GeneratedMesh.h:25
@ PX
Definition Iogs_GeneratedMesh.h:25
@ PY
Definition Iogs_GeneratedMesh.h:25
IOSS_NODISCARD int64_t get_num_z() const
Definition Iogs_GeneratedMesh.h:363
size_t numX
Definition Iogs_GeneratedMesh.h:385
size_t numZ
Definition Iogs_GeneratedMesh.h:385
size_t timestepCount
Definition Iogs_GeneratedMesh.h:391
void set_bbox(double xmin, double ymin, double zmin, double xmax, double ymax, double zmax)
Definition Iogs_GeneratedMesh.C:115
size_t myProcessor
Definition Iogs_GeneratedMesh.h:389
IOSS_NODISCARD int64_t get_num_x() const
Definition Iogs_GeneratedMesh.h:361
void parse_options(const Ioss::NameList &groups)
Definition Iogs_GeneratedMesh.C:159
size_t numY
Definition Iogs_GeneratedMesh.h:385
GeneratedMesh(const GeneratedMesh &)
void set_variable_count(const std::string &type, size_t count)
Definition Iogs_GeneratedMesh.C:831
int64_t add_sideset(ShellLocation loc)
Definition Iogs_GeneratedMesh.C:109
size_t myNumZ
Definition Iogs_GeneratedMesh.h:386
IOSS_NODISCARD Ioss::IJK_t block_offset_proc(int64_t id) const
IOSS_NODISCARD Ioss::IJK_t block_range(int64_t) const
Definition Iogs_GeneratedMesh.h:214
std::map< Ioss::EntityType, size_t > variableCount
Definition Iogs_GeneratedMesh.h:392
virtual IOSS_NODISCARD int64_t node_count_proc() const
Definition Iogs_GeneratedMesh.C:327
virtual IOSS_NODISCARD int64_t sideset_side_count_proc(int64_t id) const
Definition Iogs_GeneratedMesh.C:378
bool doRotation
Definition Iogs_GeneratedMesh.h:399
IOSS_NODISCARD int64_t get_num_y() const
Definition Iogs_GeneratedMesh.h:362
virtual ~GeneratedMesh()=default
GeneratedMesh(const std::string ¶meters, int proc_count=1, int my_proc=0)
Definition Iogs_GeneratedMesh.C:32
IOSS_NODISCARD Ioss::IJK_t block_range_proc(int64_t id) const
IOSS_NODISCARD size_t get_variable_count(Ioss::EntityType type) const
Definition Iogs_GeneratedMesh.h:365
void set_offset(double off_x, double off_y, double off_z)
Definition Iogs_GeneratedMesh.C:152
virtual IOSS_NODISCARD int64_t sideset_count() const
Definition Iogs_GeneratedMesh.C:331
IOSS_NODISCARD int64_t element_count_proc() const
Definition Iogs_GeneratedMesh.C:339
void set_scale(double scl_x, double scl_y, double scl_z)
Definition Iogs_GeneratedMesh.C:145
virtual IOSS_NODISCARD int64_t element_count() const
Definition Iogs_GeneratedMesh.C:333
std::array< std::array< double, 3 >, 3 > rotmat
Definition Iogs_GeneratedMesh.h:384
IOSS_NODISCARD int64_t timestep_count() const
Definition Iogs_GeneratedMesh.h:231
IOSS_NODISCARD int64_t sideset_side_count(int64_t id) const
Definition Iogs_GeneratedMesh.C:362
A namespace for the gen_struc database format.
Definition Iogs_DatabaseIO.C:87
std::vector< int64_t > Int64Vector
Definition Ioss_CodeTypes.h:22
std::vector< int > IntVector
Definition Ioss_CodeTypes.h:21
Ioss::NameList NameList
Definition Ioss_ChangeSetFactory.h:25
std::array< int, 3 > IJK_t
Definition Ioss_CodeTypes.h:24
EntityType
The particular type of GroupingEntity.
Definition Ioss_EntityType.h:12