Go to the documentation of this file.
33 #ifndef IOSS_Ioss_DatabaseIO_h
34 #define IOSS_Ioss_DatabaseIO_h
60 class ElementTopology;
70 class StructuredBlock;
77 using TopoContainer = std::vector<std::pair<const ElementTopology *, const ElementTopology *>>;
98 int *bad_count =
nullptr)
const
206 virtual const std::string
get_format()
const = 0;
231 void create_path(
const std::string &filename)
const;
244 void openDW(
const std::string &filename)
const;
384 void add_qa_record(
const std::string &code,
const std::string &code_qa,
const std::string &date,
385 const std::string &time);
396 template <
typename T>
406 template <
typename T>
460 const std::vector<std::string> &inclusions = {});
463 std::vector<std::string> &block_adjacency)
const
468 std::vector<std::string> &block_membership)
const
590 template <
typename T>
592 const std::string &type_name,
const T *set_type);
593 template <
typename T>
595 const std::vector<std::string> &group_spec,
const T *set_type);
708 virtual bool ok__(
bool , std::string * ,
709 int *bad_count)
const
711 if (bad_count !=
nullptr) {
748 std::vector<std::string> &block_adjacency)
const;
751 std::vector<std::string> & )
const
760 size_t data_size)
const = 0;
762 size_t data_size)
const = 0;
764 size_t data_size)
const = 0;
766 size_t data_size)
const = 0;
768 size_t data_size)
const = 0;
770 size_t data_size)
const = 0;
772 size_t data_size)
const = 0;
774 size_t data_size)
const = 0;
776 size_t data_size)
const = 0;
778 size_t data_size)
const = 0;
780 size_t data_size)
const = 0;
782 size_t data_size)
const = 0;
784 void * ,
size_t )
const
790 size_t data_size)
const = 0;
792 size_t data_size)
const = 0;
794 size_t data_size)
const = 0;
796 size_t data_size)
const = 0;
798 size_t data_size)
const = 0;
800 size_t data_size)
const = 0;
802 size_t data_size)
const = 0;
804 size_t data_size)
const = 0;
806 size_t data_size)
const = 0;
808 size_t data_size)
const = 0;
810 size_t data_size)
const = 0;
812 size_t data_size)
const = 0;
814 void * ,
size_t )
const
826 #if defined(IOSS_THREADSAFE)
828 mutable std::mutex m_;
854 std::chrono::time_point<std::chrono::high_resolution_clock>
Class SerializeIO is a sentry class which performs serialization for mesh database I/O.
Definition: Ioss_SerializeIO.h:81
void verify_and_log(const GroupingEntity *ge, const Field &field, int in_out) const
Definition: Ioss_DatabaseIO.C:476
bool m_timeStateInOut
Definition: Ioss_DatabaseIO.h:852
std::string get_dwname() const
Definition: Ioss_DatabaseIO.h:161
void set_overlay_count(int count) const
Definition: Ioss_DatabaseIO.h:530
Ioss::Map nodeMap
Definition: Ioss_DatabaseIO.h:696
bool is_input() const
Determine whether the database is an input database.
Definition: Ioss_DatabaseIO.h:212
virtual bool ok__(bool, std::string *, int *bad_count) const
Definition: Ioss_DatabaseIO.h:708
bool useGenericCanonicalName
Definition: Ioss_DatabaseIO.h:844
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
void set_lower_case_variable_names(bool true_false) const
Definition: Ioss_DatabaseIO.h:446
bool isInput
Definition: Ioss_DatabaseIO.h:835
Definition: Ioss_State.h:43
void read_meta_data()
Definition: Ioss_DatabaseIO.h:341
void set_pfsname(const std::string &name) const
Definition: Ioss_DatabaseIO.h:153
std::vector< std::string > blockOmissions
Definition: Ioss_DatabaseIO.h:688
std::string decodedFilename
Definition: Ioss_DatabaseIO.h:610
void progress(const std::string &output) const
Definition: Ioss_DatabaseIO.h:547
void check_side_topology() const
Definition: Ioss_DatabaseIO.C:715
void openDW(const std::string &filename) const
If we are planning to use BB(aka Burst Buffer) service, we will call simple C API provided by Cray Da...
Definition: Ioss_DatabaseIO.C:318
std::vector< std::string > informationRecords
Definition: Ioss_DatabaseIO.h:691
double timeScaleFactor
Definition: Ioss_DatabaseIO.h:662
virtual void get_step_times__()
Definition: Ioss_DatabaseIO.h:742
Definition: Ioss_DataSize.h:40
bool is_parallel() const
Definition: Ioss_DatabaseIO.h:545
void set_common_side_topology() const
Definition: Ioss_DatabaseIO.C:637
virtual int64_t get_field_internal(const Region *reg, const Field &field, void *data, size_t data_size) const =0
void set_parallel_consistency(bool on_off)
Definition: Ioss_DatabaseIO.h:425
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:97
void release_memory()
Definition: Ioss_DatabaseIO.h:142
bool blockAdjacenciesCalculated
Definition: Ioss_DatabaseIO.h:849
bool using_dw() const
Definition: Ioss_DatabaseIO.h:185
bool doLogging
Definition: Ioss_DatabaseIO.h:843
virtual int get_file_pointer() const
Definition: Ioss_DatabaseIO.h:197
std::vector< std::string > blockInclusions
Definition: Ioss_DatabaseIO.h:689
virtual int64_t element_global_to_local__(int64_t global) const
Definition: Ioss_DatabaseIO.h:722
void set_time_scale_factor(double factor)
Definition: Ioss_DatabaseIO.h:535
bool get_file_per_state() const
Definition: Ioss_DatabaseIO.h:533
Ioss::IfDatabaseExistsBehavior open_create_behavior() const
Definition: Ioss_DatabaseIO.C:381
void create_path(const std::string &filename) const
This function is used to create the path to an output directory (or history, restart,...
Definition: Ioss_DatabaseIO.C:397
char get_field_separator() const
Definition: Ioss_DatabaseIO.h:441
IfDatabaseExistsBehavior
Definition: Ioss_DBUsage.h:56
#define IOSS_FUNC_ENTER(m)
Definition: Ioss_CodeTypes.h:130
virtual void read_meta_data__()=0
char fieldSeparator
Definition: Ioss_DatabaseIO.h:833
std::vector< std::string > qaRecords
Definition: Ioss_DatabaseIO.h:692
virtual const std::string get_format() const =0
void create_groups(const std::string &property_name, EntityType type, const std::string &type_name, const T *set_type)
Definition: Ioss_DatabaseIO.C:536
void release_memory()
Definition: Ioss_Map.C:108
AxisAlignedBoundingBox get_bounding_box(const Ioss::ElementBlock *eb) const
Definition: Ioss_DatabaseIO.C:1078
A collection of element edges with the same topology.
Definition: Ioss_EdgeBlock.h:53
DatabaseUsage
Specifies how an Ioss::DatabaseIO object will be used.
Definition: Ioss_DBUsage.h:40
TopoContainer sideTopology
Used to speed up faceblock/edgeblock calculations.
Definition: Ioss_DatabaseIO.h:642
The main namespace for the Ioss library.
Definition: Ioad_DatabaseIO.C:66
State
Access states for a database.
Definition: Ioss_State.h:42
std::vector< std::vector< bool > > blockAdjacency
Definition: Ioss_DatabaseIO.h:701
bool begin(Ioss::State state)
Set the database to the given State.
Definition: Ioss_DatabaseIO.h:315
std::chrono::time_point< std::chrono::high_resolution_clock > m_stateStart
Definition: Ioss_DatabaseIO.h:855
A grouping entity that contains other grouping entities.
Definition: Ioss_Region.h:98
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:383
SurfaceSplitType
Method used to split sidesets into homogeneous blocks.
Definition: Ioss_SurfaceSplit.h:38
bool filePerState
Definition: Ioss_DatabaseIO.h:674
void get_step_times()
Definition: Ioss_DatabaseIO.h:347
const Ioss::PropertyManager & get_property_manager() const
Definition: Ioss_DatabaseIO.h:538
std::string get_dwPath() const
We call this ONLY after we assure that using_dw() is TRUE \ returns mount point of Datawarp namespace...
Definition: Ioss_DatabaseIO.h:174
A collection of nodes.
Definition: Ioss_NodeSet.h:53
virtual void closeDatabase__() const
Definition: Ioss_DatabaseIO.C:379
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:692
int cycleCount
Definition: Ioss_DatabaseIO.h:650
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:259
A collection of element faces.
Definition: Ioss_FaceSet.h:54
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:103
Definition: Ioss_SurfaceSplit.h:40
void closeDW() const
Function which invokes stageout from BB to Disk, prior to completion of final close.
Definition: Ioss_DatabaseIO.C:353
void set_block_omissions(const std::vector< std::string > &omissions, const std::vector< std::string > &inclusions={})
Definition: Ioss_DatabaseIO.C:701
const std::string & decoded_filename() const
Get a file-per-processor filename associated with the database.
Definition: Ioss_DatabaseIO.C:452
virtual int64_t put_field_internal(const Region *reg, const Field &field, void *data, size_t data_size) const =0
virtual unsigned entity_field_support() const =0
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
void get_block_adjacencies__(const Ioss::ElementBlock *eb, std::vector< std::string > &block_adjacency) const
Definition: Ioss_DatabaseIO.C:776
std::string pfsName
Definition: Ioss_DatabaseIO.h:621
bool singleProcOnly
Definition: Ioss_DatabaseIO.h:842
int64_t elementCount
Definition: Ioss_DatabaseIO.h:629
virtual int64_t put_field_internal(const StructuredBlock *, const Field &, void *, size_t) const
Definition: Ioss_DatabaseIO.h:813
A collection of element edges.
Definition: Ioss_EdgeSet.h:54
A collection of elements.
Definition: Ioss_ElementSet.h:54
void ignore_database_names(bool yes_no)
Definition: Ioss_DatabaseIO.h:431
void set_field_recognition(bool yes_no)
Definition: Ioss_DatabaseIO.h:444
virtual bool open_group__(const std::string &)
Definition: Ioss_DatabaseIO.h:735
virtual bool begin__(Ioss::State state)=0
const Ioss::ParallelUtils & util() const
Definition: Ioss_DatabaseIO.h:537
EntityType
The particular type of GroupingEntity.
Definition: Ioss_EntityType.h:39
Definition: Ioss_CommSet.h:51
bool begin_state(int state, double time)
Definition: Ioss_DatabaseIO.C:487
Ioss::Map edgeMap
Definition: Ioss_DatabaseIO.h:697
bool get_field_recognition() const
Definition: Ioss_DatabaseIO.h:442
int myProcessor
number of processor this database is for
Definition: Ioss_DatabaseIO.h:626
virtual bool begin_state__(int state, double time)
Definition: Ioss_DatabaseIO.C:507
Ioss::DatabaseUsage usage() const
Get the Ioss::DatabaseUsage type of the database.
Definition: Ioss_DatabaseIO.h:218
int64_t nodeCount
Definition: Ioss_DatabaseIO.h:628
bool enableFieldRecognition
Definition: Ioss_DatabaseIO.h:834
A collection of element faces with the same topology.
Definition: Ioss_FaceBlock.h:53
virtual bool end__(Ioss::State state)=0
void get_block_adjacencies(const Ioss::ElementBlock *eb, std::vector< std::string > &block_adjacency) const
Definition: Ioss_DatabaseIO.h:462
int overlayCount
Definition: Ioss_DatabaseIO.h:652
Ioss::PropertyManager properties
Definition: Ioss_DatabaseIO.h:578
virtual bool internal_faces_available() const
Definition: Ioss_DatabaseIO.h:354
std::string get_pfsname() const
Definition: Ioss_DatabaseIO.h:155
bool get_use_generic_canonical_name() const
Definition: Ioss_DatabaseIO.h:427
bool get_logging() const
Definition: Ioss_DatabaseIO.h:387
int64_t put_field(const T *reg, const Field &field, void *data, size_t data_size) const
Definition: Ioss_DatabaseIO.h:407
An input or output Database.
Definition: Ioss_DatabaseIO.h:82
void set_region(Region *region)
Definition: Ioss_DatabaseIO.h:233
void compute_block_adjacencies() const
Definition: Ioss_DatabaseIO.C:818
ElementTopology * commonSideTopology
Definition: Ioss_DatabaseIO.h:588
void flush_database() const
Definition: Ioss_DatabaseIO.h:262
bool isParallel
true if running in parallel
Definition: Ioss_DatabaseIO.h:676
Definition: Ioss_BoundingBox.h:37
Ioss::Map elemMap
Definition: Ioss_DatabaseIO.h:699
bool isParallelConsistent
Definition: Ioss_DatabaseIO.h:836
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:59
void compute_block_membership(Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const
Definition: Ioss_DatabaseIO.h:467
virtual void finalize_database()
Definition: Ioss_DatabaseIO.h:150
Region * region_
Definition: Ioss_DatabaseIO.h:832
virtual bool create_subgroup__(const std::string &)
Definition: Ioss_DatabaseIO.h:736
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:566
bool is_parallel_consistent() const
Definition: Ioss_DatabaseIO.h:424
void set_surface_split_type(Ioss::SurfaceSplitType split_type)
Definition: Ioss_DatabaseIO.h:456
int64_t global_to_local(int64_t global, bool must_exist=true) const
Definition: Ioss_Map.C:554
Region * get_region() const
Definition: Ioss_DatabaseIO.h:483
std::string originalDBFilename
Definition: Ioss_DatabaseIO.h:608
bool ignore_database_names() const
Definition: Ioss_DatabaseIO.h:430
void set_logging(bool on_off)
Definition: Ioss_DatabaseIO.h:388
virtual void release_memory__()
Definition: Ioss_DatabaseIO.h:727
virtual void set_maximum_symbol_length(int)
Definition: Ioss_DatabaseIO.h:438
void closeDatabase() const
Definition: Ioss_DatabaseIO.h:256
std::string bbName
Definition: Ioss_DatabaseIO.h:620
const std::vector< std::string > & get_information_records() const
Get all information records (informative strings) for the database.
Definition: Ioss_DatabaseIO.h:362
Ioss::Map faceMap
Definition: Ioss_DatabaseIO.h:698
bool usingDataWarp
Definition: Ioss_DatabaseIO.h:675
bool lowerCaseVariableNames
Definition: Ioss_DatabaseIO.h:678
Ioss::SurfaceSplitType splitType
Definition: Ioss_DatabaseIO.h:664
void add_information_record(const std::string &info)
Add an information record (an informative string) to the database.
Definition: Ioss_DatabaseIO.C:677
int parallel_size() const
Definition: Ioss_ParallelUtils.C:234
A collection of elements having the same topology.
Definition: Ioss_ElementBlock.h:48
int int_byte_size_api() const
Returns 4 or 8.
Definition: Ioss_DatabaseIO.C:237
virtual int64_t node_global_to_local__(int64_t global, bool must_exist) const
Definition: Ioss_DatabaseIO.h:717
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:295
virtual int maximum_symbol_length() const
Get the length of the longest name in the database file.
Definition: Ioss_DatabaseIO.h:437
Represents an element topology.
Definition: Ioss_ElementTopology.h:72
int parallel_size() const
Definition: Ioss_DatabaseIO.h:544
void error_message(const Ioss::Field &field, Ioss::Field::BasicType requested_type)
Definition: Ioss_Field.C:64
bool end_state(int state, double time)
Definition: Ioss_DatabaseIO.C:495
Definition: Ioss_Map.h:52
std::vector< std::pair< const ElementTopology *, const ElementTopology * > > TopoContainer
Definition: Ioss_DatabaseIO.h:77
virtual bool end_state__(int state, double time)
Definition: Ioss_DatabaseIO.C:509
virtual int int_byte_size_db() const =0
bool using_parallel_io() const
Definition: Ioss_DatabaseIO.h:110
void add_information_records(const std::vector< std::string > &info)
Add multiple information records (informative strings) to the database.
Definition: Ioss_DatabaseIO.C:667
void set_cycle_count(int count) const
Definition: Ioss_DatabaseIO.h:528
std::vector< char > data
Definition: cth_pressure_map.C:74
virtual bool needs_shared_node_information() const
Determine whether the database needs information about process ownership of nodes.
Definition: Ioss_DatabaseIO.h:224
Definition: Ioss_ParallelUtils.h:49
void set_use_generic_canonical_name(bool yes_no)
Definition: Ioss_DatabaseIO.h:428
virtual bool node_major() const
Definition: Ioss_DatabaseIO.h:136
void check_setDW() const
Definition: Ioss_DatabaseIO.C:277
void handle_groups()
Definition: Ioss_DatabaseIO.C:511
virtual bool internal_edges_available() const
Definition: Ioss_DatabaseIO.h:353
int get_overlay_count() const
Definition: Ioss_DatabaseIO.h:531
bool usingParallelIO
Definition: Ioss_DatabaseIO.h:679
int get_cycle_count() const
Definition: Ioss_DatabaseIO.h:529
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
std::map< std::string, AxisAlignedBoundingBox > elementBlockBoundingBoxes
Definition: Ioss_DatabaseIO.h:823
std::string DBFilename
Definition: Ioss_DatabaseIO.h:609
void set_dwname(const std::string &name) const
this will be the name in BB namespace
Definition: Ioss_DatabaseIO.h:159
bool m_enableTracing
Definition: Ioss_DatabaseIO.h:853
int64_t get_field(const T *reg, const Field &field, void *data, size_t data_size) const
Definition: Ioss_DatabaseIO.h:397
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:119
virtual int64_t get_field_internal(const StructuredBlock *, const Field &, void *, size_t) const
Definition: Ioss_DatabaseIO.h:783
virtual void set_int_byte_size_api(Ioss::DataSize size) const
Returns 4 or 8.
Definition: Ioss_DatabaseIO.C:249
int parallel_rank() const
Get the processor that this mesh database is on.
Definition: Ioss_DatabaseIO.h:543
std::string get_filename() const
Get the file name associated with the database.
Definition: Ioss_DatabaseIO.h:191
std::string name(const Ioss::GroupingEntity *entity)
Definition: io_info.C:89
void set_file_per_state(bool yes_no) const
Definition: Ioss_DatabaseIO.h:532
int MPI_Comm
Definition: Ioss_CodeTypes.h:96
Ioss::ParallelUtils util_
Definition: Ioss_DatabaseIO.h:825
virtual void flush_database__() const
Definition: Ioss_DatabaseIO.h:705
DataSize
The number of bytes used to store an integer type.
Definition: Ioss_DataSize.h:40
Ioss::DataSize dbIntSizeAPI
Definition: Ioss_DatabaseIO.h:667
Ioss::DatabaseUsage dbUsage
Definition: Ioss_DatabaseIO.h:665
DatabaseIO & operator=(const DatabaseIO &)=delete
A collection of element sides.
Definition: Ioss_SideSet.h:53
void openDatabase() const
Definition: Ioss_DatabaseIO.h:250
Base class for all 'grouping' entities. The following derived classes are typical:
Definition: Ioss_GroupingEntity.h:93
int64_t element_global_to_local(int64_t global) const
Definition: Ioss_DatabaseIO.h:125
bool end(Ioss::State state)
Return the database to STATE_CLOSED.
Definition: Ioss_DatabaseIO.h:331
virtual void compute_block_membership__(Ioss::SideBlock *, std::vector< std::string > &) const
Definition: Ioss_DatabaseIO.h:750
Ioss::State dbState
Definition: Ioss_DatabaseIO.h:624
bool ignoreDatabaseNames
Definition: Ioss_DatabaseIO.h:847
void progress(const std::string &output) const
Definition: Ioss_ParallelUtils.C:522
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:279
virtual void openDatabase__() const
Definition: Ioss_DatabaseIO.C:377
std::string dwPath
Definition: Ioss_DatabaseIO.h:622
Ioss::SurfaceSplitType get_surface_split_type() const
Definition: Ioss_DatabaseIO.h:457