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

#include <Iopg_DatabaseIO.h>

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

Public Member Functions

 DatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, Ioss_MPI_Comm communicator, const Ioss::PropertyManager &properties)
 
 ~DatabaseIO ()
 
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
 
IOSS_NODISCARD std::string title () const
 
IOSS_NODISCARD int maximum_symbol_length () const override
 Get the length of the longest name in the database file.
 
void compute_block_membership_nl (Ioss::SideBlock *efblock, Ioss::NameList &block_membership) 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 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

void read_meta_data_nl () override
 
bool begin_nl (Ioss::State state) override
 
bool end_nl (Ioss::State state) override
 
void read_region ()
 
void read_communication_metadata ()
 
void get_nodeblocks ()
 
void get_elemblocks ()
 
void get_nodesets ()
 
void get_sidesets ()
 
void get_commsets ()
 
int get_side_connectivity (const Ioss::SideBlock *fb, int id, int side_count, int *fconnect, size_t data_size) const
 
int get_side_distributions (const Ioss::SideBlock *fb, int id, int side_count, double *dist_fact, size_t data_size) const
 
const Ioss::Mapget_node_map () const
 
const Ioss::Mapget_element_map () const
 
int64_t get_field_internal (const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const override
 
int64_t get_field_internal (const Ioss::ElementBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
 
int64_t get_field_internal (const Ioss::SideBlock *fb, const Ioss::Field &field, void *data, size_t data_size) const override
 
int64_t get_field_internal (const Ioss::NodeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
 
int64_t get_field_internal (const Ioss::CommSet *cs, const Ioss::Field &field, void *data, size_t data_size) const override
 

Private Attributes

std::string databaseTitle
 
int spatialDimension {3}
 
int nodeBlockCount {0}
 
int elementBlockCount {0}
 
int nodesetCount {0}
 
int sidesetCount {0}
 
Ioss::IntVector nodeCmapIds
 
Ioss::IntVector nodeCmapNodeCnts
 
Ioss::IntVector elemCmapIds
 
Ioss::IntVector elemCmapElemCnts
 
int commsetNodeCount {0}
 
int commsetElemCount {0}
 

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 flush_database_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()

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

◆ ~DatabaseIO()

Iopg::DatabaseIO::~DatabaseIO ( )
virtual

Reimplemented from Ioss::DatabaseIO.

Member Function Documentation

◆ begin_nl()

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

Implements Ioss::DatabaseIO.

◆ compute_block_membership_nl()

void Iopg::DatabaseIO::compute_block_membership_nl ( Ioss::SideBlock * efblock,
Ioss::NameList & block_membership ) const
overridevirtual

Reimplemented from Ioss::DatabaseIO.

◆ end_nl()

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

Implements Ioss::DatabaseIO.

◆ entity_field_support()

IOSS_NODISCARD unsigned Iopg::DatabaseIO::entity_field_support ( ) const
inlineoverridevirtual

Implements Ioss::DatabaseIO.

◆ get_commsets()

void Iopg::DatabaseIO::get_commsets ( )
private

◆ get_elemblocks()

void Iopg::DatabaseIO::get_elemblocks ( )
private

◆ get_element_map()

const Ioss::Map & Iopg::DatabaseIO::get_element_map ( ) const
private

◆ get_field_internal() [1/5]

int64_t Iopg::DatabaseIO::get_field_internal ( const Ioss::CommSet * cs,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ get_field_internal() [2/5]

int64_t Iopg::DatabaseIO::get_field_internal ( const Ioss::ElementBlock * eb,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ get_field_internal() [3/5]

int64_t Iopg::DatabaseIO::get_field_internal ( const Ioss::NodeBlock * nb,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ get_field_internal() [4/5]

int64_t Iopg::DatabaseIO::get_field_internal ( const Ioss::NodeSet * ns,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ get_field_internal() [5/5]

int64_t Iopg::DatabaseIO::get_field_internal ( const Ioss::SideBlock * fb,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ get_format()

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

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

Implements Ioss::DatabaseIO.

◆ get_node_map()

const Ioss::Map & Iopg::DatabaseIO::get_node_map ( ) const
private

◆ get_nodeblocks()

void Iopg::DatabaseIO::get_nodeblocks ( )
private

◆ get_nodesets()

void Iopg::DatabaseIO::get_nodesets ( )
private

◆ get_side_connectivity()

int Iopg::DatabaseIO::get_side_connectivity ( const Ioss::SideBlock * fb,
int id,
int side_count,
int * fconnect,
size_t data_size ) const
private

◆ get_side_distributions()

int Iopg::DatabaseIO::get_side_distributions ( const Ioss::SideBlock * fb,
int id,
int side_count,
double * dist_fact,
size_t data_size ) const
private

◆ get_sidesets()

void Iopg::DatabaseIO::get_sidesets ( )
private

◆ int_byte_size_db()

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

Implements Ioss::DatabaseIO.

◆ maximum_symbol_length()

IOSS_NODISCARD int Iopg::DatabaseIO::maximum_symbol_length ( ) const
inlineoverridevirtual

Get the length of the longest name in the database file.

Returns
The length, or 0 for unlimited.

Reimplemented from Ioss::DatabaseIO.

◆ read_communication_metadata()

void Iopg::DatabaseIO::read_communication_metadata ( )
private

◆ read_meta_data_nl()

void Iopg::DatabaseIO::read_meta_data_nl ( )
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ read_region()

void Iopg::DatabaseIO::read_region ( )
private

◆ title()

IOSS_NODISCARD std::string Iopg::DatabaseIO::title ( ) const
inline

Member Data Documentation

◆ commsetElemCount

int Iopg::DatabaseIO::commsetElemCount {0}
private

◆ commsetNodeCount

int Iopg::DatabaseIO::commsetNodeCount {0}
private

◆ databaseTitle

std::string Iopg::DatabaseIO::databaseTitle
private

◆ elemCmapElemCnts

Ioss::IntVector Iopg::DatabaseIO::elemCmapElemCnts
private

◆ elemCmapIds

Ioss::IntVector Iopg::DatabaseIO::elemCmapIds
private

◆ elementBlockCount

int Iopg::DatabaseIO::elementBlockCount {0}
private

◆ nodeBlockCount

int Iopg::DatabaseIO::nodeBlockCount {0}
private

◆ nodeCmapIds

Ioss::IntVector Iopg::DatabaseIO::nodeCmapIds
private

◆ nodeCmapNodeCnts

Ioss::IntVector Iopg::DatabaseIO::nodeCmapNodeCnts
private

◆ nodesetCount

int Iopg::DatabaseIO::nodesetCount {0}
private

◆ sidesetCount

int Iopg::DatabaseIO::sidesetCount {0}
private

◆ spatialDimension

int Iopg::DatabaseIO::spatialDimension {3}
private

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