IOSS 2.0

Ioss_StructuredBlock.h
Go to the documentation of this file.
1 // Copyright(C) 1999-2017 National Technology & Engineering Solutions
2 // of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
3 // NTESS, the U.S. Government retains certain rights in this software.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 //
12 // * Redistributions in binary form must reproduce the above
13 // copyright notice, this list of conditions and the following
14 // disclaimer in the documentation and/or other materials provided
15 // with the distribution.
16 //
17 // * Neither the name of NTESS nor the names of its
18 // contributors may be used to endorse or promote products derived
19 // from this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
33 #ifndef IOSS_Ioss_StructuredBlock_h
34 #define IOSS_Ioss_StructuredBlock_h
35
36 #include <Ioss_BoundingBox.h>
37 #include <Ioss_CodeTypes.h>
38 #include <Ioss_EntityBlock.h>
39 #include <Ioss_NodeBlock.h>
40 #include <Ioss_Property.h>
41 #include <Ioss_ZoneConnectivity.h>
42 #include <array>
43 #include <cassert>
44 #include <string>
45
46 #if defined(SEACAS_HAVE_CGNS) && !defined(BUILT_IN_SIERRA)
47 #include <cgnstypes.h>
48 using INT = cgsize_t;
49 #else
50 // If this is not being built with CGNS, then default to using 32-bit integers.
51 // Currently there is no way to input/output a structured mesh without CGNS,
52 // so this block is simply to get things to compile and probably has no use.
53 using INT = int;
54 #endif
55
56 namespace Ioss {
57 class Region;
58
59 struct BoundaryCondition
60 {
61 BoundaryCondition(const std::string name, const std::string fam_name,
62 const Ioss::IJK_t range_beg, const Ioss::IJK_t range_end)
63 : m_bcName(std::move(name)), m_famName(std::move(fam_name)),
64 m_rangeBeg(std::move(range_beg)), m_rangeEnd(std::move(range_end))
65 {
66 }
67
68 // Deprecated... Use the constructor above with both name and fam_name
69 BoundaryCondition(const std::string name, const Ioss::IJK_t range_beg,
70 const Ioss::IJK_t range_end)
71 : m_bcName(name), m_famName(std::move(name)), m_rangeBeg(std::move(range_beg)),
72 m_rangeEnd(std::move(range_end))
73 {
74 }
75
76 BoundaryCondition(const BoundaryCondition &copy_from) = default;
77
78 // Determine which "face" of the parent block this BC is applied to.
79 int which_face() const;
80
81 // Does range specify a valid face
82 bool is_valid() const;
83
84 // Return number of cell faces in the BC
85 size_t get_face_count() const;
86
87 std::string m_bcName;
88 std::string m_famName;
89
90 // These are potentially subsetted due to parallel decompositions...
91 Ioss::IJK_t m_rangeBeg;
92 Ioss::IJK_t m_rangeEnd;
93
94 mutable int m_face{-1};
95
96 friend std::ostream &operator<<(std::ostream &os, const BoundaryCondition &bc);
97 };
98
99 class DatabaseIO;
100
101 /** \brief A structured zone -- i,j,k
102 */
103 class StructuredBlock : public EntityBlock
104 {
105 public:
106 StructuredBlock(DatabaseIO *io_database, const std::string &my_name, int index_dim, int ni,
107 int nj, int nk, int off_i, int off_j, int off_k, int glo_ni, int glo_nj,
108 int glo_nk);
109 StructuredBlock(DatabaseIO *io_database, const std::string &my_name, int index_dim,
110 Ioss::IJK_t &ordinal, Ioss::IJK_t &offset, Ioss::IJK_t &global_ordinal);
111
112 // Useful for serial
113 StructuredBlock(DatabaseIO *io_database, const std::string &my_name, int index_dim, int ni,
114 int nj, int nk);
115 StructuredBlock(DatabaseIO *io_database, const std::string &my_name, int index_dim,
116 Ioss::IJK_t &ordinal);
117
118 StructuredBlock *clone(DatabaseIO *database) const;
119
120 ~StructuredBlock() override;
121
122 std::string type_string() const override { return "StructuredBlock"; }
123 std::string short_type_string() const override { return "structuredblock"; }
124 std::string contains_string() const override { return "Cell"; }
125 EntityType type() const override { return STRUCTUREDBLOCK; }
126
127 const Ioss::NodeBlock &get_node_block() const { return m_nodeBlock; }
128 Ioss::NodeBlock & get_node_block() { return m_nodeBlock; }
129
130 /** \brief Does block contain any cells
131 */
132 bool is_active() const { return m_ni * m_nj * m_nk > 0; }
133
134 // Handle implicit properties -- These are calcuated from data stored
135 // in the grouping entity instead of having an explicit value assigned.
136 // An example would be 'element_block_count' for a region.
137 Property get_implicit_property(const std::string &my_name) const override;
138
139 AxisAlignedBoundingBox get_bounding_box() const;
140
141 /** \brief Set the 'offset' for the block.
142 *
143 * The 'offset' is used to map a cell or node location within a
144 * structured block to the model implicit cell or node location
145 * on a single processor. zero-based.
146 *
147 * The 'global' offsets do the same except for they apply over
148 * the entire model on all processors. zero-based.
149 *
150 * For example, the file descriptor (1-based) of
151 * the 37th cell in the 4th block is calculated by:
152 *
153 * file_descriptor = offset of block 4 + 37
154 *
155 * This can also be used to determine which structured block
156 * a cell with a file_descriptor maps into. An particular
157 * structured block contains all cells in the range:
158 *
159 * offset < file_descriptor <= offset+number_cells_per_block
160 *
161 * Note that for nodes, the nodeOffset does not take into account
162 * the nodes that are shared between blocks.
163 */
164 void set_node_offset(size_t offset) { m_nodeOffset = offset; }
165 void set_cell_offset(size_t offset) { m_cellOffset = offset; }
166 void set_node_global_offset(size_t offset) { m_nodeGlobalOffset = offset; }
167 void set_cell_global_offset(size_t offset) { m_cellGlobalOffset = offset; }
168
169 size_t get_node_offset() const { return m_nodeOffset; }
170 size_t get_cell_offset() const { return m_cellOffset; }
171 size_t get_node_global_offset() const { return m_nodeGlobalOffset; }
172 size_t get_cell_global_offset() const { return m_cellGlobalOffset; }
173
174 // Get the global (over all processors) cell
175 // id at the specified i,j,k location (1 <= i,j,k <= ni,nj,nk). 1-based.
176 size_t get_global_cell_id(int i, int j, int k) const
177 {
178 return m_cellGlobalOffset + static_cast<size_t>(k - 1) * m_niGlobal * m_njGlobal +
179 static_cast<size_t>(j - 1) * m_niGlobal + i;
180 }
181
182 size_t get_global_cell_id(IJK_t index) const
183 {
184 return get_global_cell_id(index[0], index[1], index[2]);
185 }
186
187 // Get the global (over all processors) node
188 // offset at the specified i,j,k location (1 <= i,j,k <= ni,nj,nk). 0-based, does not account
189 // for shared nodes.
190 size_t get_global_node_offset(int i, int j, int k) const
191 {
192 return m_nodeGlobalOffset + static_cast<size_t>(k - 1) * (m_niGlobal + 1) * (m_njGlobal + 1) +
193 static_cast<size_t>(j - 1) * (m_niGlobal + 1) + i - 1;
194 }
195
196 size_t get_global_node_offset(IJK_t index) const
197 {
198 return get_global_node_offset(index[0], index[1], index[2]);
199 }
200
201 // Get the local (relative to this block on this processor) node id at the specified
202 // i,j,k location (1 <= i,j,k <= ni+1,nj+1,nk+1). 0-based.
203 size_t get_block_local_node_offset(int ii, int jj, int kk) const
204 {
205 auto i = ii - m_offsetI;
206 auto j = jj - m_offsetJ;
207 auto k = kk - m_offsetK;
208 assert(i > 0 && i <= m_ni + 1 && j > 0 && j <= m_nj + 1 && k > 0 && k <= m_nk + 1);
209 return static_cast<size_t>(k - 1) * (m_ni + 1) * (m_nj + 1) +
210 static_cast<size_t>(j - 1) * (m_ni + 1) + i - 1;
211 }
212
213 size_t get_block_local_node_offset(IJK_t index) const
214 {
215 return get_block_local_node_offset(index[0], index[1], index[2]);
216 }
217
218 // Get the local (on this processor) cell-node offset at the specified
219 // i,j,k location (1 <= i,j,k <= ni+1,nj+1,nk+1). 0-based.
220 size_t get_local_node_offset(int i, int j, int k) const
221 {
222 return get_block_local_node_offset(i, j, k) + m_nodeOffset;
223 }
224
225 size_t get_local_node_offset(IJK_t index) const
226 {
227 return get_local_node_offset(index[0], index[1], index[2]);
228 }
229
230 std::vector<INT> get_cell_node_ids(bool add_offset) const
231 {
232 size_t node_count = get_property("node_count").get_int();
233 std::vector<INT> ids(node_count);
234 get_cell_node_ids(ids.data(), add_offset);
235 return ids;
236 }
237
238 template <typename INT_t> size_t get_cell_node_ids(INT_t *idata, bool add_offset) const
239 {
240 // Fill 'idata' with the cell node ids which are the
241 // 1-based location of each node in this zone
242 // The location is based on the "model" (all processors) zone.
243 // If this is a parallel decomposed model, then
244 // this block may be a subset of the "model" zone
245 //
246 // if 'add_offset' is true, then add the m_cellGlobalOffset
247 // which changes the location to be the location in the
248 // entire "mesh" instead of within a "zone" (all processors)
249
250 size_t index = 0;
251 size_t offset = add_offset ? m_nodeGlobalOffset : 0;
252
253 if (m_nk == 0 && m_nj == 0 && m_ni == 0) {
254 return index;
255 }
256
257 for (int kk = 0; kk < m_nk + 1; kk++) {
258 size_t k = m_offsetK + kk;
259 for (int jj = 0; jj < m_nj + 1; jj++) {
260 size_t j = m_offsetJ + jj;
261 for (int ii = 0; ii < m_ni + 1; ii++) {
262 size_t i = m_offsetI + ii;
263
264 size_t ind = k * (m_niGlobal + 1) * (m_njGlobal + 1) + j * (m_niGlobal + 1) + i;
265
266 idata[index++] = ind + offset + 1;
267 }
268 }
269 }
270
271 for (auto idx_id : m_globalIdMap) {
272 idata[idx_id.first] = idx_id.second;
273 }
274
275 return index;
276 }
277
278 template <typename INT_t> size_t get_cell_ids(INT_t *idata, bool add_offset) const
279 {
280 // Fill 'idata' with the cell ids which are the
281 // 1-based location of each cell in this zone
282 // The location is based on the "model" zone.
283 // If this is a parallel decomposed model, then
284 // this block may be a subset of the "model" zone
285 //
286 // if 'add_offset' is true, then add the m_cellGlobalOffset
287 // which changes the location to be the location in the
288 // entire "mesh" instead of within a "zone"
289
290 size_t index = 0;
291 size_t offset = add_offset ? m_cellGlobalOffset : 0;
292
293 if (m_nk == 0 && m_nj == 0 && m_ni == 0) {
294 return index;
295 }
296
297 for (int kk = 0; kk < m_nk; kk++) {
298 size_t k = m_offsetK + kk;
299 for (int jj = 0; jj < m_nj; jj++) {
300 size_t j = m_offsetJ + jj;
301 for (int ii = 0; ii < m_ni; ii++) {
302 size_t i = m_offsetI + ii;
303
304 size_t ind = k * m_niGlobal * m_njGlobal + j * m_niGlobal + i;
305
306 idata[index++] = ind + offset + 1;
307 }
308 }
309 }
310 return index;
311 }
312
313 bool contains(size_t global_offset) const
314 {
315 return (global_offset >= m_nodeOffset &&
316 global_offset < m_nodeOffset + get_property("node_count").get_int());
317 }
318
319 protected:
320 int64_t internal_get_field_data(const Field &field, void *data,
321 size_t data_size) const override;
322
323 int64_t internal_put_field_data(const Field &field, void *data,
324 size_t data_size) const override;
325
326 private:
327 int m_ni{};
328 int m_nj{};
329 int m_nk{};
330
331 int m_offsetI{}; // Valid 'i' ordinal runs from m_offsetI+1 to m_offsetI+m_ni
332 int m_offsetJ{};
333 int m_offsetK{};
334
335 int m_niGlobal{}; // The ni,nj,nk of the master block this is a subset of.
336 int m_njGlobal{};
337 int m_nkGlobal{};
338
339 size_t m_nodeOffset{};
340 size_t m_cellOffset{};
341
342 size_t m_nodeGlobalOffset{};
343 size_t m_cellGlobalOffset{};
344
345 Ioss::NodeBlock m_nodeBlock;
346
347 public:
348 std::vector<ZoneConnectivity> m_zoneConnectivity;
349 std::vector<BoundaryCondition> m_boundaryConditions;
350 std::vector<size_t> m_blockLocalNodeIndex;
351 std::vector<std::pair<size_t, size_t>> m_globalIdMap;
352 };
353 } // namespace Ioss
354 #endif
Ioss::StructuredBlock::get_cell_offset
size_t get_cell_offset() const
Definition: Ioss_StructuredBlock.h:170
Ioss::StructuredBlock::m_offsetJ
int m_offsetJ
Definition: Ioss_StructuredBlock.h:332
Ioss::BoundaryCondition::which_face
int which_face() const
Definition: Ioss_StructuredBlock.C:274
Ioss::StructuredBlock::~StructuredBlock
~StructuredBlock() override
Ioss::StructuredBlock::m_globalIdMap
std::vector< std::pair< size_t, size_t > > m_globalIdMap
Definition: Ioss_StructuredBlock.h:351
Ioss::Field
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
Ioss_Property.h
Ioss::StructuredBlock::m_cellGlobalOffset
size_t m_cellGlobalOffset
Definition: Ioss_StructuredBlock.h:343
Ioss::StructuredBlock::m_offsetI
int m_offsetI
Definition: Ioss_StructuredBlock.h:331
Ioss::StructuredBlock::m_niGlobal
int m_niGlobal
Definition: Ioss_StructuredBlock.h:335
Ioss::StructuredBlock::set_node_offset
void set_node_offset(size_t offset)
Set the 'offset' for the block.
Definition: Ioss_StructuredBlock.h:164
Ioss::StructuredBlock::get_local_node_offset
size_t get_local_node_offset(int i, int j, int k) const
Definition: Ioss_StructuredBlock.h:220
Ioss::StructuredBlock::contains
bool contains(size_t global_offset) const
Definition: Ioss_StructuredBlock.h:313
Ioss::StructuredBlock::get_cell_node_ids
size_t get_cell_node_ids(INT_t *idata, bool add_offset) const
Definition: Ioss_StructuredBlock.h:238
Ioss::StructuredBlock::m_blockLocalNodeIndex
std::vector< size_t > m_blockLocalNodeIndex
Definition: Ioss_StructuredBlock.h:350
Ioss::BoundaryCondition::BoundaryCondition
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
Ioss::StructuredBlock::get_global_cell_id
size_t get_global_cell_id(int i, int j, int k) const
Definition: Ioss_StructuredBlock.h:176
Ioss::StructuredBlock::m_nk
int m_nk
Definition: Ioss_StructuredBlock.h:329
Ioss
The main namespace for the Ioss library.
Definition: Ioad_DatabaseIO.C:66
Ioss::STRUCTUREDBLOCK
Definition: Ioss_EntityType.h:54
Ioss::StructuredBlock::get_bounding_box
AxisAlignedBoundingBox get_bounding_box() const
Definition: Ioss_StructuredBlock.C:236
Ioss::StructuredBlock::m_nj
int m_nj
Definition: Ioss_StructuredBlock.h:328
Ioss::StructuredBlock
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:103
Ioss::StructuredBlock::get_cell_node_ids
std::vector< INT > get_cell_node_ids(bool add_offset) const
Definition: Ioss_StructuredBlock.h:230
Ioss::StructuredBlock::get_local_node_offset
size_t get_local_node_offset(IJK_t index) const
Definition: Ioss_StructuredBlock.h:225
Ioss::BoundaryCondition::m_bcName
std::string m_bcName
Definition: Ioss_StructuredBlock.h:87
INT
int INT
Definition: Ioss_StructuredBlock.h:53
Ioss::BoundaryCondition::get_face_count
size_t get_face_count() const
Definition: Ioss_StructuredBlock.C:241
Ioss::StructuredBlock::get_block_local_node_offset
size_t get_block_local_node_offset(IJK_t index) const
Definition: Ioss_StructuredBlock.h:213
Ioss::StructuredBlock::internal_get_field_data
int64_t internal_get_field_data(const Field &field, void *data, size_t data_size) const override
Definition: Ioss_StructuredBlock.C:224
Ioss::EntityType
EntityType
The particular type of GroupingEntity.
Definition: Ioss_EntityType.h:39
Ioss::StructuredBlock::m_nodeBlock
Ioss::NodeBlock m_nodeBlock
Definition: Ioss_StructuredBlock.h:345
Ioss::DatabaseIO
An input or output Database.
Definition: Ioss_DatabaseIO.h:82
Ioss::AxisAlignedBoundingBox
Definition: Ioss_BoundingBox.h:37
Ioss::BoundaryCondition::m_rangeEnd
Ioss::IJK_t m_rangeEnd
Definition: Ioss_StructuredBlock.h:92
Ioss::StructuredBlock::m_cellOffset
size_t m_cellOffset
Definition: Ioss_StructuredBlock.h:340
Ioss::StructuredBlock::get_implicit_property
Property get_implicit_property(const std::string &my_name) const override
Calculate and get an implicit property.
Definition: Ioss_StructuredBlock.C:219
Ioss::StructuredBlock::m_offsetK
int m_offsetK
Definition: Ioss_StructuredBlock.h:333
Ioss::StructuredBlock::clone
StructuredBlock * clone(DatabaseIO *database) const
Definition: Ioss_StructuredBlock.C:203
Ioss::StructuredBlock::m_zoneConnectivity
std::vector< ZoneConnectivity > m_zoneConnectivity
Definition: Ioss_StructuredBlock.h:348
Ioss::StructuredBlock::StructuredBlock
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:123
Ioss::StructuredBlock::get_node_block
const Ioss::NodeBlock & get_node_block() const
Definition: Ioss_StructuredBlock.h:127
Ioss::BoundaryCondition::m_famName
std::string m_famName
Definition: Ioss_StructuredBlock.h:88
Ioss::StructuredBlock::set_cell_offset
void set_cell_offset(size_t offset)
Definition: Ioss_StructuredBlock.h:165
Ioss::BoundaryCondition::m_rangeBeg
Ioss::IJK_t m_rangeBeg
Definition: Ioss_StructuredBlock.h:91
Ioss::StructuredBlock::contains_string
std::string contains_string() const override
What does this entity contain.
Definition: Ioss_StructuredBlock.h:124
Ioss::StructuredBlock::m_njGlobal
int m_njGlobal
Definition: Ioss_StructuredBlock.h:336
Ioss::EntityBlock
Base class for all 'block'-type grouping entities, which means all members of the block are similar o...
Definition: Ioss_EntityBlock.h:61
Ioss::StructuredBlock::type
EntityType type() const override
Get the EntityType, which indicates the particular type of GroupingEntity this is.
Definition: Ioss_StructuredBlock.h:125
Ioss::StructuredBlock::get_node_block
Ioss::NodeBlock & get_node_block()
Definition: Ioss_StructuredBlock.h:128
Ioss::StructuredBlock::m_nkGlobal
int m_nkGlobal
Definition: Ioss_StructuredBlock.h:337
Ioss::Property::get_int
int64_t get_int() const
Get the property value if it is of type INTEGER.
Definition: Ioss_Property.C:188
Ioss::IJK_t
std::array< int, 3 > IJK_t
Definition: Ioss_CodeTypes.h:54
Ioss::StructuredBlock::type_string
std::string type_string() const override
Get the name of the particular type of entity.
Definition: Ioss_StructuredBlock.h:122
Ioss::BoundaryCondition::is_valid
bool is_valid() const
Definition: Ioss_StructuredBlock.C:264
Ioss::StructuredBlock::is_active
bool is_active() const
Does block contain any cells.
Definition: Ioss_StructuredBlock.h:132
Ioss::StructuredBlock::get_global_node_offset
size_t get_global_node_offset(int i, int j, int k) const
Definition: Ioss_StructuredBlock.h:190
Ioss::GroupingEntity::get_property
Property get_property(const std::string &property_name) const
Get the Property from the property manager associated with the entity.
Definition: Ioss_GroupingEntity.h:356
Ioss::StructuredBlock::get_cell_global_offset
size_t get_cell_global_offset() const
Definition: Ioss_StructuredBlock.h:172
Ioss::StructuredBlock::get_block_local_node_offset
size_t get_block_local_node_offset(int ii, int jj, int kk) const
Definition: Ioss_StructuredBlock.h:203
anonymous_namespace{cth_pressure_map.C}::data
std::vector< char > data
Definition: cth_pressure_map.C:74
Ioss::StructuredBlock::internal_put_field_data
int64_t internal_put_field_data(const Field &field, void *data, size_t data_size) const override
Definition: Ioss_StructuredBlock.C:230
Ioss::BoundaryCondition::BoundaryCondition
BoundaryCondition(const std::string name, const Ioss::IJK_t range_beg, const Ioss::IJK_t range_end)
Definition: Ioss_StructuredBlock.h:69
Ioss::StructuredBlock::set_node_global_offset
void set_node_global_offset(size_t offset)
Definition: Ioss_StructuredBlock.h:166
Ioss::StructuredBlock::get_cell_ids
size_t get_cell_ids(INT_t *idata, bool add_offset) const
Definition: Ioss_StructuredBlock.h:278
Ioss::StructuredBlock::m_boundaryConditions
std::vector< BoundaryCondition > m_boundaryConditions
Definition: Ioss_StructuredBlock.h:349
Ioss::StructuredBlock::set_cell_global_offset
void set_cell_global_offset(size_t offset)
Definition: Ioss_StructuredBlock.h:167
Ioss::BoundaryCondition::operator<<
friend std::ostream & operator<<(std::ostream &os, const BoundaryCondition &bc)
Definition: Ioss_StructuredBlock.C:296
Ioss::BoundaryCondition::m_face
int m_face
Definition: Ioss_StructuredBlock.h:94
Ioss::NodeBlock
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
Ioss_NodeBlock.h
Ioss::StructuredBlock::m_nodeOffset
size_t m_nodeOffset
Definition: Ioss_StructuredBlock.h:339
Ioss::StructuredBlock::get_node_offset
size_t get_node_offset() const
Definition: Ioss_StructuredBlock.h:169
Ioss_BoundingBox.h
anonymous_namespace{io_info.C}::name
std::string name(const Ioss::GroupingEntity *entity)
Definition: io_info.C:89
Ioss::BoundaryCondition
Definition: Ioss_StructuredBlock.h:59
Ioss::Property
A named value that has a known type.
Definition: Ioss_Property.h:47
Ioss::StructuredBlock::get_node_global_offset
size_t get_node_global_offset() const
Definition: Ioss_StructuredBlock.h:171
Ioss::StructuredBlock::short_type_string
std::string short_type_string() const override
Get a short name of the particular type of entity.
Definition: Ioss_StructuredBlock.h:123
Ioss::StructuredBlock::m_nodeGlobalOffset
size_t m_nodeGlobalOffset
Definition: Ioss_StructuredBlock.h:342
Ioss::StructuredBlock::get_global_cell_id
size_t get_global_cell_id(IJK_t index) const
Definition: Ioss_StructuredBlock.h:182
Ioss::StructuredBlock::m_ni
int m_ni
Definition: Ioss_StructuredBlock.h:327
Ioss_CodeTypes.h
Ioss::StructuredBlock::get_global_node_offset
size_t get_global_node_offset(IJK_t index) const
Definition: Ioss_StructuredBlock.h:196
Ioss_EntityBlock.h
Ioss_ZoneConnectivity.h