IOSS 2.0

Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
Ioss::DatabaseIO Class Referenceabstract

An input or output Database. More...

`#include <Ioss_DatabaseIO.h>`

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

## Public Member Functions
bool | ok (bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const
| Check to see if database state is OK. More...
virtual unsigned | entity_field_support () const =0
bool | using_parallel_io () const
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. More...
int64_t | element_global_to_local (int64_t global) const
virtual bool | node_major () const
virtual | ~DatabaseIO ()
void | release_memory ()
virtual void | finalize_database ()
void | set_pfsname (const std::string &name) const
std::string | get_pfsname () const
void | set_dwname (const std::string &name) const
| this will be the name in BB namespace More...
std::string | get_dwname () const
std::string | get_dwPath () const
| We call this ONLY after we assure that using_dw() is TRUE \ returns mount point of Datawarp namespace, e.g: `/opt/cray/....<jobid>` More...
void | check_setDW () const
bool | using_dw () const
std::string | get_filename () const
| Get the file name associated with the database. More...
virtual int | get_file_pointer () const
const std::string & | decoded_filename () const
| Get a file-per-processor filename associated with the database. More...
virtual const std::string | get_format () const =0
bool | is_input () const
| Determine whether the database is an input database. More...
Ioss::DatabaseUsage | usage () const
| Get the Ioss::DatabaseUsage type of the database. More...
virtual bool | needs_shared_node_information () const
| Determine whether the database needs information about process ownership of nodes. More...
Ioss::IfDatabaseExistsBehavior | open_create_behavior () const
void | create_path (const std::string &filename) const
| This function is used to create the path to an output directory (or history, restart, etc.) More...
void | set_region (Region *region)
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 DataWarp module. More...
void | closeDW () const
| Function which invokes stageout from BB to Disk, prior to completion of final close. More...
void | openDatabase () const
void | closeDatabase () const
void | flush_database () const
bool | open_group (const std::string &group_name)
| If a database type supports groups and if the database contains groups, open the specified group. More...
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. More...
bool | begin (Ioss::State state)
| Set the database to the given State. More...
bool | end (Ioss::State state)
| Return the database to STATE_CLOSED. More...
bool | begin_state (int state, double time)
bool | end_state (int state, double time)
void | read_meta_data ()
void | get_step_times ()
virtual bool | internal_edges_available () const
virtual bool | internal_faces_available () const
const std::vector< std::string > & | get_information_records () const
| Get all information records (informative strings) for the database. More...
void | add_information_records (const std::vector< std::string > &info)
| Add multiple information records (informative strings) to the database. More...
void | add_information_record (const std::string &info)
| Add an information record (an informative string) to the database. More...
const std::vector< std::string > & | get_qa_records () const
| Get all QA records, each of which consists of 4 strings, from the database. More...
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. More...
bool | get_logging () const
void | set_logging (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
bool | is_parallel_consistent () const
void | set_parallel_consistency (bool on_off)
bool | get_use_generic_canonical_name () const
void | set_use_generic_canonical_name (bool yes_no)
bool | ignore_database_names () const
void | ignore_database_names (bool yes_no)
virtual int | maximum_symbol_length () const
| Get the length of the longest name in the database file. More...
virtual void | set_maximum_symbol_length (int)
char | get_field_separator () const
bool | get_field_recognition () 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. More...
void | set_field_recognition (bool yes_no)
void | set_lower_case_variable_names (bool true_false) const
void | set_surface_split_type (Ioss::SurfaceSplitType split_type)
Ioss::SurfaceSplitType | get_surface_split_type () const
void | set_block_omissions (const std::vector< std::string > &omissions, const std::vector< std::string > &inclusions={})
void | get_block_adjacencies (const Ioss::ElementBlock *eb, std::vector< std::string > &block_adjacency) const
void | compute_block_membership (Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const
AxisAlignedBoundingBox | get_bounding_box (const Ioss::ElementBlock *eb) const
AxisAlignedBoundingBox | get_bounding_box (const Ioss::StructuredBlock *sb) const
virtual int | int_byte_size_db () const =0
int | int_byte_size_api () const
| Returns 4 or 8. More...
virtual void | set_int_byte_size_api (Ioss::DataSize size) const
| Returns 4 or 8. More...
Region * | get_region () const
void | set_cycle_count (int count) const
int | get_cycle_count () const
void | set_overlay_count (int count) const
int | get_overlay_count () const
void | set_file_per_state (bool yes_no) const
bool | get_file_per_state () const
void | set_time_scale_factor (double factor)
const Ioss::ParallelUtils & | util () const
const Ioss::PropertyManager & | get_property_manager () const
int | parallel_rank () const
| Get the processor that this mesh database is on. More...
int | parallel_size () const
bool | is_parallel () const
void | progress (const std::string &output) const

## Protected Member Functions
| DatabaseIO (Region *region, std::string filename, Ioss::DatabaseUsage db_usage, 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 std::vector< std::string > &group_spec, const T *set_type)
void | handle_groups ()
void | check_side_topology () const
virtual void | openDatabase__ () const
virtual void | closeDatabase__ () const
virtual void | flush_database__ () const
template<>
void | create_group (EntityType type, const std::string &, const std::vector< std::string > &group_spec, const SideSet *)

## Protected Attributes
Ioss::PropertyManager | properties
ElementTopology * | commonSideTopology {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 More...
int64_t | nodeCount {0}
int64_t | elementCount {0}
TopoContainer | sideTopology
| Used to speed up faceblock/edgeblock calculations. More...
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 More...
bool | lowerCaseVariableNames {true}
bool | usingParallelIO {false}
std::vector< std::string > | blockOmissions
std::vector< std::string > | blockInclusions
std::vector< std::string > | informationRecords
std::vector< std::string > | 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

## Private Member Functions
virtual bool | ok__ (bool, std::string *, int *bad_count) const
virtual int64_t | node_global_to_local__ (int64_t global, bool must_exist) const
virtual int64_t | element_global_to_local__ (int64_t global) const
virtual void | release_memory__ ()
virtual bool | open_group__ (const std::string &)
virtual bool | create_subgroup__ (const std::string &)
virtual bool | begin__ (Ioss::State state)=0
virtual bool | end__ (Ioss::State state)=0
virtual void | read_meta_data__ ()=0
virtual void | get_step_times__ ()
virtual bool | begin_state__ (int state, double time)
virtual bool | end_state__ (int state, double time)
void | get_block_adjacencies__ (const Ioss::ElementBlock *eb, std::vector< std::string > &block_adjacency) const
virtual void | compute_block_membership__ (Ioss::SideBlock *, std::vector< std::string > &) const
void | compute_block_adjacencies () const
void | verify_and_log (const GroupingEntity *ge, const Field &field, int in_out) const
virtual int64_t | get_field_internal (const Region *reg, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const NodeBlock *nb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const EdgeBlock *nb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const FaceBlock *nb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const ElementBlock *eb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const SideBlock *fb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const NodeSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const EdgeSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const FaceSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const ElementSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const SideSet *fs, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const CommSet *cs, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | get_field_internal (const StructuredBlock *, const Field &, void *, size_t) const
virtual int64_t | put_field_internal (const Region *reg, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const NodeBlock *nb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const EdgeBlock *nb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const FaceBlock *nb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const ElementBlock *eb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const SideBlock *fb, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const NodeSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const EdgeSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const FaceSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const ElementSet *ns, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const SideSet *fs, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const CommSet *cs, const Field &field, void *data, size_t data_size) const =0
virtual int64_t | put_field_internal (const StructuredBlock *, const Field &, void *, size_t) const
| DatabaseIO ()=delete
| DatabaseIO (const DatabaseIO &)=delete
DatabaseIO & | operator= (const DatabaseIO &)=delete

## Private Attributes
std::map< std::string, AxisAlignedBoundingBox > | elementBlockBoundingBoxes
Ioss::ParallelUtils | util_
Region * | region_ {nullptr}
char | fieldSeparator {'_'}
bool | enableFieldRecognition {true}
bool | isInput
bool | isParallelConsistent
bool | singleProcOnly
bool | doLogging {false}
bool | useGenericCanonicalName
bool | ignoreDatabaseNames {false}
bool | blockAdjacenciesCalculated {false}
bool | m_timeStateInOut {false}
bool | m_enableTracing {false}
std::chrono::time_point< std::chrono::high_resolution_clock > | m_stateStart

## Friends
class | SerializeIO

## Detailed Description

An input or output Database.

## Constructor & Destructor Documentation

## ◆ ~DatabaseIO()

Ioss::DatabaseIO::~DatabaseIO | ( |  | ) |
| virtualdefault

Reimplemented in Ioex::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iocgns::DatabaseIO, Iofx::DatabaseIO, Iovs::DatabaseIO, Iopx::DatabaseIO, Iodw::DatabaseIO, Iopg::DatabaseIO, and Ioad::DatabaseIO.

## ◆ DatabaseIO() [1/3]

Ioss::DatabaseIO::DatabaseIO | ( | Region * | region,
|  | std::string | filename,
|  | Ioss::DatabaseUsage | db_usage,
|  | MPI_Comm | communicator,
|  | const Ioss::PropertyManager & | props
| ) |  |
| protected

## ◆ DatabaseIO() [2/3]

Ioss::DatabaseIO::DatabaseIO | ( |  | ) |
| privatedelete

## ◆ DatabaseIO() [3/3]

Ioss::DatabaseIO::DatabaseIO | ( | const DatabaseIO & |  | ) |
| privatedelete

## Member Function Documentation

## ◆ add_information_record()

void Ioss::DatabaseIO::add_information_record | ( | const std::string & | info | ) |

Add an information record (an informative string) to the database.

Parameters

  [in] | info | The string to add.

## ◆ add_information_records()

void Ioss::DatabaseIO::add_information_records | ( | const std::vector< std::string > & | info | ) |

Add multiple information records (informative strings) to the database.

Parameters

  [in] | info | The strings to add.

## ◆ add_qa_record()

void Ioss::DatabaseIO::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.

The 4 function parameters correspond to the 4 QA record strings.

Parameters

  [in] | code | A descriptive code name, such as the application that modified the database.
  [in] | code_qa | A descriptive string, such as the version of the application that modified the database.
  [in] | date | A relevant date, such as the date the database was modified.
  [in] | time | A relevant time, such as the time the database was modified.

## ◆ begin()

bool Ioss::DatabaseIO::begin | ( | Ioss::State | state | ) |
| inline

Set the database to the given State.

All transitions must begin from the 'STATE_CLOSED' state or be to the 'STATE_CLOSED' state (There are no nested begin/end pairs at this time.)

The database state is automatically set when Region::begin_mode is called for its associated region, so it may not be necessary to call this method directly.

Parameters

  [in] | state | The new State to which the database should be set.

Returns
  True if successful.

## ◆ begin__()

virtual bool Ioss::DatabaseIO::begin__ | ( | Ioss::State | state | ) |
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, Iohb::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iodw::DatabaseIO, Iocgns::DatabaseIO, Iopg::DatabaseIO, Iovs::DatabaseIO, and Ioad::DatabaseIO.

## ◆ begin_state()

bool Ioss::DatabaseIO::begin_state | ( | int | state,
|  | double | time
| ) |  |

## ◆ begin_state__()

bool Ioss::DatabaseIO::begin_state__ | ( | int | state,
|  | double | time
| ) |  |
| privatevirtual

Reimplemented in Ioad::DatabaseIO, Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, Iohb::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::DatabaseIO, and Iovs::DatabaseIO.

## ◆ check_setDW()

void Ioss::DatabaseIO::check_setDW | ( |  | ) | const

Determine whether Cray Datawarp module is loaded and we have BB capacity allocated for this job ( i.e: DW_JOB_STRIPED is set) && IOSS property to use DATAWARP is set to Y/YES (i.e environmental variable ENABLE_DATAWARP) . If we are using DW then set some pathnames for writing directly to BB instead of PFS(i.e Lustre)

Check whether user wants to use Cray DataWarp. It will be enabled if: the `DW_JOB_STRIPED` or `DW_JOB_PRIVATE` environment variable is set by the queuing system during runtime and the IOSS property `ENABLE_DATAWARP` set to `YES`.

We currently only want output files to be directed to BB.

## ◆ check_side_topology()

void Ioss::DatabaseIO::check_side_topology | ( |  | ) | const
| protected

Check the topology of all face/element pairs in the model and fill the "TopoContainer faceTopology" variable with the unique pairs. This information is used for the faceblock/facesets and edgeblock/edgesets. If the 'topo_dimension' is 2, then face/element pairs are generated; if 'topo_dimension' is 1, then edge/element pairs are generated.

## ◆ closeDatabase()

void Ioss::DatabaseIO::closeDatabase | ( |  | ) | const
| inline

## ◆ closeDatabase__()

void Ioss::DatabaseIO::closeDatabase__ | ( |  | ) | const
| protectedvirtual

Reimplemented in Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, and Iocgns::DatabaseIO.

## ◆ closeDW()

void Ioss::DatabaseIO::closeDW | ( |  | ) | const

Function which invokes stageout from BB to Disk, prior to completion of final close.

This function gets called inside closeDatabase__(), which checks if Cray Datawarp (DW) is in use, if so, we want to call a stageout before actual close of this file.

## ◆ compute_block_adjacencies()

void Ioss::DatabaseIO::compute_block_adjacencies | ( |  | ) | const
| private

## ◆ compute_block_membership()

void Ioss::DatabaseIO::compute_block_membership | ( | Ioss::SideBlock * | efblock,
|  | std::vector< std::string > & | block_membership
| ) |  | const
| inline

## ◆ compute_block_membership__()

virtual void Ioss::DatabaseIO::compute_block_membership__ | ( | Ioss::SideBlock * | ,
|  | std::vector< std::string > & |
| ) |  | const
| inlineprivatevirtual

Reimplemented in Ioad::DatabaseIO, Ioex::DatabaseIO, and Iopg::DatabaseIO.

## ◆ create_group() [1/2]

template<>

void Ioss::DatabaseIO::create_group | ( | EntityType | type,
|  | const std::string & | ,
|  | const std::vector< std::string > & | group_spec,
|  | const SideSet * |
| ) |  |
| protected

## ◆ create_group() [2/2]

template<typename T >

void Ioss::DatabaseIO::create_group | ( | EntityType | type,
|  | const std::string & | type_name,
|  | const std::vector< std::string > & | group_spec,
|  | const T * | set_type
| ) |  |
| protected

## ◆ create_groups()

template<typename T >

void Ioss::DatabaseIO::create_groups | ( | const std::string & | property_name,
|  | EntityType | type,
|  | const std::string & | type_name,
|  | const T * | set_type
| ) |  |
| protected

## ◆ create_path()

void Ioss::DatabaseIO::create_path | ( | const std::string & | filename | ) | const

This function is used to create the path to an output directory (or history, restart, etc.)

## ◆ create_subgroup()

bool Ioss::DatabaseIO::create_subgroup | ( | const std::string & | group_name | ) |
| inline

If a database type supports groups, create the specified group as a child of the current group.

The name of the group must not contain a '/' character. If the command is successful, then the group will be the active group for all subsequent writes to the database.

Parameters

  [in] | group_name | The name of the subgroup to create.

Returns
  True if successful.

## ◆ create_subgroup__()

virtual bool Ioss::DatabaseIO::create_subgroup__ | ( | const std::string & |  | ) |
| inlineprivatevirtual

Reimplemented in Ioex::DatabaseIO.

## ◆ decoded_filename()

const std::string & Ioss::DatabaseIO::decoded_filename | ( |  | ) | const

Get a file-per-processor filename associated with the database.

\ returns The file-per-processor name for a file on this processor.

## ◆ element_global_to_local()

int64_t Ioss::DatabaseIO::element_global_to_local | ( | int64_t | global | ) | const
| inline

## ◆ element_global_to_local__()

virtual int64_t Ioss::DatabaseIO::element_global_to_local__ | ( | int64_t | global | ) | const
| inlineprivatevirtual

Reimplemented in Iohb::DatabaseIO, Iocgns::ParallelDatabaseIO, and Iocgns::DatabaseIO.

## ◆ end()

bool Ioss::DatabaseIO::end | ( | Ioss::State | state | ) |
| inline

Return the database to STATE_CLOSED.

The database is automatically set to STATE_CLOSED when Region::end_mode is called for its associated region, so it may not be necessary to call this method directly.

Parameters

  [in] | state | The State to end, i.e. the current state.

Returns
  True if successful.

## ◆ end__()

virtual bool Ioss::DatabaseIO::end__ | ( | Ioss::State | state | ) |
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, Iohb::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iodw::DatabaseIO, Iocgns::DatabaseIO, Iopg::DatabaseIO, Iovs::DatabaseIO, and Ioad::DatabaseIO.

## ◆ end_state()

bool Ioss::DatabaseIO::end_state | ( | int | state,
|  | double | time
| ) |  |

## ◆ end_state__()

bool Ioss::DatabaseIO::end_state__ | ( | int | state,
|  | double | time
| ) |  |
| privatevirtual

Reimplemented in Ioad::DatabaseIO, Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, Iohb::DatabaseIO, Iocgns::DatabaseIO, and Iovs::DatabaseIO.

## ◆ entity_field_support()

virtual unsigned Ioss::DatabaseIO::entity_field_support | ( |  | ) | const
| pure virtual

Implemented in Ioex::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, Iovs::DatabaseIO, and Ioad::DatabaseIO.

## ◆ finalize_database()

virtual void Ioss::DatabaseIO::finalize_database | ( |  | ) |
| inlinevirtual

Reimplemented in Iocgns::ParallelDatabaseIO, and Iocgns::DatabaseIO.

## ◆ flush_database()

void Ioss::DatabaseIO::flush_database | ( |  | ) | const
| inline

## ◆ flush_database__()

virtual void Ioss::DatabaseIO::flush_database__ | ( |  | ) | const
| inlineprotectedvirtual

Reimplemented in Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, and Iohb::DatabaseIO.

## ◆ get_block_adjacencies()

void Ioss::DatabaseIO::get_block_adjacencies | ( | const Ioss::ElementBlock * | eb,
|  | std::vector< std::string > & | block_adjacency
| ) |  | const
| inline

## ◆ get_block_adjacencies__()

void Ioss::DatabaseIO::get_block_adjacencies__ | ( | const Ioss::ElementBlock * | eb,
|  | std::vector< std::string > & | block_adjacency
| ) |  | const
| private

## ◆ get_bounding_box() [1/2]

AxisAlignedBoundingBox Ioss::DatabaseIO::get_bounding_box | ( | const Ioss::ElementBlock * | eb | ) | const

## ◆ get_bounding_box() [2/2]

AxisAlignedBoundingBox Ioss::DatabaseIO::get_bounding_box | ( | const Ioss::StructuredBlock * | sb | ) | const

## ◆ get_cycle_count()

int Ioss::DatabaseIO::get_cycle_count | ( |  | ) | const
| inline

## ◆ get_dwname()

std::string Ioss::DatabaseIO::get_dwname | ( |  | ) | const
| inline

## ◆ get_dwPath()

std::string Ioss::DatabaseIO::get_dwPath | ( |  | ) | const
| inline

We call this ONLY after we assure that using_dw() is TRUE \ returns mount point of Datawarp namespace, e.g: `/opt/cray/....<jobid>`

## ◆ get_field()

template<typename T >

int64_t Ioss::DatabaseIO::get_field | ( | const T * | reg,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| inline

## ◆ get_field_internal() [1/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const CommSet * | cs,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [2/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const EdgeBlock * | nb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopg::DatabaseIO, Iohb::DatabaseIO, Iocgns::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [3/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const EdgeSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [4/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const ElementBlock * | eb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iodw::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogn::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, Iogs::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [5/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const ElementSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::ParallelDatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [6/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const FaceBlock * | nb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iodw::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [7/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const FaceSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::ParallelDatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [8/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const NodeBlock * | nb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopg::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [9/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const NodeSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [10/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const Region * | reg,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopg::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [11/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const SideBlock * | fb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, Ioex::DatabaseIO, Iodw::DatabaseIO, Iopg::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [12/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const SideSet * | fs,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioad::DatabaseIO, Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Iovs::DatabaseIO.

## ◆ get_field_internal() [13/13]

virtual int64_t Ioss::DatabaseIO::get_field_internal | ( | const StructuredBlock * | ,
|  | const Field & | ,
|  | void * | ,
|  | size_t |
| ) |  | const
| inlineprivatevirtual

Reimplemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Ioad::DatabaseIO, Iovs::DatabaseIO, Iogn::DatabaseIO, Iopx::DatabaseIO, and Iofx::DatabaseIO.

## ◆ get_field_recognition()

bool Ioss::DatabaseIO::get_field_recognition | ( |  | ) | const
| inline

## ◆ get_field_separator()

char Ioss::DatabaseIO::get_field_separator | ( |  | ) | const
| inline

## ◆ get_file_per_state()

bool Ioss::DatabaseIO::get_file_per_state | ( |  | ) | const
| inline

## ◆ get_file_pointer()

virtual int Ioss::DatabaseIO::get_file_pointer | ( |  | ) | const
| inlinevirtual

For the database types that support it, return an integer `handle` through which a client can directly access the underlying file. Please use sparingly and with discretion. Basically, a kluge

Reimplemented in Ioex::DatabaseIO, Iocgns::DatabaseIO, Iocgns::ParallelDatabaseIO, Iopx::DatabaseIO, and Iofx::DatabaseIO.

## ◆ get_filename()

std::string Ioss::DatabaseIO::get_filename | ( |  | ) | const
| inline

Get the file name associated with the database.

Returns
  The database file name.

## ◆ get_format()

virtual const std::string Ioss::DatabaseIO::get_format | ( |  | ) | const
| pure virtual

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

Implemented in Ioex::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iocgns::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iovs::DatabaseIO, and Ioad::DatabaseIO.

## ◆ get_information_records()

const std::vector<std::string>& Ioss::DatabaseIO::get_information_records | ( |  | ) | const
| inline

Get all information records (informative strings) for the database.

Returns
  The informative strings.

## ◆ get_logging()

bool Ioss::DatabaseIO::get_logging | ( |  | ) | const
| inline

## ◆ get_overlay_count()

int Ioss::DatabaseIO::get_overlay_count | ( |  | ) | const
| inline

## ◆ get_pfsname()

std::string Ioss::DatabaseIO::get_pfsname | ( |  | ) | const
| inline

## ◆ get_property_manager()

const Ioss::PropertyManager& Ioss::DatabaseIO::get_property_manager | ( |  | ) | const
| inline

## ◆ get_qa_records()

const std::vector<std::string>& Ioss::DatabaseIO::get_qa_records | ( |  | ) | const
| inline

Get all QA records, each of which consists of 4 strings, from the database.

The 4 strings that make up a database QA record are:

1. A descriptive code name, such as the application that modified the database.
2. A descriptive string, such as the version of the application that modified the database.
3. A relevant date, such as the date the database was modified.
4. A relevant time, such as the time the database was modified.

Returns
  All QA records in a single vector. Every 4 consecutive elements of the vector make up a single QA record.

## ◆ get_region()

Region* Ioss::DatabaseIO::get_region | ( |  | ) | const
| inline

The owning region of this database.

## ◆ get_step_times()

void Ioss::DatabaseIO::get_step_times | ( |  | ) |
| inline

## ◆ get_step_times__()

virtual void Ioss::DatabaseIO::get_step_times__ | ( |  | ) |
| inlineprivatevirtual

Reimplemented in Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, Iocgns::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopx::DatabaseIO, and Iofx::DatabaseIO.

## ◆ get_surface_split_type()

Ioss::SurfaceSplitType Ioss::DatabaseIO::get_surface_split_type | ( |  | ) | const
| inline

## ◆ get_use_generic_canonical_name()

bool Ioss::DatabaseIO::get_use_generic_canonical_name | ( |  | ) | const
| inline

## ◆ handle_groups()

void Ioss::DatabaseIO::handle_groups | ( |  | ) |
| protected

## ◆ ignore_database_names() [1/2]

bool Ioss::DatabaseIO::ignore_database_names | ( |  | ) | const
| inline

## ◆ ignore_database_names() [2/2]

void Ioss::DatabaseIO::ignore_database_names | ( | bool | yes_no | ) |
| inline

## ◆ int_byte_size_api()

int Ioss::DatabaseIO::int_byte_size_api | ( |  | ) | const

Returns 4 or 8.

## ◆ int_byte_size_db()

virtual int Ioss::DatabaseIO::int_byte_size_db | ( |  | ) | const
| pure virtual

Implemented in Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iopg::DatabaseIO, Iocgns::DatabaseIO, Iovs::DatabaseIO, and Ioad::DatabaseIO.

## ◆ internal_edges_available()

virtual bool Ioss::DatabaseIO::internal_edges_available | ( |  | ) | const
| inlinevirtual

## ◆ internal_faces_available()

virtual bool Ioss::DatabaseIO::internal_faces_available | ( |  | ) | const
| inlinevirtual

## ◆ is_input()

bool Ioss::DatabaseIO::is_input | ( |  | ) | const
| inline

Determine whether the database is an input database.

Returns
  True if the database is an input database. False otherwise.

## ◆ is_parallel()

bool Ioss::DatabaseIO::is_parallel | ( |  | ) | const
| inline

## ◆ is_parallel_consistent()

bool Ioss::DatabaseIO::is_parallel_consistent | ( |  | ) | const
| inline

Determine whether application will make field data get/put calls parallel consistently.

True is default and required for parallel-io databases. Even if false, metadata operations must be called by all processors.

Returns
  True if application will make field data get/put calls parallel consistently.

## ◆ maximum_symbol_length()

virtual int Ioss::DatabaseIO::maximum_symbol_length | ( |  | ) | const
| inlinevirtual

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

Returns
  The length, or 0 for unlimited.

Reimplemented in Ioex::DatabaseIO, Iodw::DatabaseIO, and Iopg::DatabaseIO.

## ◆ needs_shared_node_information()

virtual bool Ioss::DatabaseIO::needs_shared_node_information | ( |  | ) | const
| inlinevirtual

Determine whether the database needs information about process ownership of nodes.

Returns
  True if database needs information about process ownership of nodes.

Reimplemented in Iocgns::ParallelDatabaseIO, and Iopx::DatabaseIO.

## ◆ node_global_to_local()

int64_t Ioss::DatabaseIO::node_global_to_local | ( | int64_t | global,
|  | bool | must_exist
| ) |  | const
| inline

Get the local (process-specific) node number corresponding to a global node number.

Parameters

  [in] | global | The global node number
  [in] | must_exist | If true, error will occur if the global node number is not mapped to any local node number on the current process.

Returns
  The local node number

## ◆ node_global_to_local__()

virtual int64_t Ioss::DatabaseIO::node_global_to_local__ | ( | int64_t | global,
|  | bool | must_exist
| ) |  | const
| inlineprivatevirtual

Reimplemented in Iohb::DatabaseIO, Iocgns::ParallelDatabaseIO, and Iocgns::DatabaseIO.

## ◆ node_major()

virtual bool Ioss::DatabaseIO::node_major | ( |  | ) | const
| inlinevirtual

If there is a single block of nodes in the model, then it is considered a node_major() database. If instead the nodes are local to each element block or structured block, then it is not a node_major database. Exodus is node major, CGNS is not.

Reimplemented in Iocgns::ParallelDatabaseIO, and Iocgns::DatabaseIO.

## ◆ ok()

bool Ioss::DatabaseIO::ok | ( | bool | write_message = `false`,
|  | std::string * | error_message = `nullptr`,
|  | int * | bad_count = `nullptr`
| ) |  | const
| inline

Check to see if database state is OK.

Parameters

  [in] | write_message | If true, then output a warning message indicating the problem.
  [in,out] | error_message | If non-null on input, then a warning message on output.
  [in,out] | bad_count | If non-null on input, then count of the number of processors where the file does not exist on output. If ok returns false, but *bad_count==0, then the routine does not support this argument.

Returns
  True if database state is OK. False if not.

## ◆ ok__()

virtual bool Ioss::DatabaseIO::ok__ | ( | bool | ,
|  | std::string * | ,
|  | int * | bad_count
| ) |  | const
| inlineprivatevirtual

Reimplemented in Ioex::DatabaseIO.

## ◆ open_create_behavior()

IfDatabaseExistsBehavior Ioss::DatabaseIO::open_create_behavior | ( |  | ) | const

## ◆ open_group()

bool Ioss::DatabaseIO::open_group | ( | const std::string & | group_name | ) |
| inline

If a database type supports groups and if the database contains groups, open the specified group.

If the group_name begins with '/', it specifies the absolute path name from the root with '/' separating groups. Otherwise, the group_name specifies a child group of the currently active group. If group_name == "/" then the root group is opened.

Parameters

  [in] | group_name | The name of the group to open.

Returns
  True if successful.

## ◆ open_group__()

virtual bool Ioss::DatabaseIO::open_group__ | ( | const std::string & |  | ) |
| inlineprivatevirtual

Reimplemented in Ioex::DatabaseIO.

## ◆ openDatabase()

void Ioss::DatabaseIO::openDatabase | ( |  | ) | const
| inline

## ◆ openDatabase__()

void Ioss::DatabaseIO::openDatabase__ | ( |  | ) | const
| protectedvirtual

Reimplemented in Ioex::DatabaseIO, Iocgns::ParallelDatabaseIO, and Iocgns::DatabaseIO.

## ◆ openDW()

void Ioss::DatabaseIO::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 DataWarp module.

Note: We would only like to use BB during write to avoid cache coherency issues during read. `dwPath` is the DW namespace which gets set during runtime from environment variable DW_JOB_STRIPED. Afterword, `using_dw()` function is used extensively for filename redirection for all related subsequent functions(e.g: get_filename, get_file_ptr etc) once burst buffer is found and set to be used.

In this wrapper function we check if user intends to use Cray DataWarp(aka DW), which provides ability to use NVMe based flash storage available across all compute nodes accessible via high speed NIC.

## ◆ operator=()

DatabaseIO& Ioss::DatabaseIO::operator= | ( | const DatabaseIO & |  | ) |
| privatedelete

## ◆ parallel_rank()

int Ioss::DatabaseIO::parallel_rank | ( |  | ) | const
| inline

Get the processor that this mesh database is on.

Returns
  The processor that this mesh database is on.

## ◆ parallel_size()

int Ioss::DatabaseIO::parallel_size | ( |  | ) | const
| inline

## ◆ progress()

void Ioss::DatabaseIO::progress | ( | const std::string & | output | ) | const
| inline

## ◆ put_field()

template<typename T >

int64_t Ioss::DatabaseIO::put_field | ( | const T * | reg,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| inline

## ◆ put_field_internal() [1/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const CommSet * | cs,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ put_field_internal() [2/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const EdgeBlock * | nb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iocgns::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ put_field_internal() [3/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const EdgeSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ put_field_internal() [4/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const ElementBlock * | eb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iovs::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Ioad::DatabaseIO.

## ◆ put_field_internal() [5/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const ElementSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ put_field_internal() [6/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const FaceBlock * | nb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Iovs::DatabaseIO.

## ◆ put_field_internal() [7/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const FaceSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iocgns::DatabaseIO, Ioad::DatabaseIO, and Iovs::DatabaseIO.

## ◆ put_field_internal() [8/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const NodeBlock * | nb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iovs::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Ioad::DatabaseIO.

## ◆ put_field_internal() [9/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const NodeSet * | ns,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iovs::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Ioad::DatabaseIO.

## ◆ put_field_internal() [10/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const Region * | reg,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Iocgns::DatabaseIO, Iohb::DatabaseIO, Ioex::DatabaseIO, Iopg::DatabaseIO, Iovs::DatabaseIO, Iodw::DatabaseIO, Iocgns::ParallelDatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Ioad::DatabaseIO.

## ◆ put_field_internal() [11/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const SideBlock * | fb,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Iocgns::DatabaseIO, Ioad::DatabaseIO, Ioex::DatabaseIO, Iopg::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, and Iovs::DatabaseIO.

## ◆ put_field_internal() [12/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const SideSet * | fs,
|  | const Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| privatepure virtual

Implemented in Iocgns::DatabaseIO, Ioad::DatabaseIO, Ioex::DatabaseIO, Iopg::DatabaseIO, Iovs::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iopx::DatabaseIO, and Iofx::DatabaseIO.

## ◆ put_field_internal() [13/13]

virtual int64_t Ioss::DatabaseIO::put_field_internal | ( | const StructuredBlock * | ,
|  | const Field & | ,
|  | void * | ,
|  | size_t |
| ) |  | const
| inlineprivatevirtual

Reimplemented in Ioex::DatabaseIO, Iopg::DatabaseIO, Iodw::DatabaseIO, Iocgns::DatabaseIO, Iohb::DatabaseIO, Iocgns::ParallelDatabaseIO, Ioad::DatabaseIO, Iovs::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iopx::DatabaseIO, and Iofx::DatabaseIO.

## ◆ read_meta_data()

void Ioss::DatabaseIO::read_meta_data | ( |  | ) |
| inline

## ◆ read_meta_data__()

virtual void Ioss::DatabaseIO::read_meta_data__ | ( |  | ) |
| privatepure virtual

Implemented in Ioad::DatabaseIO, Iopx::DatabaseIO, Iofx::DatabaseIO, Iogs::DatabaseIO, Iogn::DatabaseIO, Iohb::DatabaseIO, Iocgns::ParallelDatabaseIO, Iodw::DatabaseIO, Iopg::DatabaseIO, Iocgns::DatabaseIO, and Iovs::DatabaseIO.

## ◆ release_memory()

void Ioss::DatabaseIO::release_memory | ( |  | ) |
| inline

## ◆ release_memory__()

virtual void Ioss::DatabaseIO::release_memory__ | ( |  | ) |
| inlineprivatevirtual

Reimplemented in Iopx::DatabaseIO, and Iocgns::ParallelDatabaseIO.

## ◆ set_block_omissions()

void Ioss::DatabaseIO::set_block_omissions | ( | const std::vector< std::string > & | omissions,
|  | const std::vector< std::string > & | inclusions = `{}`
| ) |  |

## ◆ set_common_side_topology()

void Ioss::DatabaseIO::set_common_side_topology | ( |  | ) | const
| protected

Utility function that may be used by derived classes. Determines whether all elements in the model have the same side topology. This can be used to speed-up certain algorithms since they don't have to check each side (or group of sides) individually.

## ◆ set_cycle_count()

void Ioss::DatabaseIO::set_cycle_count | ( | int | count | ) | const
| inline

The overlay_count specifies the number of restart outputs which will be overlaid on top of the currently written step before advancing to the next step on the restart database.

For example, if restarts are being output every 0.1 seconds and the overlay count is specified as 2, then restart will write time 0.1 to step 1 of the database. It will then write 0.2 and 0.3 also to step 1. It will then increment the database step and write 0.4 to step 2; overlay 0.5 and 0.6 on step 2... At the end of the analysis, assuming it runs to completion, the database would have times 0.3, 0.6, 0.9, ... However, if there were a problem during the analysis, the last step on the database would contain an intermediate step.

The cycle_count specifies the number of restart steps which will be written to the restart database before previously written steps are overwritten.

For example, if the cycle count is 5 and restart is written every 0.1 seconds, the restart system will write data at times 0.1, 0.2, 0.3, 0.4, 0.5 to the database.

It will then overwrite the first step with data from time 0.6, the second with time 0.7. At time 0.8, the database would contain data at times 0.6, 0.7, 0.8, 0.4, 0.5. Note that time will not necessarily be monotonically increasing on a database that specifies the cycle count.

The cycle count and overlay count can both be used at the same time also. The basic formula is:

       db_step = (((output_step - 1) / overlay) % cycle) + 1

where "output_step" is the step that this would have been on the database in a normal write (1,2,3,....) and "db_step" is the step number that this will be written to.

If you only want the last step available on the database, use set_cycle_count(1)

## ◆ set_dwname()

void Ioss::DatabaseIO::set_dwname | ( | const std::string & | name | ) | const
| inline

this will be the name in BB namespace

## ◆ set_field_recognition()

void Ioss::DatabaseIO::set_field_recognition | ( | bool | yes_no | ) |
| inline

## ◆ set_field_separator()

void Ioss::DatabaseIO::set_field_separator | ( | char | separator | ) |

Set the character used to separate a field suffix from the field basename when recognizing vector, tensor fields.

Parameters

  [in] | separator | The separator character.

## ◆ set_file_per_state()

void Ioss::DatabaseIO::set_file_per_state | ( | bool | yes_no | ) | const
| inline

## ◆ set_int_byte_size_api()

void Ioss::DatabaseIO::set_int_byte_size_api | ( | Ioss::DataSize | size | ) | const
| virtual

Returns 4 or 8.

Set the number of bytes used to represent an integer.

Parameters

  [in] | size | The number of bytes. This is 4 for INT32 or 8 for INT64.

Reimplemented in Ioex::DatabaseIO.

## ◆ set_logging()

void Ioss::DatabaseIO::set_logging | ( | bool | on_off | ) |
| inline

## ◆ set_lower_case_variable_names()

void Ioss::DatabaseIO::set_lower_case_variable_names | ( | bool | true_false | ) | const
| inline

## ◆ set_maximum_symbol_length()

virtual void Ioss::DatabaseIO::set_maximum_symbol_length | ( | int |  | ) |
| inlinevirtual

Reimplemented in Ioex::DatabaseIO.

## ◆ set_overlay_count()

void Ioss::DatabaseIO::set_overlay_count | ( | int | count | ) | const
| inline

## ◆ set_parallel_consistency()

void Ioss::DatabaseIO::set_parallel_consistency | ( | bool | on_off | ) |
| inline

## ◆ set_pfsname()

void Ioss::DatabaseIO::set_pfsname | ( | const std::string & | name | ) | const
| inline

## ◆ set_region()

void Ioss::DatabaseIO::set_region | ( | Region * | region | ) |
| inline

## ◆ set_surface_split_type()

void Ioss::DatabaseIO::set_surface_split_type | ( | Ioss::SurfaceSplitType | split_type | ) |
| inline

## ◆ set_time_scale_factor()

void Ioss::DatabaseIO::set_time_scale_factor | ( | double | factor | ) |
| inline

## ◆ set_use_generic_canonical_name()

void Ioss::DatabaseIO::set_use_generic_canonical_name | ( | bool | yes_no | ) |
| inline

## ◆ usage()

Ioss::DatabaseUsage Ioss::DatabaseIO::usage | ( |  | ) | const
| inline

Get the Ioss::DatabaseUsage type of the database.

Returns
  The Ioss::DatabaseUsage type of the database.

## ◆ using_dw()

bool Ioss::DatabaseIO::using_dw | ( |  | ) | const
| inline

Set if Cray Datawarp exists and allocated space is found , i.e PATH to DW name space

## ◆ using_parallel_io()

bool Ioss::DatabaseIO::using_parallel_io | ( |  | ) | const
| inline

## ◆ util()

const Ioss::ParallelUtils& Ioss::DatabaseIO::util | ( |  | ) | const
| inline

## ◆ verify_and_log()

void Ioss::DatabaseIO::verify_and_log | ( | const GroupingEntity * | ge,
|  | const Field & | field,
|  | int | in_out
| ) |  | const
| private

## Friends And Related Function Documentation

## ◆ SerializeIO

friend class SerializeIO
| friend

## Member Data Documentation

## ◆ bbName

std::string Ioss::DatabaseIO::bbName {}
| mutableprotected

`bbName` is a temporary swizzled name which resides inside Burst Buffer namespace. This is a private trivial mapped name vs original `DBFilename` (which resides in permanent storage backed by parallel filesystem. `dwPath` is global BB mountpoint for current job with requested capacity via SLURM `#DW` directive. `usingDataWarp` – a boolean, for convenience of use so that we don't have to do getenv() calls to see if BB present.

## ◆ blockAdjacenciesCalculated

bool Ioss::DatabaseIO::blockAdjacenciesCalculated {false}
| mutableprivate

## ◆ blockAdjacency

std::vector<std::vector<bool> > Ioss::DatabaseIO::blockAdjacency
| mutableprotected

## ◆ blockInclusions

std::vector<std::string> Ioss::DatabaseIO::blockInclusions
| protected

## ◆ blockOmissions

std::vector<std::string> Ioss::DatabaseIO::blockOmissions
| protected

## ◆ commonSideTopology

ElementTopology* Ioss::DatabaseIO::commonSideTopology {nullptr}
| protected

## ◆ cycleCount

int Ioss::DatabaseIO::cycleCount {0}
| mutableprotected

Typically used for restart output, but can be used for all output... Maximum number of states on the output file. Overwrite the existing steps in a cyclic manner once exceed this count. Note that this breaks the convention that times be monotonically increasing on an exodusII file. Used by derived classes if they support this capability...

## ◆ DBFilename

std::string Ioss::DatabaseIO::DBFilename
| protected

## ◆ dbIntSizeAPI

Ioss::DataSize Ioss::DatabaseIO::dbIntSizeAPI {USE_INT32_API}
| mutableprotected

## ◆ dbState

Ioss::State Ioss::DatabaseIO::dbState {STATE_INVALID}
| mutableprotected

## ◆ dbUsage

Ioss::DatabaseUsage Ioss::DatabaseIO::dbUsage
| protected

## ◆ decodedFilename

std::string Ioss::DatabaseIO::decodedFilename
| mutableprotected

## ◆ doLogging

bool Ioss::DatabaseIO::doLogging {false}
| private

## ◆ dwPath

std::string Ioss::DatabaseIO::dwPath {}
| mutableprotected

## ◆ edgeMap

Ioss::Map Ioss::DatabaseIO::edgeMap {"edge", DBFilename, myProcessor}
| mutableprotected

## ◆ elementBlockBoundingBoxes

std::map<std::string, AxisAlignedBoundingBox> Ioss::DatabaseIO::elementBlockBoundingBoxes
| mutableprivate

## ◆ elementCount

int64_t Ioss::DatabaseIO::elementCount {0}
| protected

## ◆ elemMap

Ioss::Map Ioss::DatabaseIO::elemMap {"element", DBFilename, myProcessor}
| mutableprotected

## ◆ enableFieldRecognition

bool Ioss::DatabaseIO::enableFieldRecognition {true}
| private

## ◆ faceMap

Ioss::Map Ioss::DatabaseIO::faceMap {"face", DBFilename, myProcessor}
| mutableprotected

## ◆ fieldSeparator

char Ioss::DatabaseIO::fieldSeparator {'_'}
| private

## ◆ filePerState

bool Ioss::DatabaseIO::filePerState {false}
| mutableprotected

EXPERIMENTAL If this is true, then each state (timestep) output will be directed to a separate file. Currently this is only implemented for the exodus (parallel or serial, single file or fpp) database type.

## ◆ ignoreDatabaseNames

bool Ioss::DatabaseIO::ignoreDatabaseNames {false}
| private

## ◆ informationRecords

std::vector<std::string> Ioss::DatabaseIO::informationRecords
| protected

## ◆ isInput

bool Ioss::DatabaseIO::isInput
| private

## ◆ isParallel

bool Ioss::DatabaseIO::isParallel {false}
| protected

true if running in parallel

## ◆ isParallelConsistent

bool Ioss::DatabaseIO::isParallelConsistent
| private

Initial value:
{
true}

## ◆ lowerCaseVariableNames

bool Ioss::DatabaseIO::lowerCaseVariableNames {true}
| mutableprotected

## ◆ m_enableTracing

bool Ioss::DatabaseIO::m_enableTracing {false}
| private

## ◆ m_stateStart

std::chrono::time_point<std::chrono::high_resolution_clock> Ioss::DatabaseIO::m_stateStart
| private

## ◆ m_timeStateInOut

bool Ioss::DatabaseIO::m_timeStateInOut {false}
| private

## ◆ myProcessor

int Ioss::DatabaseIO::myProcessor {0}
| protected

number of processor this database is for

## ◆ nodeCount

int64_t Ioss::DatabaseIO::nodeCount {0}
| protected

## ◆ nodeMap

Ioss::Map Ioss::DatabaseIO::nodeMap {"node", DBFilename, myProcessor}
| mutableprotected

## ◆ originalDBFilename

std::string Ioss::DatabaseIO::originalDBFilename
| protected

Filename that this Database is connected with. Derived DatabaseIO classes may need to change this if the passed in filename is not the same as the filename actually used E.g., the Ioex_DatabaseIO (exodusII) changes if this is a parallel run since the passed in filename is just the basename, not the processor-specific filename.

## ◆ overlayCount

int Ioss::DatabaseIO::overlayCount {0}
| mutableprotected

## ◆ pfsName

std::string Ioss::DatabaseIO::pfsName {}
| mutableprotected

## ◆ properties

Ioss::PropertyManager Ioss::DatabaseIO::properties
| protected

The properties member data contains properties that can be used to set database-specific options. Examples include compression, name lengths, integer sizes, floating point sizes. By convention, the property name is all uppercase. Some existing properties recognized by the Exodus DatabaseIO class are:

Property | Value
--- | ---
COMPRESSION_LEVEL | In the range [0..9]. A value of 0 indicates no compression
COMPRESSION_SHUFFLE | (true/false) to enable/disable hdf5's shuffle compression

algorithm. | FILE_TYPE | netcdf4 | MAXIMUM_NAME_LENGTH | Maximum length of names that will be returned/passed via api call. | INTEGER_SIZE_DB | 4 or 8 indicating byte size of integers stored on the database. | INTEGER_SIZE_API | 4 or 8 indicating byte size of integers used in api functions. | LOGGING | (true/false) to enable/disable logging of field input/output

## ◆ qaRecords

std::vector<std::string> Ioss::DatabaseIO::qaRecords
| protected

## ◆ region_

Region* Ioss::DatabaseIO::region_ {nullptr}
| private

## ◆ sideTopology

TopoContainer Ioss::DatabaseIO::sideTopology
| protected

Used to speed up faceblock/edgeblock calculations.

## ◆ singleProcOnly

bool Ioss::DatabaseIO::singleProcOnly
| private

## ◆ splitType

Ioss::SurfaceSplitType Ioss::DatabaseIO::splitType {SPLIT_BY_TOPOLOGIES}
| protected

## ◆ timeScaleFactor

double Ioss::DatabaseIO::timeScaleFactor {1.0}
| protected

Scale the time read/written from/to the file by the specified scaleFactor. If the datbase times are 0.1, 0.2, 0.3 and the scaleFactor is 20, then the application will think that the times read are 20, 40, 60.

If specified for an output database, then the analysis time is divided by the scaleFactor time prior to output.

## ◆ useGenericCanonicalName

bool Ioss::DatabaseIO::useGenericCanonicalName
| private

Initial value:
{
false}

## ◆ usingDataWarp

bool Ioss::DatabaseIO::usingDataWarp {false}
| mutableprotected

## ◆ usingParallelIO

bool Ioss::DatabaseIO::usingParallelIO {false}
| protected

## ◆ util_

Ioss::ParallelUtils Ioss::DatabaseIO::util_
| private

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

- src/Ioss_DatabaseIO.h
- src/Ioss_DatabaseIO.C