33 #ifndef IOSS_Ioss_StructuredBlock_h 34 #define IOSS_Ioss_StructuredBlock_h 46 #if defined(SEACAS_HAVE_CGNS) && !defined(BUILT_IN_SIERRA) 47 #include <cgnstypes.h> 107 int nj,
int nk,
int off_i,
int off_j,
int off_k,
int glo_ni,
int glo_nj,
122 std::string
type_string()
const override {
return "StructuredBlock"; }
192 static_cast<size_t>(j - 1) * (
m_niGlobal + 1) + i - 1;
207 assert(i > 0 && i <= m_ni + 1 && j > 0 && j <= m_nj + 1 && k > 0 && k <=
m_nk + 1);
208 return static_cast<size_t>(k - 1) * (
m_ni + 1) * (
m_nj + 1) +
209 static_cast<size_t>(j - 1) * (
m_ni + 1) + i - 1;
232 std::vector<INT> ids(node_count);
256 for (
int kk = 0; kk <
m_nk + 1; kk++) {
258 for (
int jj = 0; jj <
m_nj + 1; jj++) {
260 for (
int ii = 0; ii <
m_ni + 1; ii++) {
265 idata[index++] = ind + offset + 1;
271 idata[idx_id.first] = idx_id.second;
277 template <
typename INT_t>
size_t get_cell_ids(INT_t *idata,
bool add_offset)
const 296 for (
int kk = 0; kk <
m_nk; kk++) {
298 for (
int jj = 0; jj <
m_nj; jj++) {
300 for (
int ii = 0; ii <
m_ni; ii++) {
305 idata[index++] = ind + offset + 1;
320 size_t data_size)
const override;
323 size_t data_size)
const override;
bool contains(size_t global_offset) const
Definition: Ioss_StructuredBlock.h:312
A named value that has a known type.
Definition: Ioss_Property.h:47
The main namespace for the Ioss library.
Definition: Ioad_DatabaseIO.C:66
An input or output Database.
Definition: Ioss_DatabaseIO.h:82
size_t m_nodeOffset
Definition: Ioss_StructuredBlock.h:338
friend std::ostream & operator<<(std::ostream &os, const BoundaryCondition &bc)
Definition: Ioss_StructuredBlock.C:283
int64_t get_int() const
Get the property value if it is of type INTEGER.
Definition: Ioss_Property.C:199
Definition: Ioss_BoundingBox.h:37
Ioss::NodeBlock m_nodeBlock
Definition: Ioss_StructuredBlock.h:344
size_t m_nodeGlobalOffset
Definition: Ioss_StructuredBlock.h:341
size_t get_local_node_offset(IJK_t index) const
Definition: Ioss_StructuredBlock.h:224
int m_ni
Definition: Ioss_StructuredBlock.h:326
int64_t internal_get_field_data(const Field &field, void *data, size_t data_size) const override
Definition: Ioss_StructuredBlock.C:211
Property get_property(const std::string &property_name) const
Get the Property from the property manager associated with the entity.
Definition: Ioss_GroupingEntity.h:346
const Ioss::NodeBlock & get_node_block() const
Definition: Ioss_StructuredBlock.h:127
size_t get_cell_node_ids(INT_t *idata, bool add_offset) const
Definition: Ioss_StructuredBlock.h:237
std::vector< size_t > m_blockLocalNodeIndex
Definition: Ioss_StructuredBlock.h:349
Property get_implicit_property(const std::string &my_name) const override
Calculate and get an implicit property.
Definition: Ioss_StructuredBlock.C:206
size_t get_global_cell_id(int i, int j, int k) const
Definition: Ioss_StructuredBlock.h:175
StructuredBlock * clone(DatabaseIO *database) const
Definition: Ioss_StructuredBlock.C:190
StructuredBlock(DatabaseIO *io_database, const std::string &my_name, int index_dim, int ni, int nj, int nk, int off_i, int off_j, int off_k, int glo_ni, int glo_nj, int glo_nk)
Definition: Ioss_StructuredBlock.C:88
size_t get_face_count() const
Definition: Ioss_StructuredBlock.C:228
AxisAlignedBoundingBox get_bounding_box() const
Definition: Ioss_StructuredBlock.C:223
void set_node_offset(size_t offset)
Set the 'offset' for the block.
Definition: Ioss_StructuredBlock.h:163
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:103
std::string type_string() const override
Get the name of the particular type of entity.
Definition: Ioss_StructuredBlock.h:122
std::string contains_string() const override
What does this entity contain.
Definition: Ioss_StructuredBlock.h:124
Base class for all 'block'-type grouping entities, which means all members of the block are similar o...
Definition: Ioss_EntityBlock.h:61
Ioss::IJK_t m_rangeEnd
Definition: Ioss_StructuredBlock.h:92
size_t get_global_node_offset(int i, int j, int k) const
Definition: Ioss_StructuredBlock.h:189
std::array< int, 3 > IJK_t
Definition: Ioss_CodeTypes.h:46
std::string m_bcName
Definition: Ioss_StructuredBlock.h:87
Definition: Ioss_StructuredBlock.h:59
size_t get_cell_global_offset() const
Definition: Ioss_StructuredBlock.h:171
void set_node_global_offset(size_t offset)
Definition: Ioss_StructuredBlock.h:165
int which_face() const
Definition: Ioss_StructuredBlock.C:261
size_t get_block_local_node_offset(IJK_t index) const
Definition: Ioss_StructuredBlock.h:212
void set_cell_global_offset(size_t offset)
Definition: Ioss_StructuredBlock.h:166
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
int m_nj
Definition: Ioss_StructuredBlock.h:327
bool is_active() const
Does block contain any cells.
Definition: Ioss_StructuredBlock.h:131
std::vector< INT > get_cell_node_ids(bool add_offset) const
Definition: Ioss_StructuredBlock.h:229
Ioss::IJK_t m_rangeBeg
Definition: Ioss_StructuredBlock.h:91
std::vector< BoundaryCondition > m_boundaryConditions
Definition: Ioss_StructuredBlock.h:348
int INT
Definition: Ioss_StructuredBlock.h:53
std::string short_type_string() const override
Get a short name of the particular type of entity.
Definition: Ioss_StructuredBlock.h:123
size_t get_node_offset() const
Definition: Ioss_StructuredBlock.h:168
int m_face
Definition: Ioss_StructuredBlock.h:94
std::vector< char > data
Definition: cth_pressure_map.C:73
void set_cell_offset(size_t offset)
Definition: Ioss_StructuredBlock.h:164
size_t get_cell_offset() const
Definition: Ioss_StructuredBlock.h:169
Definition: Ioss_EntityType.h:54
std::string m_famName
Definition: Ioss_StructuredBlock.h:88
int m_njGlobal
Definition: Ioss_StructuredBlock.h:335
int m_offsetJ
Definition: Ioss_StructuredBlock.h:331
size_t get_node_global_offset() const
Definition: Ioss_StructuredBlock.h:170
size_t get_global_cell_id(IJK_t index) const
Definition: Ioss_StructuredBlock.h:181
std::string name(Ioss::GroupingEntity *entity)
Definition: io_info.C:89
~StructuredBlock() override
size_t m_cellOffset
Definition: Ioss_StructuredBlock.h:339
int m_offsetK
Definition: Ioss_StructuredBlock.h:332
size_t get_global_node_offset(IJK_t index) const
Definition: Ioss_StructuredBlock.h:195
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
std::vector< ZoneConnectivity > m_zoneConnectivity
Definition: Ioss_StructuredBlock.h:347
size_t m_cellGlobalOffset
Definition: Ioss_StructuredBlock.h:342
int m_offsetI
Definition: Ioss_StructuredBlock.h:330
EntityType type() const override
Get the EntityType, which indicates the particular type of GroupingEntity this is.
Definition: Ioss_StructuredBlock.h:125
int m_nkGlobal
Definition: Ioss_StructuredBlock.h:336
EntityType
The particular type of GroupingEntity.
Definition: Ioss_EntityType.h:39
bool is_valid() const
Definition: Ioss_StructuredBlock.C:251
std::vector< std::pair< size_t, size_t > > m_globalIdMap
Definition: Ioss_StructuredBlock.h:350
size_t get_local_node_offset(int i, int j, int k) const
Definition: Ioss_StructuredBlock.h:219
size_t get_block_local_node_offset(int ii, int jj, int kk) const
Definition: Ioss_StructuredBlock.h:202
BoundaryCondition(const std::string name, const std::string fam_name, const Ioss::IJK_t range_beg, const Ioss::IJK_t range_end)
Definition: Ioss_StructuredBlock.h:61
int64_t internal_put_field_data(const Field &field, void *data, size_t data_size) const override
Definition: Ioss_StructuredBlock.C:217
BoundaryCondition(const std::string name, const Ioss::IJK_t range_beg, const Ioss::IJK_t range_end)
Definition: Ioss_StructuredBlock.h:69
size_t get_cell_ids(INT_t *idata, bool add_offset) const
Definition: Ioss_StructuredBlock.h:277
int m_niGlobal
Definition: Ioss_StructuredBlock.h:334
int m_nk
Definition: Ioss_StructuredBlock.h:328