IOSS 2.0

Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | List of all members
Ioss::StructuredBlock Class Reference

A structured zone – i,j,k. More...

`#include <Ioss_StructuredBlock.h>`

Inheritance diagram for Ioss::StructuredBlock:
[legend]
Collaboration diagram for Ioss::StructuredBlock:
[legend]

## Public Member Functions
| 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)
| StructuredBlock (DatabaseIO *io_database, const std::string &my_name, int index_dim, Ioss::IJK_t &ordinal, Ioss::IJK_t &offset, Ioss::IJK_t &global_ordinal)
| StructuredBlock (DatabaseIO *io_database, const std::string &my_name, int index_dim, int ni, int nj, int nk)
| Create a structured block. More...
| StructuredBlock (DatabaseIO *io_database, const std::string &my_name, int index_dim, Ioss::IJK_t &ordinal)
StructuredBlock * | clone (DatabaseIO *database) const
| ~StructuredBlock () override
std::string | type_string () const override
| Get the name of the particular type of entity. More...
std::string | short_type_string () const override
| Get a short name of the particular type of entity. More...
std::string | contains_string () const override
| What does this entity contain. More...
EntityType | type () const override
| Get the EntityType, which indicates the particular type of GroupingEntity this is. More...
const Ioss::NodeBlock & | get_node_block () const
Ioss::NodeBlock & | get_node_block ()
bool | is_active () const
| Does block contain any cells. More...
Property | get_implicit_property (const std::string &my_name) const override
| Calculate and get an implicit property. More...
AxisAlignedBoundingBox | get_bounding_box () const
void | set_node_offset (size_t offset)
| Set the 'offset' for the block. More...
void | set_cell_offset (size_t offset)
void | set_node_global_offset (size_t offset)
void | set_cell_global_offset (size_t offset)
size_t | get_node_offset () const
size_t | get_cell_offset () const
size_t | get_node_global_offset () const
size_t | get_cell_global_offset () const
size_t | get_global_cell_id (int i, int j, int k) const
size_t | get_global_cell_id (IJK_t index) const
size_t | get_global_node_offset (int i, int j, int k) const
size_t | get_global_node_offset (IJK_t index) const
size_t | get_block_local_node_offset (int ii, int jj, int kk) const
size_t | get_block_local_node_offset (IJK_t index) const
size_t | get_local_node_offset (int i, int j, int k) const
size_t | get_local_node_offset (IJK_t index) const
std::vector< INT > | get_cell_node_ids (bool add_offset) const
template<typename INT_t >
size_t | get_cell_node_ids (INT_t *idata, bool add_offset) const
template<typename INT_t >
size_t | get_cell_ids (INT_t *idata, bool add_offset) const
bool | contains (size_t global_offset) const
Public Member Functions inherited from Ioss::EntityBlock
const ElementTopology * | topology () const
| Get the topology of the entities in the block. More...
bool | contains (size_t local_id) const
| Determine whether the block contains the entity with a given id. More...
void | set_offset (size_t offset)
| Set the 'offset' for the block. More...
size_t | get_offset () const
| Get the 'offset' for the block. More...
Public Member Functions inherited from Ioss::GroupingEntity
| GroupingEntity ()=default
| GroupingEntity (DatabaseIO *io_database, const std::string &my_name, int64_t entity_count)
| Base class constructor adds "name" and "entity_count" properties to the entity. More...
| GroupingEntity (const GroupingEntity &)=delete
GroupingEntity & | operator= (const GroupingEntity &)=delete
virtual | ~GroupingEntity ()
State | get_state () const
| Get the current Ioss::State of the entity. More...
DatabaseIO * | get_database () const
void | set_database (DatabaseIO *io_database)
virtual void | delete_database ()
virtual const GroupingEntity * | contained_in () const
const std::string & | name () const
| Get name of entity. More...
void | set_name (const std::string &new_name)
| Set the name of the entity. More...
std::string | generic_name () const
| Get a generated name based on the type of the entity and the id. More...
bool | is_alias (const std::string &my_name) const
virtual void | block_membership (std::vector< std::string > &)
| Get list of blocks that the entities in this GroupingEntity "touch". More...
std::string | get_filename () const
| Get the file name associated with the database containing this entity. More...
void | property_add (const Property &new_prop)
| Add a property to the entity's property manager. More...
void | property_erase (const std::string &property_name)
| Remove a property from the entity's property manager. More...
bool | property_exists (const std::string &property_name) const
| Checks if a property exists in the entity's property manager. More...
Property | get_property (const std::string &property_name) const
| Get the Property from the property manager associated with the entity. More...
int | property_describe (NameList *names) const
| Get the names of all properties in the property manager for this entity. More...
size_t | property_count () const
| Get the number of properties defined in the property manager for this entity. More...
void | property_update (const std::string &property, int64_t value) const
void | property_update (const std::string &property, const std::string &value) const
void | field_add (const Field &new_field)
| Add a field to the entity's field manager. More...
void | field_erase (const std::string &field_name)
| Remove a field from the entity's field manager. More...
bool | field_exists (const std::string &field_name) const
| Checks if a field with a given name exists in the entity's field manager. More...
Field | get_field (const std::string &field_name) const
| Get a field from the entity's field manager. More...
const Field & | get_fieldref (const std::string &field_name) const
| Get a reference to a field from the entity's field manager. More...
int | field_describe (NameList *names) const
| Get the names of all fields in the entity's field manager. More...
int | field_describe (Field::RoleType role, NameList *names) const
| Get the names of all fields of a specified RoleType in the entity's field manager. More...
size_t | field_count () const
| Get the number of fields in the entity's field manager. More...
size_t | field_count (Field::RoleType role) const
| Get the number of fields with the given role (MESH, ATTRIBUTE, TRANSIENT, REDUCTION, etc.) in the entity's field manager. More...
int64_t | get_field_data (const std::string &field_name, void *data, size_t data_size) const
| Read field data from the database file into memory using a pointer. More...
int64_t | put_field_data (const std::string &field_name, void *data, size_t data_size) const
| Write field data from memory into the database file using a pointer. More...
template<typename T >
int64_t | get_field_data (const std::string &field_name, std::vector< T > &data) const
| Read type 'T' field data from the database file into memory using a std::vector. More...
template<typename T >
int64_t | put_field_data (const std::string &field_name, const std::vector< T > &data) const
| Write type 'T' field data from memory into the database file using a std::vector. More...
template<typename T >
int64_t | put_field_data (const std::string &field_name, std::vector< T > &data) const
Ioss::Field::BasicType | field_int_type () const
unsigned int | hash () const
int64_t | entity_count () const

## Public Attributes
std::vector< ZoneConnectivity > | m_zoneConnectivity
std::vector< BoundaryCondition > | m_boundaryConditions
std::vector< size_t > | m_blockLocalNodeIndex
std::vector< std::pair< size_t, size_t > > | m_globalIdMap

## Protected Member Functions
int64_t | internal_get_field_data (const Field &field, void *data, size_t data_size) const override
int64_t | internal_put_field_data (const Field &field, void *data, size_t data_size) const override
Protected Member Functions inherited from Ioss::EntityBlock
| EntityBlock (DatabaseIO *io_database, const std::string &my_name, const std::string &entity_type, size_t entity_cnt)
| Constructor adds "name" and "entity_count" properties to the entity and specifies the topology type for the entity block. More...
| EntityBlock (const EntityBlock &)=delete
EntityBlock & | operator= (const EntityBlock &)=delete
Protected Member Functions inherited from Ioss::GroupingEntity
void | count_attributes () const
bool | set_state (State new_state)
void | really_delete_database ()

## Private Attributes
int | m_ni {}
int | m_nj {}
int | m_nk {}
int | m_offsetI {}
int | m_offsetJ {}
int | m_offsetK {}
int | m_niGlobal {}
int | m_njGlobal {}
int | m_nkGlobal {}
size_t | m_nodeOffset {}
size_t | m_cellOffset {}
size_t | m_nodeGlobalOffset {}
size_t | m_cellGlobalOffset {}
Ioss::NodeBlock | m_nodeBlock

## Additional Inherited Members
Protected Attributes inherited from Ioss::EntityBlock
ElementTopology * | topology_
size_t | idOffset
Protected Attributes inherited from Ioss::GroupingEntity
PropertyManager | properties
FieldManager | fields
int64_t | entityCount = 0

## Detailed Description

A structured zone – i,j,k.

## Constructor & Destructor Documentation

## ◆ StructuredBlock() [1/4]

Ioss::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
| ) |  |

## ◆ StructuredBlock() [2/4]

Ioss::StructuredBlock::StructuredBlock | ( | DatabaseIO * | io_database,
|  | const std::string & | my_name,
|  | int | index_dim,
|  | Ioss::IJK_t & | ordinal,
|  | Ioss::IJK_t & | offset,
|  | Ioss::IJK_t & | global_ordinal
| ) |  |

## ◆ StructuredBlock() [3/4]

Ioss::StructuredBlock::StructuredBlock | ( | DatabaseIO * | io_database,
|  | const std::string & | my_name,
|  | int | index_dim,
|  | int | ni,
|  | int | nj,
|  | int | nk
| ) |  |

Create a structured block.

Parameters

  [in] | io_database | The database associated with the region containing the structured block.
  [in] | my_name | The structured block's name.
  [in] | index_dim | The dimensionality of the block – 1D, 2D, 3D
  [in] | ni | The number of intervals in the (i) direction.
  [in] | nj | The number of intervals in the (j) direction. Zero if 1D
  [in] | nk | The number of intervals in the (k) direction. Zero if 2D

## ◆ StructuredBlock() [4/4]

Ioss::StructuredBlock::StructuredBlock | ( | DatabaseIO * | io_database,
|  | const std::string & | my_name,
|  | int | index_dim,
|  | Ioss::IJK_t & | ordinal
| ) |  |

## ◆ ~StructuredBlock()

Ioss::StructuredBlock::~StructuredBlock | ( |  | ) |
| override default

## Member Function Documentation

## ◆ clone()

StructuredBlock * Ioss::StructuredBlock::clone | ( | DatabaseIO * | database | ) | const

## ◆ contains()

bool Ioss::StructuredBlock::contains | ( | size_t | global_offset | ) | const
| inline

## ◆ contains_string()

std::string Ioss::StructuredBlock::contains_string | ( |  | ) | const
| inline override virtual

What does this entity contain.

Returns
  The name of the thing this entity contains.

Implements Ioss::GroupingEntity.

## ◆ get_block_local_node_offset() [1/2]

size_t Ioss::StructuredBlock::get_block_local_node_offset | ( | IJK_t | index | ) | const
| inline

## ◆ get_block_local_node_offset() [2/2]

size_t Ioss::StructuredBlock::get_block_local_node_offset | ( | int | ii,
|  | int | jj,
|  | int | kk
| ) |  | const
| inline

## ◆ get_bounding_box()

AxisAlignedBoundingBox Ioss::StructuredBlock::get_bounding_box | ( |  | ) | const

## ◆ get_cell_global_offset()

size_t Ioss::StructuredBlock::get_cell_global_offset | ( |  | ) | const
| inline

## ◆ get_cell_ids()

template<typename INT_t >

size_t Ioss::StructuredBlock::get_cell_ids | ( | INT_t * | idata,
|  | bool | add_offset
| ) |  | const
| inline

## ◆ get_cell_node_ids() [1/2]

std::vector<INT> Ioss::StructuredBlock::get_cell_node_ids | ( | bool | add_offset | ) | const
| inline

## ◆ get_cell_node_ids() [2/2]

template<typename INT_t >

size_t Ioss::StructuredBlock::get_cell_node_ids | ( | INT_t * | idata,
|  | bool | add_offset
| ) |  | const
| inline

## ◆ get_cell_offset()

size_t Ioss::StructuredBlock::get_cell_offset | ( |  | ) | const
| inline

## ◆ get_global_cell_id() [1/2]

size_t Ioss::StructuredBlock::get_global_cell_id | ( | IJK_t | index | ) | const
| inline

## ◆ get_global_cell_id() [2/2]

size_t Ioss::StructuredBlock::get_global_cell_id | ( | int | i,
|  | int | j,
|  | int | k
| ) |  | const
| inline

## ◆ get_global_node_offset() [1/2]

size_t Ioss::StructuredBlock::get_global_node_offset | ( | IJK_t | index | ) | const
| inline

## ◆ get_global_node_offset() [2/2]

size_t Ioss::StructuredBlock::get_global_node_offset | ( | int | i,
|  | int | j,
|  | int | k
| ) |  | const
| inline

## ◆ get_implicit_property()

Property Ioss::StructuredBlock::get_implicit_property | ( | const std::string & | my_name | ) | const
| override virtual

Calculate and get an implicit property.

These are calcuated from data stored in the EntityBlock instead of having an explicit value assigned. An example would be 'topology_node_count' for an ElementBlock. Note that even though this is a pure virtual function, an implementation is provided to return properties that are common to all 'block'-type grouping entities. Derived classes should call 'EntityBlock::get_implicit_property' if the requested property is not specific to their type.

Implements Ioss::EntityBlock.

## ◆ get_local_node_offset() [1/2]

size_t Ioss::StructuredBlock::get_local_node_offset | ( | IJK_t | index | ) | const
| inline

## ◆ get_local_node_offset() [2/2]

size_t Ioss::StructuredBlock::get_local_node_offset | ( | int | i,
|  | int | j,
|  | int | k
| ) |  | const
| inline

## ◆ get_node_block() [1/2]

Ioss::NodeBlock& Ioss::StructuredBlock::get_node_block | ( |  | ) |
| inline

## ◆ get_node_block() [2/2]

const Ioss::NodeBlock& Ioss::StructuredBlock::get_node_block | ( |  | ) | const
| inline

## ◆ get_node_global_offset()

size_t Ioss::StructuredBlock::get_node_global_offset | ( |  | ) | const
| inline

## ◆ get_node_offset()

size_t Ioss::StructuredBlock::get_node_offset | ( |  | ) | const
| inline

## ◆ internal_get_field_data()

int64_t Ioss::StructuredBlock::internal_get_field_data | ( | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| override protected virtual

Implements Ioss::GroupingEntity.

## ◆ internal_put_field_data()

int64_t Ioss::StructuredBlock::internal_put_field_data | ( | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| override protected virtual

Implements Ioss::GroupingEntity.

## ◆ is_active()

bool Ioss::StructuredBlock::is_active | ( |  | ) | const
| inline

Does block contain any cells.

## ◆ set_cell_global_offset()

void Ioss::StructuredBlock::set_cell_global_offset | ( | size_t | offset | ) |
| inline

## ◆ set_cell_offset()

void Ioss::StructuredBlock::set_cell_offset | ( | size_t | offset | ) |
| inline

## ◆ set_node_global_offset()

void Ioss::StructuredBlock::set_node_global_offset | ( | size_t | offset | ) |
| inline

## ◆ set_node_offset()

void Ioss::StructuredBlock::set_node_offset | ( | size_t | offset | ) |
| inline

Set the 'offset' for the block.

The 'offset' is used to map a cell or node location within a structured block to the model implicit cell or node location on a single processor. zero-based.

The 'global' offsets do the same except for they apply over the entire model on all processors. zero-based.

For example, the file descriptor (1-based) of the 37th cell in the 4th block is calculated by:

file_descriptor = offset of block 4 + 37

This can also be used to determine which structured block a cell with a file_descriptor maps into. An particular structured block contains all cells in the range:

offset < file_descriptor <= offset+number_cells_per_block

Note that for nodes, the nodeOffset does not take into account the nodes that are shared between blocks.

## ◆ short_type_string()

std::string Ioss::StructuredBlock::short_type_string | ( |  | ) | const
| inline override virtual

Get a short name of the particular type of entity.

Returns
  The short name of the particular type of entity.

Implements Ioss::GroupingEntity.

## ◆ type()

EntityType Ioss::StructuredBlock::type | ( |  | ) | const
| inline override virtual

Get the EntityType, which indicates the particular type of GroupingEntity this is.

Returns
  The particular EntityType of this GroupingEntity.

Implements Ioss::GroupingEntity.

## ◆ type_string()

std::string Ioss::StructuredBlock::type_string | ( |  | ) | const
| inline override virtual

Get the name of the particular type of entity.

Returns
  The name of the particular type of entity.

Implements Ioss::GroupingEntity.

## Member Data Documentation

## ◆ m_blockLocalNodeIndex

std::vector<size_t> Ioss::StructuredBlock::m_blockLocalNodeIndex

## ◆ m_boundaryConditions

std::vector<BoundaryCondition> Ioss::StructuredBlock::m_boundaryConditions

## ◆ m_cellGlobalOffset

size_t Ioss::StructuredBlock::m_cellGlobalOffset {}
| private

## ◆ m_cellOffset

size_t Ioss::StructuredBlock::m_cellOffset {}
| private

## ◆ m_globalIdMap

std::vector<std::pair<size_t, size_t> > Ioss::StructuredBlock::m_globalIdMap

## ◆ m_ni

int Ioss::StructuredBlock::m_ni {}
| private

## ◆ m_niGlobal

int Ioss::StructuredBlock::m_niGlobal {}
| private

## ◆ m_nj

int Ioss::StructuredBlock::m_nj {}
| private

## ◆ m_njGlobal

int Ioss::StructuredBlock::m_njGlobal {}
| private

## ◆ m_nk

int Ioss::StructuredBlock::m_nk {}
| private

## ◆ m_nkGlobal

int Ioss::StructuredBlock::m_nkGlobal {}
| private

## ◆ m_nodeBlock

Ioss::NodeBlock Ioss::StructuredBlock::m_nodeBlock
| private

## ◆ m_nodeGlobalOffset

size_t Ioss::StructuredBlock::m_nodeGlobalOffset {}
| private

## ◆ m_nodeOffset

size_t Ioss::StructuredBlock::m_nodeOffset {}
| private

## ◆ m_offsetI

int Ioss::StructuredBlock::m_offsetI {}
| private

## ◆ m_offsetJ

int Ioss::StructuredBlock::m_offsetJ {}
| private

## ◆ m_offsetK

int Ioss::StructuredBlock::m_offsetK {}
| private

## ◆ m_zoneConnectivity

std::vector<ZoneConnectivity> Ioss::StructuredBlock::m_zoneConnectivity

The documentation for this class was generated from the following files:

- src/Ioss_StructuredBlock.h
- src/Ioss_StructuredBlock.C