IOSS  2.0
Ioss::EntityBlock Class Referenceabstract

Base class for all 'block'-type grouping entities, which means all members of the block are similar or have the same topology. More...

#include <Ioss_EntityBlock.h>

Public Member Functions

Property get_implicit_property (const std::string &my_name) const override=0
 Calculate and get an implicit property. More...
 
const ElementTopologytopology () 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
 
GroupingEntityoperator= (const GroupingEntity &)=delete
 
virtual ~GroupingEntity ()
 
State get_state () const
 Get the current Ioss::State of the entity. More...
 
DatabaseIOget_database () const
 
void set_database (DatabaseIO *io_database)
 
virtual void delete_database ()
 
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 > &block_members)
 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...
 
virtual std::string type_string () const =0
 Get the name of the particular type of entity. More...
 
virtual std::string short_type_string () const =0
 Get a short name of the particular type of entity. More...
 
virtual EntityType type () const =0
 Get the EntityType, which indicates the particular type of GroupingEntity this is. 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 Fieldget_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...
 
int 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...
 
int 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 >
int 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 >
int 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 >
int 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
 

Protected Member Functions

 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
 
EntityBlockoperator= (const EntityBlock &)=delete
 
- Protected Member Functions inherited from Ioss::GroupingEntity
void count_attributes () const
 
bool set_state (State new_state)
 
void really_delete_database ()
 
virtual int64_t internal_get_field_data (const Field &field, void *data, size_t data_size=0) const =0
 
virtual int64_t internal_put_field_data (const Field &field, void *data, size_t data_size=0) const =0
 

Protected Attributes

ElementTopologytopology_
 
size_t idOffset
 
- Protected Attributes inherited from Ioss::GroupingEntity
PropertyManager properties
 
FieldManager fields
 
int64_t entityCount = 0
 

Detailed Description

Base class for all 'block'-type grouping entities, which means all members of the block are similar or have the same topology.

The following derived classes are typical:

NodeBlock – grouping of 'similar' nodes (same degree of freedom, ...)

ElementBlock – grouping of 'similar' elements (same element topology, attributes, ...) 0d, 1d, 2d, 3d topology possible – e.g., sphere, bar, quad, hex

Constructor & Destructor Documentation

◆ EntityBlock() [1/2]

Ioss::EntityBlock::EntityBlock ( Ioss::DatabaseIO io_database,
const std::string &  my_name,
const std::string &  entity_type,
size_t  entity_cnt 
)
protected

Constructor adds "name" and "entity_count" properties to the entity and specifies the topology type for the entity block.

Parameters
[in]io_databaseThe database associated with the block.
[in]my_nameThe block name.
[in]entity_typeThe topology type for the block.
[in]entity_cntThe number of subentities in the block.

◆ EntityBlock() [2/2]

Ioss::EntityBlock::EntityBlock ( const EntityBlock )
protecteddelete

Member Function Documentation

◆ contains()

bool Ioss::EntityBlock::contains ( size_t  local_id) const
inline

Determine whether the block contains the entity with a given id.

Parameters
[in]local_idThe id to check.
Returns
True if the block contains the entity.

◆ get_implicit_property()

Ioss::Property Ioss::EntityBlock::get_implicit_property ( const std::string &  my_name) const
overridepure 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::GroupingEntity.

Implemented in Ioss::StructuredBlock, Ioss::SideBlock, Ioss::EdgeBlock, Ioss::FaceBlock, Ioss::NodeBlock, and Ioss::ElementBlock.

◆ get_offset()

size_t Ioss::EntityBlock::get_offset ( ) const
inline

Get the 'offset' for the block.

The 'offset' is used to map an element location within an element block to the element 'file descriptor'. For example, the file descriptor of the 37th element in the 4th block is calculated by:

file_descriptor = offset of block 4 + 37

This can also be used to determine which element block an element with a file_descriptor maps into. An particular element block contains all elements in the range:

offset < file_descriptor <= offset+number_elements_per_block

◆ operator=()

EntityBlock& Ioss::EntityBlock::operator= ( const EntityBlock )
protecteddelete

◆ set_offset()

void Ioss::EntityBlock::set_offset ( size_t  offset)
inline

Set the 'offset' for the block.

The 'offset' is used to map an element location within an element block to the element 'file descriptor'. For example, the file descriptor of the 37th element in the 4th block is calculated by:

file_descriptor = offset of block 4 + 37

This can also be used to determine which element block an element with a file_descriptor maps into. An particular element block contains all elements in the range:

offset < file_descriptor <= offset+number_elements_per_block

◆ topology()

const ElementTopology* Ioss::EntityBlock::topology ( ) const
inline

Get the topology of the entities in the block.

Returns
The topology.

Member Data Documentation

◆ idOffset

size_t Ioss::EntityBlock::idOffset
protected

◆ topology_

ElementTopology* Ioss::EntityBlock::topology_
protected

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