33 #ifndef IOSS_Ioss_DatabaseIO_h 34 #define IOSS_Ioss_DatabaseIO_h 58 class ElementTopology;
68 class StructuredBlock;
75 using TopoContainer = std::vector<std::pair<const ElementTopology *, const ElementTopology *>>;
94 int *bad_count =
nullptr)
const 183 void create_path(
const std::string &filename)
const;
328 void add_qa_record(
const std::string &code,
const std::string &code_qa,
const std::string &date,
329 const std::string &time);
340 template <
typename T>
350 template <
typename T>
404 const std::vector<std::string> &inclusions = {});
407 std::vector<std::string> &block_adjacency)
const 413 std::vector<std::string> &block_membership)
const 525 template <
typename T>
527 const std::string &type_name,
const T *set_type);
528 template <
typename T>
530 const std::vector<std::string> &group_spec,
const T *set_type);
618 if (bad_count !=
nullptr) {
646 virtual bool open_group__(
const std::string &group_name) {
return false; }
658 std::vector<std::string> &block_adjacency)
const;
661 std::vector<std::string> &block_membership)
const 670 size_t data_size)
const = 0;
672 size_t data_size)
const = 0;
674 size_t data_size)
const = 0;
676 size_t data_size)
const = 0;
678 size_t data_size)
const = 0;
680 size_t data_size)
const = 0;
682 size_t data_size)
const = 0;
684 size_t data_size)
const = 0;
686 size_t data_size)
const = 0;
688 size_t data_size)
const = 0;
690 size_t data_size)
const = 0;
692 size_t data_size)
const = 0;
694 void * ,
size_t )
const 700 size_t data_size)
const = 0;
702 size_t data_size)
const = 0;
704 size_t data_size)
const = 0;
706 size_t data_size)
const = 0;
708 size_t data_size)
const = 0;
710 size_t data_size)
const = 0;
712 size_t data_size)
const = 0;
714 size_t data_size)
const = 0;
716 size_t data_size)
const = 0;
718 size_t data_size)
const = 0;
720 size_t data_size)
const = 0;
722 size_t data_size)
const = 0;
724 void * ,
size_t )
const 736 #if defined(IOSS_THREADSAFE) 738 mutable std::mutex m_;
bool isInput
Definition: Ioss_DatabaseIO.h:745
virtual void release_memory__()
Definition: Ioss_DatabaseIO.h:634
Ioss::IfDatabaseExistsBehavior open_create_behavior() const
Definition: Ioss_DatabaseIO.C:255
Represents an element topology.
Definition: Ioss_ElementTopology.h:72
virtual int64_t element_global_to_local__(int64_t global) const
Definition: Ioss_DatabaseIO.h:629
void get_block_adjacencies(const Ioss::ElementBlock *eb, std::vector< std::string > &block_adjacency) const
Definition: Ioss_DatabaseIO.h:406
Ioss::DatabaseUsage dbUsage
Definition: Ioss_DatabaseIO.h:588
void check_side_topology() const
Definition: Ioss_DatabaseIO.C:563
void release_memory()
Definition: Ioss_DatabaseIO.h:138
void create_groups(const std::string &property_name, EntityType type, const std::string &type_name, const T *set_type)
Definition: Ioss_DatabaseIO.C:388
void handle_groups()
Definition: Ioss_DatabaseIO.C:363
int64_t get_field(const T *reg, const Field &field, void *data, size_t data_size) const
Definition: Ioss_DatabaseIO.h:341
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
void release_memory()
Definition: Ioss_Map.C:107
void create_path(const std::string &filename) const
This function is used to create the path to an output directory (or history, restart, etc.)
Definition: Ioss_DatabaseIO.C:264
void flush_database() const
Definition: Ioss_DatabaseIO.h:199
std::vector< std::string > qaRecords
Definition: Ioss_DatabaseIO.h:604
bool isParallelConsistent
Definition: Ioss_DatabaseIO.h:746
The main namespace for the Ioss library.
Definition: Iocgns_DatabaseIO.h:50
const Ioss::PropertyManager & get_property_manager() const
Definition: Ioss_DatabaseIO.h:480
An input or output Database.
Definition: Ioss_DatabaseIO.h:80
virtual void set_maximum_symbol_length(int)
Definition: Ioss_DatabaseIO.h:382
void openDatabase() const
Definition: Ioss_DatabaseIO.h:187
DataSize
The number of bytes used to store an integer type.
Definition: Ioss_DataSize.h:40
virtual int64_t put_field_internal(const Region *reg, const Field &field, void *data, size_t data_size) const =0
Ioss::DatabaseUsage usage() const
Get the Ioss::DatabaseUsage type of the database.
Definition: Ioss_DatabaseIO.h:170
virtual int maximum_symbol_length() const
Get the length of the longest name in the database file.
Definition: Ioss_DatabaseIO.h:381
A collection of nodes.
Definition: Ioss_NodeSet.h:53
A collection of element faces with the same topology.
Definition: Ioss_FaceBlock.h:53
void set_surface_split_type(Ioss::SurfaceSplitType split_type)
Definition: Ioss_DatabaseIO.h:400
int parallel_size() const
Definition: Ioss_ParallelUtils.C:203
Definition: Ioss_BoundingBox.h:37
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
std::vector< std::string > blockOmissions
Definition: Ioss_DatabaseIO.h:600
void set_field_recognition(bool yes_no)
Definition: Ioss_DatabaseIO.h:388
virtual bool end__(Ioss::State state)=0
bool singleProcOnly
Definition: Ioss_DatabaseIO.h:752
bool is_input() const
Determine whether the database is an input database.
Definition: Ioss_DatabaseIO.h:164
bool get_use_generic_canonical_name() const
Definition: Ioss_DatabaseIO.h:371
Ioss::Map faceMap
Definition: Ioss_DatabaseIO.h:610
int64_t elementCount
Definition: Ioss_DatabaseIO.h:552
void set_overlay_count(int count) const
Definition: Ioss_DatabaseIO.h:475
Region * get_region() const
Definition: Ioss_DatabaseIO.h:429
A collection of element edges.
Definition: Ioss_EdgeSet.h:54
bool end_state(Region *region, int state, double time)
Definition: Ioss_DatabaseIO.h:279
std::string decodedFilename
Definition: Ioss_DatabaseIO.h:544
virtual int64_t get_field_internal(const Region *reg, const Field &field, void *data, size_t data_size) const =0
AxisAlignedBoundingBox get_bounding_box(const Ioss::ElementBlock *eb) const
Definition: Ioss_DatabaseIO.C:935
void get_block_adjacencies__(const Ioss::ElementBlock *eb, std::vector< std::string > &block_adjacency) const
Definition: Ioss_DatabaseIO.C:624
virtual bool internal_faces_available() const
Definition: Ioss_DatabaseIO.h:298
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:61
bool get_logging() const
Definition: Ioss_DatabaseIO.h:331
bool open_group(const std::string &group_name)
If a database type supports groups and if the database contains groups, open the specified group...
Definition: Ioss_DatabaseIO.h:216
double timeScaleFactor
Definition: Ioss_DatabaseIO.h:585
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
char fieldSeparator
Definition: Ioss_DatabaseIO.h:743
bool lowerCaseVariableNames
Definition: Ioss_DatabaseIO.h:590
Ioss::Map elemMap
Definition: Ioss_DatabaseIO.h:611
std::string DBFilename
Definition: Ioss_DatabaseIO.h:543
bool is_parallel() const
Definition: Ioss_DatabaseIO.h:487
Ioss::DataSize dbIntSizeAPI
Definition: Ioss_DatabaseIO.h:589
Definition: Ioss_ParallelUtils.h:45
int64_t global_to_local(int64_t global, bool must_exist=true) const
Definition: Ioss_Map.C:544
bool ignoreDatabaseNames
Definition: Ioss_DatabaseIO.h:757
void set_use_generic_canonical_name(bool yes_no)
Definition: Ioss_DatabaseIO.h:372
Definition: Ioss_State.h:43
State
Access states for a database.
Definition: Ioss_State.h:42
virtual bool create_subgroup__(const std::string &group_name)
Definition: Ioss_DatabaseIO.h:647
void compute_block_membership(Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const
Definition: Ioss_DatabaseIO.h:412
std::vector< std::string > informationRecords
Definition: Ioss_DatabaseIO.h:603
bool begin(Ioss::State state)
Set the database to the given State.
Definition: Ioss_DatabaseIO.h:252
bool usingParallelIO
Definition: Ioss_DatabaseIO.h:591
bool using_parallel_io() const
Definition: Ioss_DatabaseIO.h:106
Ioss::State dbState
Definition: Ioss_DatabaseIO.h:546
A collection of elements having the same topology.
Definition: Ioss_ElementBlock.h:48
void get_step_times()
Definition: Ioss_DatabaseIO.h:291
int64_t put_field(const T *reg, const Field &field, void *data, size_t data_size) const
Definition: Ioss_DatabaseIO.h:351
DatabaseIO & operator=(const DatabaseIO &)=delete
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:98
int int_byte_size_api() const
Returns 4 or 8.
Definition: Ioss_DatabaseIO.C:221
ElementTopology * commonSideTopology
Definition: Ioss_DatabaseIO.h:523
Ioss::PropertyManager properties
Definition: Ioss_DatabaseIO.h:513
A collection of elements.
Definition: Ioss_ElementSet.h:54
virtual bool ok__(bool write_message, std::string *error_message, int *bad_count) const
Definition: Ioss_DatabaseIO.h:616
virtual int64_t put_field_internal(const StructuredBlock *, const Field &, void *, size_t) const
Definition: Ioss_DatabaseIO.h:723
DatabaseUsage
Specifies how an Ioss::DatabaseIO object will be used.
Definition: Ioss_DBUsage.h:40
virtual void read_meta_data__()=0
int overlayCount
Definition: Ioss_DatabaseIO.h:575
virtual void get_step_times__()
Definition: Ioss_DatabaseIO.h:652
void closeDatabase() const
Definition: Ioss_DatabaseIO.h:193
Ioss::Map edgeMap
Definition: Ioss_DatabaseIO.h:609
TopoContainer sideTopology
Used to speed up faceblock/edgeblock calculations.
Definition: Ioss_DatabaseIO.h:565
std::vector< std::vector< bool > > blockAdjacency
Definition: Ioss_DatabaseIO.h:613
void set_cycle_count(int count) const
Definition: Ioss_DatabaseIO.h:474
const std::string & decoded_filename() const
Get a file-per-processor filename associated with the database.
Definition: Ioss_DatabaseIO.C:323
bool useGenericCanonicalName
Definition: Ioss_DatabaseIO.h:754
void read_meta_data()
Definition: Ioss_DatabaseIO.h:285
Ioss::ParallelUtils util_
Definition: Ioss_DatabaseIO.h:735
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
int64_t element_global_to_local(int64_t global) const
Definition: Ioss_DatabaseIO.h:121
bool end(Ioss::State state)
Return the database to STATE_CLOSED.
Definition: Ioss_DatabaseIO.h:268
virtual bool end_state__(Region *region, int state, double time)
Definition: Ioss_DatabaseIO.C:358
void set_region(Region *region)
Definition: Ioss_DatabaseIO.h:185
bool create_subgroup(const std::string &group_name)
If a database type supports groups, create the specified group as a child of the current group...
Definition: Ioss_DatabaseIO.h:232
virtual void flush_database__() const
Definition: Ioss_DatabaseIO.h:644
virtual int int_byte_size_db() const =0
virtual bool begin_state__(Region *region, int state, double time)
Definition: Ioss_DatabaseIO.C:353
void create_group(EntityType type, const std::string &type_name, const std::vector< std::string > &group_spec, const T *set_type)
Definition: Ioss_DatabaseIO.C:417
bool blockAdjacenciesCalculated
Definition: Ioss_DatabaseIO.h:760
virtual void compute_block_membership__(Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const
Definition: Ioss_DatabaseIO.h:660
Definition: Ioss_Map.h:52
virtual void finalize_database()
Definition: Ioss_DatabaseIO.h:146
Region * region_
Definition: Ioss_DatabaseIO.h:742
Definition: Ioss_CommSet.h:51
std::map< std::string, AxisAlignedBoundingBox > elementBlockBoundingBoxes
Definition: Ioss_DatabaseIO.h:733
void set_field_separator(char separator)
Set the character used to separate a field suffix from the field basename when recognizing vector...
Definition: Ioss_DatabaseIO.C:243
Definition: Ioss_SurfaceSplit.h:40
Ioss::SurfaceSplitType splitType
Definition: Ioss_DatabaseIO.h:587
virtual bool node_major() const
Definition: Ioss_DatabaseIO.h:132
std::string get_filename() const
Get the file name associated with the database.
Definition: Ioss_DatabaseIO.h:152
bool begin_state(Region *region, int state, double time)
Definition: Ioss_DatabaseIO.h:274
virtual void set_int_byte_size_api(Ioss::DataSize size) const
Returns 4 or 8.
Definition: Ioss_DatabaseIO.C:233
int parallel_rank() const
Get the processor that this mesh database is on.
Definition: Ioss_DatabaseIO.h:485
A grouping entity that contains other grouping entities.
Definition: Ioss_Region.h:98
void add_information_records(const std::vector< std::string > &info)
Add multiple information records (informative strings) to the database.
Definition: Ioss_DatabaseIO.C:515
void set_logging(bool on_off)
Definition: Ioss_DatabaseIO.h:332
bool enableFieldRecognition
Definition: Ioss_DatabaseIO.h:744
Definition: Ioss_DataSize.h:40
bool is_parallel_consistent() const
Definition: Ioss_DatabaseIO.h:368
SurfaceSplitType
Method used to split sidesets into homogenous blocks.
Definition: Ioss_SurfaceSplit.h:38
virtual bool open_group__(const std::string &group_name)
Definition: Ioss_DatabaseIO.h:646
char get_field_separator() const
Definition: Ioss_DatabaseIO.h:385
bool ignore_database_names() const
Definition: Ioss_DatabaseIO.h:374
void ignore_database_names(bool yes_no)
Definition: Ioss_DatabaseIO.h:375
virtual bool begin__(Ioss::State state)=0
A collection of element sides.
Definition: Ioss_SideSet.h:59
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
Ioss::Map nodeMap
Definition: Ioss_DatabaseIO.h:608
virtual bool internal_edges_available() const
Definition: Ioss_DatabaseIO.h:297
int MPI_Comm
Definition: Ioss_CodeTypes.h:79
void set_parallel_consistency(bool on_off)
Definition: Ioss_DatabaseIO.h:369
int parallel_size() const
Definition: Ioss_DatabaseIO.h:486
void verify_and_log(const GroupingEntity *ge, const Field &field, int in_out) const
Definition: Ioss_DatabaseIO.C:341
int64_t nodeCount
Definition: Ioss_DatabaseIO.h:551
const Ioss::ParallelUtils & util() const
Definition: Ioss_DatabaseIO.h:479
#define IOSS_FUNC_ENTER(m)
Definition: Ioss_CodeTypes.h:114
virtual int64_t node_global_to_local__(int64_t global, bool must_exist) const
Definition: Ioss_DatabaseIO.h:624
void set_common_side_topology() const
Definition: Ioss_DatabaseIO.C:485
virtual int64_t get_field_internal(const StructuredBlock *, const Field &, void *, size_t) const
Definition: Ioss_DatabaseIO.h:693
bool isParallel
true if running in parallel
Definition: Ioss_DatabaseIO.h:548
EntityType
The particular type of GroupingEntity.
Definition: Ioss_EntityType.h:39
bool ok(bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const
Check to see if database state is OK.
Definition: Ioss_DatabaseIO.h:93
bool get_field_recognition() const
Definition: Ioss_DatabaseIO.h:386
int cycleCount
Definition: Ioss_DatabaseIO.h:573
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
int myProcessor
number of processor this database is for
Definition: Ioss_DatabaseIO.h:549
IfDatabaseExistsBehavior
Definition: Ioss_DBUsage.h:56
bool doLogging
Definition: Ioss_DatabaseIO.h:753
std::vector< std::string > blockInclusions
Definition: Ioss_DatabaseIO.h:601
std::vector< char > data
Definition: Ioss_Utils.C:78
A collection of element edges with the same topology.
Definition: Ioss_EdgeBlock.h:53
void error_message(const Ioss::Field &field, Ioss::Field::BasicType requested_type)
Definition: Ioss_Field.C:63
void set_lower_case_variable_names(bool true_false) const
Definition: Ioss_DatabaseIO.h:390
virtual void openDatabase__() const
Definition: Ioss_DatabaseIO.h:642
virtual void closeDatabase__() const
Definition: Ioss_DatabaseIO.h:643
virtual bool needs_shared_node_information() const
Determine whether the database needs information about process ownership of nodes.
Definition: Ioss_DatabaseIO.h:176
Ioss::SurfaceSplitType get_surface_split_type() const
Definition: Ioss_DatabaseIO.h:401
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
std::vector< std::pair< const ElementTopology *, const ElementTopology * > > TopoContainer
Definition: Ioss_DatabaseIO.h:75
void compute_block_adjacencies() const
Definition: Ioss_DatabaseIO.C:666
void set_block_omissions(const std::vector< std::string > &omissions, const std::vector< std::string > &inclusions={})
Definition: Ioss_DatabaseIO.C:549
void set_time_scale_factor(double factor)
Definition: Ioss_DatabaseIO.h:477
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