33 #ifndef IOSS_Ioss_Region_h 34 #define IOSS_Ioss_Region_h 64 class StructuredBlock;
70 class CoordinateFrame;
89 using AliasMap = std::map<std::string, std::string, std::less<std::string>>;
101 explicit Region(
DatabaseIO *iodatabase =
nullptr,
const std::string &my_name =
"");
113 void output_summary(std::ostream &strm,
bool do_transient =
true);
208 bool add_alias(
const std::string &db_name,
const std::string &alias);
210 std::string
get_alias(
const std::string &alias)
const;
211 std::string
get_alias__(
const std::string &alias)
const;
216 int get_aliases(
const std::string &my_name, std::vector<std::string> &aliases)
const;
233 std::string *my_type =
nullptr)
const;
257 void add_qa_record(
const std::string &code,
const std::string &code_qa,
258 const std::string &date =
"",
const std::string &time =
"");
262 size_t data_size)
const override;
265 size_t data_size)
const override;
271 bool add_alias__(
const std::string &db_name,
const std::string &alias);
362 const std::string &date,
const std::string &time)
Definition: Ioss_EntityType.h:52
bool modelDefined
Definition: Ioss_Region.h:300
const std::vector< std::string > & get_information_records() const
Get all information records (informative strings) for the region's database.
Definition: Ioss_Region.h:325
double end_state(int state)
End a state (moment in time).
Definition: Ioss_Region.C:908
const NodeSetContainer & get_nodesets() const
Get all the region's NodeSet objects.
Definition: Ioss_Region.C:1303
A named value that has a known type.
Definition: Ioss_Property.h:47
SideSet * get_sideset(const std::string &my_name) const
Get the side set with the given name.
Definition: Ioss_Region.C:1699
int currentState
Definition: Ioss_Region.h:298
StateTimeContainer stateTimes
Definition: Ioss_Region.h:296
SideBlock * get_sideblock(const std::string &my_name) const
Get the side block with the given name.
Definition: Ioss_Region.C:1720
int64_t node_global_to_local(int64_t global, bool must_exist) const
Get the local (process-specific) node number corresponding to a global node number.
Definition: Ioss_DatabaseIO.h:115
virtual unsigned entity_field_support() const =0
bool begin_mode(State new_state)
Set the Region and the associated DatabaseIO to the given State.
Definition: Ioss_Region.C:530
The main namespace for the Ioss library.
Definition: Iocgns_DatabaseIO.h:50
std::vector< CoordinateFrame > CoordinateFrameContainer
Definition: Ioex_Utils.h:52
StructuredBlock * get_structured_block(const std::string &my_name) const
Get the structured block with the given name.
Definition: Ioss_Region.C:1678
An input or output Database.
Definition: Ioss_DatabaseIO.h:80
std::vector< FaceSet * > FaceSetContainer
Definition: Ioss_Region.h:79
bool end_mode(State current_state)
Return the Region and the associated DatabaseIO to STATE_CLOSED.
Definition: Ioss_Region.C:592
const AliasMap & get_alias_map() const
Get all original name / alias pairs for the region.
Definition: Ioss_Region.C:1476
std::map< std::string, std::string, std::less< std::string > > AliasMap
Definition: Ioss_Region.h:89
std::vector< NodeBlock * > NodeBlockContainer
Definition: Ioss_Region.h:72
CoordinateFrameContainer coordinateFrames
Definition: Ioss_Region.h:294
A collection of nodes.
Definition: Ioss_NodeSet.h:53
virtual int add_state(double time)
Add a state for a specified time.
Definition: Ioss_Region.C:694
A collection of element faces with the same topology.
Definition: Ioss_FaceBlock.h:53
A collection of element faces.
Definition: Ioss_FaceSet.h:54
Base class for all 'grouping' entities. The following derived classes are typical: ...
Definition: Ioss_GroupingEntity.h:93
ElementSetContainer elementSets
Definition: Ioss_Region.h:290
double begin_state(int state)
Begin a state (moment in time).
Definition: Ioss_Region.C:859
std::vector< StructuredBlock * > StructuredBlockContainer
Definition: Ioss_Region.h:83
void transfer_mesh_aliases(Region *to) const
Transfer all relevant aliases from this region to another region.
Definition: Ioss_Region.C:2124
int64_t node_global_to_local(int64_t global, bool must_exist=true) const
Definition: Ioss_Region.h:316
A collection of element edges.
Definition: Ioss_EdgeSet.h:54
NodeBlock * get_node_block(const std::string &my_name) const
Get the node block with the given name.
Definition: Ioss_Region.C:1594
FaceBlockContainer faceBlocks
Definition: Ioss_Region.h:284
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:61
bool end_mode__(State current_state)
Definition: Ioss_Region.C:598
bool is_valid_io_entity(const std::string &my_name, unsigned int io_type, std::string *my_type=nullptr) const
Determine whether the entity with the given name and type exists.
Definition: Ioss_Region.C:1864
const EdgeBlockContainer & get_edge_blocks() const
Get all the region's EdgeBlock objects.
Definition: Ioss_Region.C:1273
CommSet * get_commset(const std::string &my_name) const
Get the comm set with the given name.
Definition: Ioss_Region.C:1822
const std::vector< std::string > & get_information_records() const
Get all information records (informative strings) for the database.
Definition: Ioss_DatabaseIO.h:306
void add_information_record(const std::string &info)
Add an information record (an informative string) to the database.
Definition: Ioss_DatabaseIO.C:525
EdgeBlock * get_edge_block(const std::string &my_name) const
Get the edge block with the given name.
Definition: Ioss_Region.C:1615
Property get_implicit_property(const std::string &my_name) const override
Get an implicit property – These are calcuated from data stored in the grouping entity instead of ha...
Definition: Ioss_Region.C:1994
EdgeBlockContainer edgeBlocks
Definition: Ioss_Region.h:283
State
Access states for a database.
Definition: Ioss_State.h:42
MeshType mesh_type() const
Definition: Ioss_Region.C:395
int64_t internal_put_field_data(const Field &field, void *data, size_t data_size) const override
Definition: Ioss_Region.C:2115
bool transient_defined() const
Determine whether the metadata related to the transient data has been set.
Definition: Ioss_Region.h:145
A collection of elements having the same topology.
Definition: Ioss_ElementBlock.h:48
std::vector< EdgeSet * > EdgeSetContainer
Definition: Ioss_Region.h:78
AliasMap aliases_
Stores alias mappings.
Definition: Ioss_Region.h:279
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:98
A collection of elements.
Definition: Ioss_ElementSet.h:54
EdgeSetContainer edgeSets
Definition: Ioss_Region.h:288
std::vector< CommSet * > CommSetContainer
Definition: Ioss_Region.h:84
int get_current_state() const
Get the index (1-based) of the currently-active state.
Definition: Ioss_Region.h:309
bool add_alias__(const std::string &db_name, const std::string &alias)
Definition: Ioss_Region.C:1404
std::string get_alias__(const std::string &alias) const
Definition: Ioss_Region.C:1440
~Region() override
Definition: Ioss_Region.C:332
std::vector< double > StateTimeContainer
Definition: Ioss_Region.h:85
bool supports_field_type(Ioss::EntityType fld_type) const
Definition: Ioss_Region.h:311
std::vector< EdgeBlock * > EdgeBlockContainer
Definition: Ioss_Region.h:73
std::vector< NodeSet * > NodeSetContainer
Definition: Ioss_Region.h:77
SideSetContainer sideSets
Definition: Ioss_Region.h:292
const StructuredBlockContainer & get_structured_blocks() const
Get all the region's StructuredBlock objects.
Definition: Ioss_Region.C:1291
void add_information_records(const std::vector< std::string > &info)
Add multiple information records (informative strings) to the region's database.
Definition: Ioss_Region.h:335
int64_t internal_get_field_data(const Field &field, void *data, size_t data_size) const override
Definition: Ioss_Region.C:2110
bool begin_mode__(State new_state)
Definition: Ioss_Region.C:536
bool transientDefined
Definition: Ioss_Region.h:301
const CoordinateFrame & get_coordinate_frame(int64_t id) const
Get the coordinate frame with the given id.
Definition: Ioss_Region.C:1843
StructuredBlockContainer structuredBlocks
Definition: Ioss_Region.h:295
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
const CommSetContainer & get_commsets() const
Get all the region's CommSet objects.
Definition: Ioss_Region.C:1327
const ElementBlockContainer & get_element_blocks() const
Get all the region's ElementBlock objects.
Definition: Ioss_Region.C:1285
const FaceSetContainer & get_facesets() const
Get all the region's FaceSet objects.
Definition: Ioss_Region.C:1315
CommSetContainer commSets
Definition: Ioss_Region.h:293
const ElementSetContainer & get_elementsets() const
Get all the region's ElementSet objects.
Definition: Ioss_Region.C:1321
EntityType type() const override
Get the EntityType, which indicates the particular type of GroupingEntity this is.
Definition: Ioss_Region.h:107
const EdgeSetContainer & get_edgesets() const
Get all the region's EdgeSet objects.
Definition: Ioss_Region.C:1309
ElementBlockContainer elementBlocks
Definition: Ioss_Region.h:285
const std::string mesh_type_string() const
Definition: Ioss_Region.C:410
const CoordinateFrameContainer & get_coordinate_frames() const
Get all the region's CoordinateFrame objects.
Definition: Ioss_Region.C:1333
bool model_defined() const
Determine whether the metadata defining the model (nontransient, geometry, and toploloty) has been se...
Definition: Ioss_Region.h:138
void add_information_record(const std::string &info)
Add an information record (an informative string) to the region's database.
Definition: Ioss_Region.h:345
Definition: Ioss_CommSet.h:51
FaceSetContainer faceSets
Definition: Ioss_Region.h:289
const FaceBlockContainer & get_face_blocks() const
Get all the region's FaceBlock objects.
Definition: Ioss_Region.C:1279
FaceSet * get_faceset(const std::string &my_name) const
Get the face set with the given name.
Definition: Ioss_Region.C:1780
int stateCount
Definition: Ioss_Region.h:299
NodeSetContainer nodeSets
Definition: Ioss_Region.h:287
void output_summary(std::ostream &strm, bool do_transient=true)
Print a summary of entities in the region.
Definition: Ioss_Region.C:427
FaceBlock * get_face_block(const std::string &my_name) const
Get the face block with the given name.
Definition: Ioss_Region.C:1636
bool node_major() const
Definition: Ioss_Region.C:393
A grouping entity that contains other grouping entities.
Definition: Ioss_Region.h:98
std::string short_type_string() const override
Get a short name of the particular type of entity.
Definition: Ioss_Region.h:106
void add_information_records(const std::vector< std::string > &info)
Add multiple information records (informative strings) to the database.
Definition: Ioss_DatabaseIO.C:515
int get_aliases(const std::string &my_name, std::vector< std::string > &aliases) const
Get a map containing all aliases defined for the entity with basename 'name'.
Definition: Ioss_Region.C:1458
NodeSet * get_nodeset(const std::string &my_name) const
Get the node set with the given name.
Definition: Ioss_Region.C:1738
ElementSet * get_elementset(const std::string &my_name) const
Get the element set with the given name.
Definition: Ioss_Region.C:1801
DatabaseIO * get_database() const
Definition: Ioss_GroupingEntity.C:111
void add_qa_record(const std::string &code, const std::string &code_qa, const std::string &date="", const std::string &time="")
Add a QA record, which consists of 4 strings, to the region's database.
Definition: Ioss_Region.h:361
ElementBlock * get_element_block(const std::string &my_name) const
Get the element block with the given name.
Definition: Ioss_Region.C:1657
A collection of element sides.
Definition: Ioss_SideSet.h:59
void delete_database() override
Definition: Ioss_Region.C:391
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
bool add(NodeBlock *node_block)
Add a node block to the region.
Definition: Ioss_Region.C:986
std::vector< SideSet * > SideSetContainer
Definition: Ioss_Region.h:82
std::pair< int, double > get_max_time() const
Get the maximum time step index (1-based) and time for the region.
Definition: Ioss_Region.C:795
const SideSetContainer & get_sidesets() const
Get all the region's SideSet objects.
Definition: Ioss_Region.C:1297
MeshType
The mesh type – structured, unstructured, hybrid (future), or unknown.
Definition: Ioss_MeshType.h:39
const NodeBlockContainer & get_node_blocks() const
Get all the region's NodeBlock objects.
Definition: Ioss_Region.C:1267
std::vector< ElementBlock * > ElementBlockContainer
Definition: Ioss_Region.h:75
#define IOSS_FUNC_ENTER(m)
Definition: Ioss_CodeTypes.h:114
void synchronize_id_and_name(const Region *from, bool sync_attribute_field_names=false)
Ensure that the restart and results files have the same ids.
Definition: Ioss_Region.C:2177
Definition: Ioss_CoordinateFrame.h:42
EdgeSet * get_edgeset(const std::string &my_name) const
Get the edge set with the given name.
Definition: Ioss_Region.C:1759
EntityType
The particular type of GroupingEntity.
Definition: Ioss_EntityType.h:39
std::vector< FaceBlock * > FaceBlockContainer
Definition: Ioss_Region.h:74
Region(DatabaseIO *iodatabase=nullptr, const std::string &my_name="")
Constructor reads in all metadata from disk.
Definition: Ioss_Region.C:290
std::string type_string() const override
Get the name of the particular type of entity.
Definition: Ioss_Region.h:105
virtual double get_state_time(int state=-1) const
Get the time corresponding to the specified state or the currently active state.
Definition: Ioss_Region.C:743
std::string get_alias(const std::string &alias) const
Get the original name for an alias.
Definition: Ioss_Region.C:1434
std::vector< char > data
Definition: Ioss_Utils.C:78
A collection of element edges with the same topology.
Definition: Ioss_EdgeBlock.h:53
std::pair< int, double > get_min_time() const
Get the minimum time step index (1-based) and time for the region.
Definition: Ioss_Region.C:828
NodeBlockContainer nodeBlocks
Definition: Ioss_Region.h:282
std::vector< ElementSet * > ElementSetContainer
Definition: Ioss_Region.h:80
void add_qa_record(const std::string &code, const std::string &code_qa, const std::string &date, const std::string &time)
Add a QA record, which consists of 4 strings, to the database.
Definition: Ioss_DatabaseIO.C:540
bool add_alias(const std::string &db_name, const std::string &alias)
Add an alias for a name in a region.
Definition: Ioss_Region.C:1398
GroupingEntity * get_entity(const std::string &my_name, EntityType io_type) const
Get an entity of a known EntityType.
Definition: Ioss_Region.C:1484
const std::vector< std::string > & get_qa_records() const
Get all QA records, each of which consists of 4 strings, from the database.
Definition: Ioss_DatabaseIO.h:327
const std::vector< std::string > & get_qa_records() const
Get all QA records, each of which consists of 4 strings, from the region's database.
Definition: Ioss_Region.h:383