IOSS 2.0
Loading...
Searching...
No Matches
Iohb::DatabaseIO Class Reference

#include <Iohb_DatabaseIO.h>

Inheritance diagram for Iohb::DatabaseIO:
[legend]
Collaboration diagram for Iohb::DatabaseIO:
[legend]

Public Member Functions

 DatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, Ioss_MPI_Comm communicator, const Ioss::PropertyManager &props)
 
 ~DatabaseIO () override
 
IOSS_NODISCARD std::string get_format () const override
 
IOSS_NODISCARD unsigned entity_field_support () const override
 
IOSS_NODISCARD int int_byte_size_db () const override
 
- Public Member Functions inherited from Ioss::DatabaseIO
 DatabaseIO ()=delete
 
 DatabaseIO (const DatabaseIO &)=delete
 
 DatabaseIO (DatabaseIO &&)=delete
 
DatabaseIOoperator= (const DatabaseIO &)=delete
 
DatabaseIOoperator= (DatabaseIO &&)=delete
 
IOSS_NODISCARD bool ok (bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const
 Check to see if database state is OK.
 
IOSS_NODISCARD bool using_parallel_io () const
 
IOSS_NODISCARD 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.
 
IOSS_NODISCARD int64_t element_global_to_local (int64_t global) const
 
virtual IOSS_NODISCARD bool node_major () const
 
void release_memory ()
 
virtual void finalize_database () const
 
void set_pfs_name (const std::string &name) const
 
IOSS_NODISCARD std::string get_pfs_name () const
 
void set_dw_name (const std::string &name) const
 this will be the name in BB namespace
 
IOSS_NODISCARD std::string get_dw_name () const
 
IOSS_NODISCARD std::string get_dw_path () const
 We call this ONLY after we assure that using_dw() is TRUE.
 
void check_set_dw () const
 
IOSS_NODISCARD bool using_dw () const
 
IOSS_NODISCARD std::string get_filename () const
 Get the file name associated with the database.
 
virtual IOSS_NODISCARD int get_file_pointer () const
 
IOSS_NODISCARD const std::string & decoded_filename () const
 Get a file-per-processor filename associated with the database.
 
IOSS_NODISCARD bool is_input () const
 Determine whether the database is an input database.
 
IOSS_NODISCARD Ioss::DatabaseUsage usage () const
 Get the Ioss::DatabaseUsage type of the database.
 
virtual IOSS_NODISCARD bool needs_shared_node_information () const
 Determine whether the database needs information about process ownership of nodes.
 
IOSS_NODISCARD Ioss::IfDatabaseExistsBehavior open_create_behavior () const
 
void set_region (Region *region)
 
void open_dw (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 DataWarp module.
 
void close_dw () const
 Function which invokes stageout from BB to Disk, prior to completion of final close.
 
void openDatabase () const
 
void closeDatabase () const
 
void flush_database () const
 
void reset_database ()
 
bool open_internal_change_set (const std::string &set_name)
 If a database type supports internal change sets and if the database contains internal change sets, open the specified set.
 
bool create_internal_change_set (const std::string &set_name)
 If a database type supports internal change sets, create the specified set.
 
int num_internal_change_set ()
 If a database type supports internal change sets, and if the database contains internal change sets, return the number of change sets.
 
bool open_internal_change_set (int set_index)
 If a database type supports internal change sets, open the change set specified [zero-based] index.
 
Ioss::NameList internal_change_set_describe (bool return_full_names=false)
 If a database type supports internal change sets, return a list of set names.
 
bool supports_internal_change_set ()
 Checks if a database type supports internal change sets.
 
virtual IOSS_NODISCARD std::string get_internal_change_set_name () const
 
bool begin (Ioss::State state)
 Set the database to the given State.
 
bool end (Ioss::State state)
 Return the database to STATE_CLOSED.
 
bool begin_state (int state, double time)
 
bool end_state (int state, double time)
 
void read_meta_data ()
 
void get_step_times ()
 
std::vector< double > get_db_step_times ()
 Return the list of timesteps in the database contingent on certain controlling properties.
 
virtual IOSS_NODISCARD bool internal_edges_available () const
 
virtual IOSS_NODISCARD bool internal_faces_available () const
 
IOSS_NODISCARD const Ioss::NameListget_information_records () const
 Get all information records (informative strings) for the database.
 
void add_information_records (const Ioss::NameList &info)
 Add multiple information records (informative strings) to the database.
 
void add_information_record (const std::string &info)
 Add an information record (an informative string) to the database.
 
IOSS_NODISCARD const Ioss::NameListget_qa_records () const
 Get all QA records, each of which consists of 4 strings, from the database.
 
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.
 
IOSS_NODISCARD bool get_logging () const
 
void set_logging (bool on_off)
 
IOSS_NODISCARD bool get_nan_detection () const
 
void set_nan_detection (bool on_off)
 
template<typename T >
int64_t get_field (const T *reg, const Field &field, void *data, size_t data_size) const
 
template<typename T >
int64_t put_field (const T *reg, const Field &field, void *data, size_t data_size) const
 
template<typename T >
int64_t get_zc_field (const T *reg, const Field &field, void **data, size_t *data_size) const
 
IOSS_NODISCARD bool is_parallel_consistent () const
 
void set_parallel_consistency (bool on_off)
 
IOSS_NODISCARD bool get_use_generic_canonical_name () const
 
void set_use_generic_canonical_name (bool yes_no)
 
IOSS_NODISCARD bool ignore_database_names () const
 
void ignore_database_names (bool yes_no)
 
IOSS_NODISCARD bool get_ignore_realn_fields () const
 
void set_ignore_realn_fields (bool yes_no)
 
virtual IOSS_NODISCARD int maximum_symbol_length () const
 Get the length of the longest name in the database file.
 
virtual void set_maximum_symbol_length (int)
 
IOSS_NODISCARD std::string get_component_name (const Ioss::Field &field, Ioss::Field::InOut in_out, int component) const
 
IOSS_NODISCARD char get_field_separator () const
 
IOSS_NODISCARD bool get_field_recognition () const
 
IOSS_NODISCARD bool get_field_strip_trailing_ () const
 
void set_field_separator (char separator)
 Set the character used to separate a field suffix from the field basename when recognizing vector, tensor fields.
 
void set_field_recognition (bool yes_no)
 
void set_field_strip_trailing_ (bool yes_no)
 
IOSS_NODISCARD DuplicateFieldBehavior get_duplicate_field_behavior () const
 
void set_lower_case_variable_names (bool true_false) const
 
void set_surface_split_type (Ioss::SurfaceSplitType split_type)
 
IOSS_NODISCARD Ioss::SurfaceSplitType get_surface_split_type () const
 
void set_block_omissions (const Ioss::NameList &omissions, const Ioss::NameList &inclusions={})
 
void set_assembly_omissions (const Ioss::NameList &omissions, const Ioss::NameList &inclusions={})
 
void get_block_adjacencies (const Ioss::ElementBlock *eb, Ioss::NameList &block_adjacency) const
 
void compute_block_membership (Ioss::SideBlock *efblock, Ioss::NameList &block_membership) const
 
IOSS_NODISCARD AxisAlignedBoundingBox get_bounding_box (const Ioss::NodeBlock *nb) const
 
IOSS_NODISCARD AxisAlignedBoundingBox get_bounding_box (const Ioss::ElementBlock *eb) const
 
IOSS_NODISCARD AxisAlignedBoundingBox get_bounding_box (const Ioss::StructuredBlock *sb) const
 
IOSS_NODISCARD int int_byte_size_api () const
 Returns 4 or 8.
 
virtual void set_int_byte_size_api (Ioss::DataSize size) const
 Returns 4 or 8.
 
IOSS_NODISCARD Ioss::DataSize int_byte_size_data_size () const
 
IOSS_NODISCARD Regionget_region () const
 
void set_cycle_count (int count) const
 
IOSS_NODISCARD int get_cycle_count () const
 
void set_overlay_count (int count) const
 
IOSS_NODISCARD int get_overlay_count () const
 
void set_file_per_state (bool yes_no) const
 
IOSS_NODISCARD bool get_file_per_state () const
 
void set_time_scale_factor (double factor)
 
IOSS_NODISCARD const Ioss::ParallelUtilsutil () const
 
IOSS_NODISCARD const Ioss::PropertyManagerget_property_manager () const
 
IOSS_NODISCARD int parallel_rank () const
 Get the processor that this mesh database is on.
 
IOSS_NODISCARD int parallel_size () const
 
IOSS_NODISCARD bool is_parallel () const
 
void progress (const std::string &output) const
 
virtual std::vector< size_t > get_entity_field_data (const std::string &field_name, const std::vector< Ioss::ElementBlock * > &elem_blocks, void *data, size_t data_size) const
 
template<>
void create_group (EntityType type, const std::string &, const Ioss::NameList &group_spec, const SideSet *)
 

Private Member Functions

IOSS_NODISCARD int64_t node_global_to_local_nl (int64_t, bool) const override
 
IOSS_NODISCARD int64_t element_global_to_local_nl (int64_t) const override
 
void read_meta_data_nl () override
 
void flush_database_nl () const override
 
bool begin_nl (Ioss::State state) override
 
bool end_nl (Ioss::State state) override
 
bool begin_state_nl (int state, double time) override
 
bool end_state_nl (int state, double time) override
 
void initialize () const
 
int64_t put_field_internal (const Ioss::Region *region, const Ioss::Field &field, void *data, size_t data_size) const override
 

Private Attributes

time_t timeLastFlush_ {0}
 
time_t flushInterval_ {10}
 
std::ostream * logStream {nullptr}
 
std::unique_ptr< Layoutlayout_ {}
 
std::unique_ptr< Layoutlegend_ {}
 
std::string defaultTsFormat {"[%H:%M:%S]"}
 
std::string tsFormat {}
 
std::string separator_ {", "}
 
int precision_ {5}
 
int fieldWidth_ {0}
 
bool showLabels {true}
 
bool showLegend {false}
 
bool appendOutput {false}
 
bool addTimeField {false}
 
bool initialized_ {false}
 
bool streamNeedsDelete {false}
 
Format fileFormat {Format::DEFAULT}
 

Additional Inherited Members

- Protected Member Functions inherited from Ioss::DatabaseIO
 DatabaseIO (Region *region, std::string filename, Ioss::DatabaseUsage db_usage, Ioss_MPI_Comm communicator, const Ioss::PropertyManager &props)
 
void set_common_side_topology () const
 
template<typename T >
void create_groups (const std::string &property_name, EntityType type, const std::string &type_name, const T *set_type)
 
template<typename T >
void create_group (EntityType type, const std::string &type_name, const Ioss::NameList &group_spec, const T *set_type)
 
void handle_groups ()
 
void check_side_topology () const
 
virtual void openDatabase_nl () const
 
virtual void closeDatabase_nl () const
 
virtual void release_memory_nl ()
 
virtual void reset_database_nl ()
 
- Protected Attributes inherited from Ioss::DatabaseIO
Ioss::PropertyManager properties
 
ElementTopologycommonSideTopology {nullptr}
 
std::string originalDBFilename {}
 
std::string DBFilename {}
 
std::string decodedFilename {}
 
std::string bbName {}
 
std::string pfsName {}
 
std::string dwPath {}
 
Ioss::State dbState {STATE_INVALID}
 
int myProcessor {0}
 number of processor this database is for
 
int64_t nodeCount {0}
 
int64_t elementCount {0}
 
TopoContainer sideTopology {}
 Used to speed up faceblock/edgeblock calculations.
 
int cycleCount {0}
 
int overlayCount {0}
 
double timeScaleFactor {1.0}
 
Ioss::SurfaceSplitType splitType {SPLIT_BY_TOPOLOGIES}
 
Ioss::DatabaseUsage dbUsage {}
 
Ioss::DataSize dbIntSizeAPI {USE_INT32_API}
 
bool filePerState {false}
 
bool usingDataWarp {false}
 
bool isParallel {false}
 true if running in parallel
 
bool lowerCaseVariableNames {true}
 
bool usingParallelIO {false}
 
Ioss::NameList blockOmissions {}
 
Ioss::NameList blockInclusions {}
 
Ioss::NameList assemblyOmissions {}
 
Ioss::NameList assemblyInclusions {}
 
Ioss::NameList informationRecords {}
 
Ioss::NameList qaRecords {}
 
Ioss::Map nodeMap {"node", DBFilename, myProcessor}
 
Ioss::Map edgeMap {"edge", DBFilename, myProcessor}
 
Ioss::Map faceMap {"face", DBFilename, myProcessor}
 
Ioss::Map elemMap {"element", DBFilename, myProcessor}
 
std::vector< std::vector< bool > > blockAdjacency
 

Constructor & Destructor Documentation

◆ DatabaseIO()

Iohb::DatabaseIO::DatabaseIO ( Ioss::Region * region,
const std::string & filename,
Ioss::DatabaseUsage db_usage,
Ioss_MPI_Comm communicator,
const Ioss::PropertyManager & props )

◆ ~DatabaseIO()

Iohb::DatabaseIO::~DatabaseIO ( )
overridevirtual

Reimplemented from Ioss::DatabaseIO.

Member Function Documentation

◆ begin_nl()

bool Iohb::DatabaseIO::begin_nl ( Ioss::State state)
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ begin_state_nl()

bool Iohb::DatabaseIO::begin_state_nl ( int state,
double time )
overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ element_global_to_local_nl()

IOSS_NODISCARD int64_t Iohb::DatabaseIO::element_global_to_local_nl ( int64_t ) const
inlineoverrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ end_nl()

bool Iohb::DatabaseIO::end_nl ( Ioss::State state)
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ end_state_nl()

bool Iohb::DatabaseIO::end_state_nl ( int state,
double time )
overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ entity_field_support()

unsigned Iohb::DatabaseIO::entity_field_support ( ) const
overridevirtual

Implements Ioss::DatabaseIO.

◆ flush_database_nl()

void Iohb::DatabaseIO::flush_database_nl ( ) const
overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ get_format()

IOSS_NODISCARD std::string Iohb::DatabaseIO::get_format ( ) const
inlineoverridevirtual

Return a string specifying underlying format of database (exodus, cgns, ...)

Implements Ioss::DatabaseIO.

◆ initialize()

void Iohb::DatabaseIO::initialize ( ) const
private

◆ int_byte_size_db()

IOSS_NODISCARD int Iohb::DatabaseIO::int_byte_size_db ( ) const
inlineoverridevirtual

Implements Ioss::DatabaseIO.

◆ node_global_to_local_nl()

IOSS_NODISCARD int64_t Iohb::DatabaseIO::node_global_to_local_nl ( int64_t ,
bool  ) const
inlineoverrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ put_field_internal()

int64_t Iohb::DatabaseIO::put_field_internal ( const Ioss::Region * region,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ read_meta_data_nl()

void Iohb::DatabaseIO::read_meta_data_nl ( )
inlineoverrideprivatevirtual

Implements Ioss::DatabaseIO.

Member Data Documentation

◆ addTimeField

bool Iohb::DatabaseIO::addTimeField {false}
private

◆ appendOutput

bool Iohb::DatabaseIO::appendOutput {false}
private

◆ defaultTsFormat

std::string Iohb::DatabaseIO::defaultTsFormat {"[%H:%M:%S]"}
private

◆ fieldWidth_

int Iohb::DatabaseIO::fieldWidth_ {0}
private

◆ fileFormat

Format Iohb::DatabaseIO::fileFormat {Format::DEFAULT}
private

◆ flushInterval_

time_t Iohb::DatabaseIO::flushInterval_ {10}
private

◆ initialized_

bool Iohb::DatabaseIO::initialized_ {false}
private

◆ layout_

std::unique_ptr<Layout> Iohb::DatabaseIO::layout_ {}
private

◆ legend_

std::unique_ptr<Layout> Iohb::DatabaseIO::legend_ {}
private

◆ logStream

std::ostream* Iohb::DatabaseIO::logStream {nullptr}
private

◆ precision_

int Iohb::DatabaseIO::precision_ {5}
private

◆ separator_

std::string Iohb::DatabaseIO::separator_ {", "}
private

◆ showLabels

bool Iohb::DatabaseIO::showLabels {true}
private

◆ showLegend

bool Iohb::DatabaseIO::showLegend {false}
private

◆ streamNeedsDelete

bool Iohb::DatabaseIO::streamNeedsDelete {false}
private

◆ timeLastFlush_

time_t Iohb::DatabaseIO::timeLastFlush_ {0}
private

◆ tsFormat

std::string Iohb::DatabaseIO::tsFormat {}
private

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