IOSS 2.0
|
An input or output Database. More...
#include <Ioss_DatabaseIO.h>
Public Member Functions | |
DatabaseIO ()=delete | |
DatabaseIO (const DatabaseIO &)=delete | |
DatabaseIO (DatabaseIO &&)=delete | |
DatabaseIO & | operator= (const DatabaseIO &)=delete |
DatabaseIO & | operator= (DatabaseIO &&)=delete |
virtual | ~DatabaseIO () |
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. | |
virtual IOSS_NODISCARD unsigned | entity_field_support () const =0 |
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. | |
virtual IOSS_NODISCARD std::string | get_format () const =0 |
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::NameList & | get_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::NameList & | get_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 |
virtual IOSS_NODISCARD int | int_byte_size_db () const =0 |
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 Region * | get_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::ParallelUtils & | util () const |
IOSS_NODISCARD const Ioss::PropertyManager & | get_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 *) |
Protected Member Functions | |
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 () |
Private Member Functions | |
virtual bool | ok_nl (bool, std::string *, int *bad_count) const |
virtual int64_t | node_global_to_local_nl (int64_t global, bool must_exist) const |
virtual int64_t | element_global_to_local_nl (int64_t global) const |
virtual bool | supports_internal_change_set_nl () |
virtual bool | open_internal_change_set_nl (const std::string &) |
virtual bool | open_internal_change_set_nl (int) |
virtual bool | create_internal_change_set_nl (const std::string &) |
virtual int | num_internal_change_set_nl () |
virtual Ioss::NameList | internal_change_set_describe_nl (bool) |
virtual bool | begin_nl (Ioss::State state)=0 |
virtual bool | end_nl (Ioss::State state)=0 |
virtual void | read_meta_data_nl ()=0 |
virtual void | get_step_times_nl () |
virtual std::vector< double > | get_db_step_times_nl () |
virtual bool | begin_state_nl (int state, double time) |
virtual bool | end_state_nl (int state, double time) |
void | get_block_adjacencies_nl (const Ioss::ElementBlock *eb, Ioss::NameList &block_adjacency) const |
virtual void | compute_block_membership_nl (Ioss::SideBlock *, Ioss::NameList &) const |
void | compute_block_adjacencies () const |
bool | verify_field_data (const GroupingEntity *ge, const Field &field, Ioss::Field::InOut in_out, void *data) 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 Assembly *as, const Field &field, void *data, size_t data_size) const =0 |
virtual int64_t | get_field_internal (const Blob *bl, const Field &field, void *data, size_t data_size) const =0 |
virtual int64_t | get_field_internal (const StructuredBlock *sb, const Field &field, void *data, size_t data_size) const =0 |
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 Assembly *as, const Field &field, void *data, size_t data_size) const =0 |
virtual int64_t | put_field_internal (const Blob *bl, const Field &field, void *data, size_t data_size) const =0 |
virtual int64_t | put_field_internal (const StructuredBlock *sb, const Field &field, void *data, size_t data_size) const =0 |
virtual int64_t | get_zc_field_internal (const Region *reg, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const NodeBlock *nb, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const EdgeBlock *nb, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const FaceBlock *nb, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const ElementBlock *eb, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const SideBlock *fb, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const NodeSet *ns, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const EdgeSet *ns, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const FaceSet *ns, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const ElementSet *ns, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const SideSet *fs, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const CommSet *cs, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const Assembly *as, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const Blob *bl, const Field &field, void **data, size_t *data_size) const |
virtual int64_t | get_zc_field_internal (const StructuredBlock *sb, const Field &field, void **data, size_t *data_size) const |
template<typename T > | |
std::vector< size_t > | get_entity_field_data_internal (const std::string &field_name, const std::vector< T * > &entity_container, void *data, size_t data_size) const |
Private Attributes | |
std::map< std::string, AxisAlignedBoundingBox > | elementBlockBoundingBoxes |
Ioss::ParallelUtils | util_ |
Region * | region_ {nullptr} |
char | fieldSeparator {'_'} |
DuplicateFieldBehavior | duplicateFieldBehavior {DuplicateFieldBehavior::UNSET_} |
bool | fieldSeparatorSpecified {false} |
bool | enableFieldRecognition {true} |
bool | fieldStripTrailing_ {false} |
bool | isInput {true} |
bool | isParallelConsistent |
bool | singleProcOnly {false} |
bool | doLogging {false} |
bool | doNanDetection {false} |
bool | useGenericCanonicalName |
bool | ignoreDatabaseNames {false} |
bool | blockAdjacenciesCalculated {false} |
bool | m_timeStateInOut {false} |
bool | m_enableTracing {false} |
bool | m_ignoreRealnFields {false} |
std::chrono::time_point< std::chrono::steady_clock > | m_stateStart |
Friends | |
class | SerializeIO |
An input or output Database.
|
delete |
|
delete |
|
delete |
|
virtualdefault |
|
protected |
void Ioss::DatabaseIO::add_information_record | ( | const std::string & | info | ) |
Add an information record (an informative string) to the database.
[in] | info | The string to add. |
void Ioss::DatabaseIO::add_information_records | ( | const Ioss::NameList & | info | ) |
Add multiple information records (informative strings) to the database.
[in] | info | The strings to add. |
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.
[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. |
|
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.
[in] | state | The new State to which the database should be set. |
|
privatepure virtual |
Implemented in Ioad::DatabaseIO, Iocatalyst::DatabaseIO, Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, Iofaodel::DatabaseIO, Iogn::DatabaseIO, Iogs::DatabaseIO, Iohb::DatabaseIO, Ionull::DatabaseIO, Iopg::DatabaseIO, Iotm::DatabaseIO, Iovs_cgns::DatabaseIO, and Iovs_exodus::DatabaseIO.
bool Ioss::DatabaseIO::begin_state | ( | int | state, |
double | time ) |
|
privatevirtual |
void Ioss::DatabaseIO::check_set_dw | ( | ) | 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.
|
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.
void Ioss::DatabaseIO::close_dw | ( | ) | const |
Function which invokes stageout from BB to Disk, prior to completion of final close.
This function gets called inside closeDatabase_nl(), which checks if Cray Datawarp (DW) is in use, if so, we want to call a stageout before actual close of this file.
|
inline |
|
protectedvirtual |
Reimplemented in Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, and Ioexnl::BaseDatabaseIO.
|
private |
|
inline |
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, and Iopg::DatabaseIO.
void Ioss::DatabaseIO::create_group | ( | EntityType | type, |
const std::string & | , | ||
const Ioss::NameList & | group_spec, | ||
const SideSet * | ) |
|
protected |
|
protected |
|
inline |
If a database type supports internal change sets, create the specified set.
[in] | set_name | The name of the set to create. |
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO.
const std::string & Ioss::DatabaseIO::decoded_filename | ( | ) | const |
Get a file-per-processor filename associated with the database.
|
inline |
|
inlineprivatevirtual |
Reimplemented in Iocgns::DatabaseIO, and Iohb::DatabaseIO.
|
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.
[in] | state | The State to end, i.e. the current state. |
|
privatepure virtual |
Implemented in Ioad::DatabaseIO, Iocatalyst::DatabaseIO, Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, Iofaodel::DatabaseIO, Iogn::DatabaseIO, Iogs::DatabaseIO, Iohb::DatabaseIO, Ionull::DatabaseIO, Iopg::DatabaseIO, Iotm::DatabaseIO, Iovs_cgns::DatabaseIO, and Iovs_exodus::DatabaseIO.
bool Ioss::DatabaseIO::end_state | ( | int | state, |
double | time ) |
|
privatevirtual |
|
pure virtual |
Implemented in Ioad::DatabaseIO, Iocatalyst::DatabaseIO, Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, Iofaodel::DatabaseIO, Iogn::DatabaseIO, Iogs::DatabaseIO, Iohb::DatabaseIO, Ionull::DatabaseIO, Iopg::DatabaseIO, Iotm::DatabaseIO, Iovs_cgns::DatabaseIO, and Iovs_exodus::DatabaseIO.
|
inlinevirtual |
Reimplemented in Iocatalyst::DatabaseIO, Iocgns::DatabaseIO, and Iofaodel::DatabaseIO.
|
inline |
|
inlineprotectedvirtual |
Reimplemented in Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, and Iohb::DatabaseIO.
|
inline |
|
private |
AxisAlignedBoundingBox Ioss::DatabaseIO::get_bounding_box | ( | const Ioss::ElementBlock * | eb | ) | const |
AxisAlignedBoundingBox Ioss::DatabaseIO::get_bounding_box | ( | const Ioss::NodeBlock * | nb | ) | const |
AxisAlignedBoundingBox Ioss::DatabaseIO::get_bounding_box | ( | const Ioss::StructuredBlock * | sb | ) | const |
std::string Ioss::DatabaseIO::get_component_name | ( | const Ioss::Field & | field, |
Ioss::Field::InOut | in_out, | ||
int | component ) const |
|
inline |
|
inline |
Return the list of timesteps in the database contingent on certain controlling properties.
This is different from get_step_times() in that it does not set timestep data on the region. If the database supports change sets, it will return the timestep data for the current change set
|
inlineprivatevirtual |
Reimplemented in Iocatalyst::DatabaseIO, Iocgns::DatabaseIO, Ioex::DatabaseIO, Iofaodel::DatabaseIO, Iogn::DatabaseIO, Iogs::DatabaseIO, and Iotm::DatabaseIO.
|
inline |
|
inline |
|
inline |
We call this ONLY after we assure that using_dw() is TRUE.
/opt/cray/....<jobid>
|
virtual |
|
private |
|
inline |
|
privatepure virtual |
|
privatepure virtual |
|
privatepure virtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
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 Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, Ioex::DatabaseIO, Ioexnl::BaseDatabaseIO, and Ioexnl::DatabaseIO.
|
inline |
Get the file name associated with the database.
|
pure virtual |
Return a string specifying underlying format of database (exodus, cgns, ...)
Implemented in Ioad::DatabaseIO, Iocatalyst::DatabaseIO, Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, Iofaodel::DatabaseIO, Iogn::DatabaseIO, Iogs::DatabaseIO, Iohb::DatabaseIO, Ionull::DatabaseIO, Iopg::DatabaseIO, Iotm::DatabaseIO, Iovs_cgns::DatabaseIO, and Iovs_exodus::DatabaseIO.
|
inline |
|
inline |
Get all information records (informative strings) for the database.
|
inlinevirtual |
Reimplemented in Ioex::BaseDatabaseIO.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
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:
|
inline |
The owning region of this database.
|
inline |
|
inlineprivatevirtual |
|
inline |
|
inline |
|
inline |
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
privatevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
protected |
|
inline |
|
inline |
int Ioss::DatabaseIO::int_byte_size_api | ( | ) | const |
Returns 4 or 8.
Ioss::DataSize Ioss::DatabaseIO::int_byte_size_data_size | ( | ) | const |
|
pure virtual |
Implemented in Ioad::DatabaseIO, Iocatalyst::DatabaseIO, Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, Iofaodel::DatabaseIO, Iogn::DatabaseIO, Iogs::DatabaseIO, Iohb::DatabaseIO, Ionull::DatabaseIO, Iopg::DatabaseIO, Iotm::DatabaseIO, Iovs_cgns::DatabaseIO, and Iovs_exodus::DatabaseIO.
|
inline |
If a database type supports internal change sets, return a list of set names.
[in] | return_full_names | Flag to control return of relative or full set name paths. |
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO.
|
inlinevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
inlinevirtual |
Reimplemented in Iocatalyst::DatabaseIO.
|
inline |
Determine whether the database is an input database.
|
inline |
|
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.
|
inlinevirtual |
Get the length of the longest name in the database file.
Reimplemented in Iocatalyst::DatabaseIO, Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, Iofaodel::DatabaseIO, and Iopg::DatabaseIO.
|
inlinevirtual |
Determine whether the database needs information about process ownership of nodes.
Reimplemented in Iocatalyst::DatabaseIO.
|
inline |
Get the local (process-specific) node number corresponding to a global node number.
[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. |
|
inlineprivatevirtual |
Reimplemented in Iocgns::DatabaseIO, and Iohb::DatabaseIO.
|
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 Iocatalyst::DatabaseIO, and Iocgns::DatabaseIO.
|
inline |
If a database type supports internal change sets, and if the database contains internal change sets, return the number of change sets.
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO.
|
inline |
Check to see if database state is OK.
[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. |
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, and Ionull::DatabaseIO.
IfDatabaseExistsBehavior Ioss::DatabaseIO::open_create_behavior | ( | ) | const |
void Ioss::DatabaseIO::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.
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.
|
inline |
If a database type supports internal change sets and if the database contains internal change sets, open the specified set.
[in] | set_name | The name of the set to open. |
|
inline |
If a database type supports internal change sets, open the change set specified [zero-based] index.
[in] | child_index | The [zero-based] index of the internal change set to open. |
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO.
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO.
|
inline |
|
protectedvirtual |
Reimplemented in Iocgns::DatabaseIO, Ioex::BaseDatabaseIO, and Ioexnl::BaseDatabaseIO.
|
delete |
|
delete |
|
inline |
Get the processor that this mesh database is on.
|
inline |
|
inline |
|
inline |
|
privatepure virtual |
|
privatepure virtual |
|
privatepure virtual |
|
inline |
|
privatepure virtual |
|
inline |
|
protectedvirtual |
Reimplemented in Ioex::BaseDatabaseIO.
|
inline |
|
protectedvirtual |
void Ioss::DatabaseIO::set_assembly_omissions | ( | const Ioss::NameList & | omissions, |
const Ioss::NameList & | inclusions = {} ) |
void Ioss::DatabaseIO::set_block_omissions | ( | const Ioss::NameList & | omissions, |
const Ioss::NameList & | inclusions = {} ) |
|
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.
|
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)
|
inline |
this will be the name in BB namespace
|
inline |
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.
[in] | separator | The separator character. |
|
inline |
|
inline |
|
inline |
|
virtual |
Returns 4 or 8.
Set the number of bytes used to represent an integer.
[in] | size | The number of bytes. This is 4 for INT32 or 8 for INT64. |
Reimplemented in Ioex::BaseDatabaseIO, Ioexnl::BaseDatabaseIO, and Ionull::DatabaseIO.
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in Iocatalyst::DatabaseIO, Ioex::BaseDatabaseIO, and Ioexnl::BaseDatabaseIO.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Checks if a database type supports internal change sets.
|
inlineprivatevirtual |
Reimplemented in Ioex::BaseDatabaseIO.
|
inline |
Get the Ioss::DatabaseUsage type of the database.
|
inline |
Set if Cray Datawarp exists and allocated space is found , i.e PATH to DW name space
|
inline |
|
inline |
|
private |
|
private |
|
friend |
|
protected |
|
protected |
|
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.
|
mutableprivate |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
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...
|
protected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
mutableprotected |
|
private |
|
private |
|
private |
|
mutableprotected |
|
mutableprotected |
|
mutableprivate |
|
protected |
|
mutableprotected |
|
private |
|
mutableprotected |
|
private |
|
private |
|
private |
|
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.
|
private |
|
protected |
|
private |
|
protected |
true if running in parallel
|
private |
|
mutableprotected |
|
private |
|
private |
|
private |
|
private |
|
protected |
number of processor this database is for
|
protected |
|
mutableprotected |
|
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.
|
mutableprotected |
|
mutableprotected |
|
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
|
protected |
|
private |
|
protected |
Used to speed up faceblock/edgeblock calculations.
|
private |
|
protected |
|
protected |
Scale the time read/written from/to the file by the specified scaleFactor. If the database times are 0.1, 0.2, 0.3 and the scaleFactor is 20, then the application will think that the times read are 2.0, 4.0, 6.0.
If specified for an output database, then the analysis time is divided by the scaleFactor time prior to output.
|
private |
|
mutableprotected |
|
protected |
|
private |