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);
213 bool add_alias(
const std::string &db_name,
const std::string &alias);
215 std::string
get_alias(
const std::string &alias)
const;
216 std::string
get_alias__(
const std::string &alias)
const;
221 int get_aliases(
const std::string &my_name, std::vector<std::string> &aliases)
const;
238 std::string *my_type =
nullptr)
const;
262 void add_qa_record(
const std::string &code,
const std::string &code_qa,
263 const std::string &date =
"",
const std::string &time =
"");
267 size_t data_size = 0)
const override;
270 size_t data_size = 0)
const override;
276 bool add_alias__(
const std::string &db_name,
const std::string &alias);
318 return static_cast<unsigned int>((get_database()->entity_field_support() & fld_type) != 0u) != 0u;
323 return get_database()->node_global_to_local(global, must_exist);
333 return get_database()->get_information_records();
343 return get_database()->add_information_records(info);
353 return get_database()->add_information_record(info);
367 const std::string &date,
const std::string &time)
370 return get_database()->add_qa_record(code, code_qa, date, time);
391 return get_database()->get_qa_records();
Definition: Ioss_EntityType.h:52
bool modelDefined
Definition: Ioss_Region.h:305
const std::vector< std::string > & get_information_records() const
Get all information records (informative strings) for the region's database.
Definition: Ioss_Region.h:330
double end_state(int state)
End a state (moment in time).
Definition: Ioss_Region.C:918
const NodeSetContainer & get_nodesets() const
Get all the region's NodeSet objects.
Definition: Ioss_Region.C:1313
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:1709
int currentState
Definition: Ioss_Region.h:303
StateTimeContainer stateTimes
Definition: Ioss_Region.h:301
SideBlock * get_sideblock(const std::string &my_name) const
Get the side block with the given name.
Definition: Ioss_Region.C:1730
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:1688
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:596
const AliasMap & get_alias_map() const
Get all original name / alias pairs for the region.
Definition: Ioss_Region.C:1486
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:299
A collection of nodes.
Definition: Ioss_NodeSet.h:53
int64_t internal_get_field_data(const Field &field, void *data, size_t data_size=0) const override
Definition: Ioss_Region.C:2120
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:295
double begin_state(int state)
Begin a state (moment in time).
Definition: Ioss_Region.C:869
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:2134
int64_t node_global_to_local(int64_t global, bool must_exist=true) const
Definition: Ioss_Region.h:321
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:1604
FaceBlockContainer faceBlocks
Definition: Ioss_Region.h:289
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:61
bool end_mode__(State current_state)
Definition: Ioss_Region.C:602
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:1874
const EdgeBlockContainer & get_edge_blocks() const
Get all the region's EdgeBlock objects.
Definition: Ioss_Region.C:1283
CommSet * get_commset(const std::string &my_name) const
Get the comm set with the given name.
Definition: Ioss_Region.C:1832
EdgeBlock * get_edge_block(const std::string &my_name) const
Get the edge block with the given name.
Definition: Ioss_Region.C:1625
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:2004
EdgeBlockContainer edgeBlocks
Definition: Ioss_Region.h:288
int64_t internal_put_field_data(const Field &field, void *data, size_t data_size=0) const override
Definition: Ioss_Region.C:2125
State
Access states for a database.
Definition: Ioss_State.h:42
MeshType mesh_type() const
Definition: Ioss_Region.C:395
bool transient_defined() const
Determine whether the metadata related to the transient data has been set.
Definition: Ioss_Region.h:150
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:284
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:103
A collection of elements.
Definition: Ioss_ElementSet.h:54
EdgeSetContainer edgeSets
Definition: Ioss_Region.h:293
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:314
bool add_alias__(const std::string &db_name, const std::string &alias)
Definition: Ioss_Region.C:1414
std::string get_alias__(const std::string &alias) const
Definition: Ioss_Region.C:1450
~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:316
std::vector< EdgeBlock * > EdgeBlockContainer
Definition: Ioss_Region.h:73
std::vector< NodeSet * > NodeSetContainer
Definition: Ioss_Region.h:77
SideSetContainer sideSets
Definition: Ioss_Region.h:297
const StructuredBlockContainer & get_structured_blocks() const
Get all the region's StructuredBlock objects.
Definition: Ioss_Region.C:1301
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:340
virtual int add_state(double time)
Definition: Ioss_Region.h:124
bool begin_mode__(State new_state)
Definition: Ioss_Region.C:555
bool transientDefined
Definition: Ioss_Region.h:306
const CoordinateFrame & get_coordinate_frame(int64_t id) const
Get the coordinate frame with the given id.
Definition: Ioss_Region.C:1853
StructuredBlockContainer structuredBlocks
Definition: Ioss_Region.h:300
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:1337
const ElementBlockContainer & get_element_blocks() const
Get all the region's ElementBlock objects.
Definition: Ioss_Region.C:1295
const FaceSetContainer & get_facesets() const
Get all the region's FaceSet objects.
Definition: Ioss_Region.C:1325
CommSetContainer commSets
Definition: Ioss_Region.h:298
const ElementSetContainer & get_elementsets() const
Get all the region's ElementSet objects.
Definition: Ioss_Region.C:1331
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:1319
ElementBlockContainer elementBlocks
Definition: Ioss_Region.h:290
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:1343
bool model_defined() const
Determine whether the metadata defining the model (nontransient, geometry, and toploloty) has been se...
Definition: Ioss_Region.h:143
void add_information_record(const std::string &info)
Add an information record (an informative string) to the region's database.
Definition: Ioss_Region.h:350
Definition: Ioss_CommSet.h:51
FaceSetContainer faceSets
Definition: Ioss_Region.h:294
const FaceBlockContainer & get_face_blocks() const
Get all the region's FaceBlock objects.
Definition: Ioss_Region.C:1289
FaceSet * get_faceset(const std::string &my_name) const
Get the face set with the given name.
Definition: Ioss_Region.C:1790
int stateCount
Definition: Ioss_Region.h:304
NodeSetContainer nodeSets
Definition: Ioss_Region.h:292
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:1646
std::vector< char > data
Definition: cth_pressure_map.C:73
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
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:1468
virtual int add_state__(double time)
Add a state for a specified time.
Definition: Ioss_Region.C:704
NodeSet * get_nodeset(const std::string &my_name) const
Get the node set with the given name.
Definition: Ioss_Region.C:1748
ElementSet * get_elementset(const std::string &my_name) const
Get the element set with the given name.
Definition: Ioss_Region.C:1811
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:366
ElementBlock * get_element_block(const std::string &my_name) const
Get the element block with the given name.
Definition: Ioss_Region.C:1667
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:996
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:805
const SideSetContainer & get_sidesets() const
Get all the region's SideSet objects.
Definition: Ioss_Region.C:1307
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:1277
std::vector< ElementBlock * > ElementBlockContainer
Definition: Ioss_Region.h:75
#define IOSS_FUNC_ENTER(m)
Definition: Ioss_CodeTypes.h:115
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:2187
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:1769
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:753
std::string get_alias(const std::string &alias) const
Get the original name for an alias.
Definition: Ioss_Region.C:1444
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:838
NodeBlockContainer nodeBlocks
Definition: Ioss_Region.h:287
std::vector< ElementSet * > ElementSetContainer
Definition: Ioss_Region.h:80
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:1408
GroupingEntity * get_entity(const std::string &my_name, EntityType io_type) const
Get an entity of a known EntityType.
Definition: Ioss_Region.C:1494
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:388