IOSS 2.0

Public Member Functions | Private Member Functions | Private Attributes | List of all members
Iofx::DatabaseIO Class Reference

`#include <Iofx_DatabaseIO.h>`

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

## Public Member Functions
| DatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, MPI_Comm communicator, const Ioss::PropertyManager &props)
| DatabaseIO (const DatabaseIO &from)=delete
DatabaseIO & | operator= (const DatabaseIO &from)=delete
| ~DatabaseIO () override
int | get_file_pointer () const override
Public Member Functions inherited from Ioex::DatabaseIO
| DatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, MPI_Comm communicator, const Ioss::PropertyManager &props)
| DatabaseIO (const DatabaseIO &from)=delete
DatabaseIO & | operator= (const DatabaseIO &from)=delete
| ~DatabaseIO () override
const std::string | get_format () const override
unsigned | entity_field_support () const override
Public Member Functions inherited from Ioss::DatabaseIO
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...
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
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...
const std::string & | decoded_filename () const
| Get a file-per-processor filename associated with the database. More...
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)
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
int | int_byte_size_api () 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

## Private Member Functions
void | get_step_times__ () override
bool | open_input_file (bool write_message, std::string *error_msg, int *bad_count, bool abort_if_error) const override
bool | handle_output_file (bool write_message, std::string *error_msg, int *bad_count, bool overwrite, bool abort_if_error) const override
bool | check_valid_file_ptr (bool write_message, std::string *error_msg, int *bad_count, bool abort_if_error) const
int64_t | get_field_internal (const Ioss::Region *reg, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::EdgeBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::FaceBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::ElementBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::StructuredBlock *, const Ioss::Field &, void *, size_t) const override
int64_t | get_field_internal (const Ioss::SideBlock *fb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::NodeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::EdgeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::FaceSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::ElementSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::SideSet *fs, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::CommSet *cs, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::Region *reg, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::EdgeBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::FaceBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::ElementBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::SideBlock *fb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::NodeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::EdgeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::FaceSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::ElementSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::SideSet *fs, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::CommSet *cs, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::StructuredBlock *, const Ioss::Field &, void *, size_t) const override
int64_t | put_Xset_field_internal (ex_entity_type type, const Ioss::EntitySet *ns, const Ioss::Field &field, void *data, size_t data_size) const
int64_t | get_Xset_field_internal (ex_entity_type type, const Ioss::EntitySet *ns, const Ioss::Field &field, void *data, size_t data_size) const
int64_t | read_nodal_coordinates ()
void | read_elements (const Ioss::ElementBlock &block)
void | compute_node_status () const
void | read_meta_data__ () override
void | read_communication_metadata ()
int64_t | read_transient_field (ex_entity_type type, const Ioex::VariableNameMap &variables, const Ioss::Field &field, const Ioss::GroupingEntity *ge, void *data) const
int64_t | read_attribute_field (ex_entity_type type, const Ioss::Field &field, const Ioss::GroupingEntity *ge, void *data) const
int64_t | write_attribute_field (ex_entity_type type, const Ioss::Field &field, const Ioss::GroupingEntity *ge, void *data) const
int64_t | read_ss_transient_field (const Ioss::Field &field, int64_t id, void *variables, std::vector< int > &is_valid_side) const
void | write_nodal_transient_field (ex_entity_type type, const Ioss::Field &field, const Ioss::NodeBlock *ge, int64_t count, void *variables) const
void | write_entity_transient_field (ex_entity_type type, const Ioss::Field &field, const Ioss::GroupingEntity *ge, int64_t count, void *variables) const
void | write_meta_data () override
void | gather_communication_metadata (Ioex::CommunicationMetaData *meta)
void | read_region ()
void | get_edgeblocks ()
void | get_faceblocks ()
void | get_elemblocks ()
void | get_blocks (ex_entity_type entity_type, int rank_offset, const std::string &basename)
void | get_sidesets ()
template<typename T >
void | get_sets (ex_entity_type type, int64_t count, const std::string &base, const T *)
void | get_nodesets ()
void | get_edgesets ()
void | get_facesets ()
void | get_elemsets ()
void | get_commsets ()
const Ioss::Map & | get_map (ex_entity_type type) const
const Ioss::Map & | get_map (Ioss::Map &entity_map, int64_t entityCount, ex_entity_type entity_type, ex_inquiry inquiry_type) const
int64_t | handle_node_ids (void *ids, int64_t num_to_get) const
int64_t | handle_element_ids (const Ioss::ElementBlock *eb, void *ids, size_t num_to_get) const
int64_t | handle_face_ids (const Ioss::FaceBlock *eb, void *ids, size_t num_to_get) const
int64_t | handle_edge_ids (const Ioss::EdgeBlock *eb, void *ids, size_t num_to_get) const
int64_t | get_side_connectivity (const Ioss::SideBlock *fb, int64_t id, int64_t my_side_count, void *fconnect, bool map_ids) const
template<typename INT >
int64_t | get_side_connectivity_internal (const Ioss::SideBlock *fb, int64_t id, int64_t side_count, INT *fconnect, bool map_ids) const
int64_t | get_side_distributions (const Ioss::SideBlock *fb, int64_t id, int64_t my_side_count, double *dist_fact, size_t data_size) const
int64_t | get_side_field (const Ioss::SideBlock *ef_blk, const Ioss::Field &field, void *data, size_t data_size) const
int64_t | put_side_field (const Ioss::SideBlock *fb, const Ioss::Field &field, void *data, size_t data_size) const

## Private Attributes
bool | isSerialParallel
| true if application code is controlling the processor id. More...

## Additional Inherited Members
Protected Member Functions inherited from Ioex::DatabaseIO
bool | ok__ (bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const override
bool | open_group__ (const std::string &group_name) override
bool | create_subgroup__ (const std::string &group_name) override
bool | begin__ (Ioss::State state) override
bool | end__ (Ioss::State state) override
void | open_state_file (int state)
bool | begin_state__ (int state, double time) override
bool | end_state__ (int state, double time) override
int | maximum_symbol_length () const override
| Get the length of the longest name in the database file. More...
void | set_maximum_symbol_length (int requested_symbol_size) override
size_t | handle_block_ids (const Ioss::EntityBlock *eb, ex_entity_type map_type, Ioss::Map &entity_map, void *ids, size_t num_to_get, size_t offset) const
void | compute_block_membership__ (Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const override
int | int_byte_size_db () const override
void | set_int_byte_size_api (Ioss::DataSize size) const override
| Returns 4 or 8. More...
void | write_results_metadata (bool gather_data=true)
void | openDatabase__ () const override
void | closeDatabase__ () const override
virtual int | free_file_pointer () const
void | finalize_file_open () const
int | get_current_state () const
void | put_qa ()
void | put_info ()
template<typename T >
void | internal_write_results_metadata (ex_entity_type type, std::vector< T * > entities, int &glob_index)
void | generate_sideset_truth_table ()
void | output_results_names (ex_entity_type type, VariableNameMap &variables) const
int | gather_names (ex_entity_type type, VariableNameMap &variables, const Ioss::GroupingEntity *ge, int index, bool reduction)
void | get_nodeblocks ()
void | add_attribute_fields (ex_entity_type entity_type, Ioss::GroupingEntity *block, int attribute_count, const std::string &type)
void | output_other_meta_data ()
int64_t | internal_add_results_fields (ex_entity_type type, Ioss::GroupingEntity *entity, int64_t position, int64_t block_count, Ioss::IntVector &truth_table, Ioex::VariableNameMap &variables)
int64_t | add_results_fields (ex_entity_type type, Ioss::GroupingEntity *entity, int64_t position=0)
void | add_region_fields ()
void | store_reduction_field (ex_entity_type type, const Ioss::Field &field, const Ioss::GroupingEntity *ge, void *variables) const
void | get_reduction_field (ex_entity_type type, const Ioss::Field &field, const Ioss::GroupingEntity *ge, void *variables) const
void | write_reduction_fields () const
void | read_reduction_fields () const
int | get_database_step (int global_step) const
void | flush_database__ () const override
void | finalize_write (int state, double sim_time)
Protected Member Functions inherited from Ioss::DatabaseIO
| 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
template<>
void | create_group (EntityType type, const std::string &, const std::vector< std::string > &group_spec, const SideSet *)
Protected Attributes inherited from Ioex::DatabaseIO
int | exodusFilePtr {-1}
std::string | m_groupName
EntityIdSet | ids_
int | exodusMode {EX_CLOBBER}
int | dbRealWordSize {8}
int | maximumNameLength {32}
int | spatialDimension {0}
int64_t | edgeCount {0}
int64_t | faceCount {0}
std::map< ex_entity_type, int > | m_groupCount
Ioss::Int64Vector | nodeCmapIds
Ioss::Int64Vector | nodeCmapNodeCnts
Ioss::Int64Vector | elemCmapIds
Ioss::Int64Vector | elemCmapElemCnts
int64_t | commsetNodeCount {0}
int64_t | commsetElemCount {0}
std::map< ex_entity_type, Ioss::IntVector > | m_truthTable
std::map< ex_entity_type, VariableNameMap > | m_variables
ValueContainer | globalValues
std::vector< unsigned char > | nodeConnectivityStatus
std::map< std::string, Ioss::Int64Vector > | activeNodeSetNodesIndex
time_t | timeLastFlush {0}
int | flushInterval {-1}
bool | fileExists {false}
bool | minimizeOpenFiles {false}
bool | blockAdjacenciesCalculated {false}
bool | nodeConnectivityStatusCalculated
Protected Attributes inherited from Ioss::DatabaseIO
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

## Constructor & Destructor Documentation

## ◆ DatabaseIO() [1/2]

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

## ◆ DatabaseIO() [2/2]

Iofx::DatabaseIO::DatabaseIO | ( | const DatabaseIO & | from | ) |
| delete

## ◆ ~DatabaseIO()

Iofx::DatabaseIO::~DatabaseIO | ( |  | ) |
| inlineoverridevirtual

Reimplemented from Ioss::DatabaseIO.

## Member Function Documentation

## ◆ check_valid_file_ptr()

bool Iofx::DatabaseIO::check_valid_file_ptr | ( | bool | write_message,
|  | std::string * | error_msg,
|  | int * | bad_count,
|  | bool | abort_if_error
| ) |  | const
| private

## ◆ compute_node_status()

void Iofx::DatabaseIO::compute_node_status | ( |  | ) | const
| private

Todo:
  Get working for parallel...

## ◆ gather_communication_metadata()

void Iofx::DatabaseIO::gather_communication_metadata | ( | Ioex::CommunicationMetaData * | meta | ) |
| private

## ◆ get_blocks()

void Iofx::DatabaseIO::get_blocks | ( | ex_entity_type | entity_type,
|  | int | rank_offset,
|  | const std::string & | basename
| ) |  |
| private

## ◆ get_commsets()

void Iofx::DatabaseIO::get_commsets | ( |  | ) |
| private

## ◆ get_edgeblocks()

void Iofx::DatabaseIO::get_edgeblocks | ( |  | ) |
| private

## ◆ get_edgesets()

void Iofx::DatabaseIO::get_edgesets | ( |  | ) |
| private

## ◆ get_elemblocks()

void Iofx::DatabaseIO::get_elemblocks | ( |  | ) |
| private

## ◆ get_elemsets()

void Iofx::DatabaseIO::get_elemsets | ( |  | ) |
| private

## ◆ get_faceblocks()

void Iofx::DatabaseIO::get_faceblocks | ( |  | ) |
| private

## ◆ get_facesets()

void Iofx::DatabaseIO::get_facesets | ( |  | ) |
| private

## ◆ get_field_internal() [1/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [2/13]

int64_t Iofx::DatabaseIO::get_field_internal | ( | const Ioss::EdgeBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [3/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [4/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [5/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [6/13]

int64_t Iofx::DatabaseIO::get_field_internal | ( | const Ioss::FaceBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [7/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [8/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [9/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [10/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [11/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [12/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [13/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_file_pointer()

int Iofx::DatabaseIO::get_file_pointer | ( |  | ) | const
| overridevirtual

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

Implements Ioex::DatabaseIO.

## ◆ get_map() [1/2]

const Ioss::Map & Iofx::DatabaseIO::get_map | ( | ex_entity_type | type | ) | const
| private

## ◆ get_map() [2/2]

const Ioss::Map & Iofx::DatabaseIO::get_map | ( | Ioss::Map & | entity_map,
|  | int64_t | entityCount,
|  | ex_entity_type | entity_type,
|  | ex_inquiry | inquiry_type
| ) |  | const
| private

## ◆ get_nodesets()

void Iofx::DatabaseIO::get_nodesets | ( |  | ) |
| private

## ◆ get_sets()

template<typename T >

void Iofx::DatabaseIO::get_sets | ( | ex_entity_type | type,
|  | int64_t | count,
|  | const std::string & | base,
|  | const T * |
| ) |  |
| private

## ◆ get_side_connectivity()

int64_t Iofx::DatabaseIO::get_side_connectivity | ( | const Ioss::SideBlock * | fb,
|  | int64_t | id,
|  | int64_t | my_side_count,
|  | void * | fconnect,
|  | bool | map_ids
| ) |  | const
| private

## ◆ get_side_connectivity_internal()

template<typename INT >

int64_t Iofx::DatabaseIO::get_side_connectivity_internal | ( | const Ioss::SideBlock * | fb,
|  | int64_t | id,
|  | int64_t | side_count,
|  | INT * | fconnect,
|  | bool | map_ids
| ) |  | const
| private

## ◆ get_side_distributions()

int64_t Iofx::DatabaseIO::get_side_distributions | ( | const Ioss::SideBlock * | fb,
|  | int64_t | id,
|  | int64_t | my_side_count,
|  | double * | dist_fact,
|  | size_t | data_size
| ) |  | const
| private

## ◆ get_side_field()

int64_t Iofx::DatabaseIO::get_side_field | ( | const Ioss::SideBlock * | ef_blk,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| private

## ◆ get_sidesets()

void Iofx::DatabaseIO::get_sidesets | ( |  | ) |
| private

## ◆ get_step_times__()

void Iofx::DatabaseIO::get_step_times__ | ( |  | ) |
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ get_Xset_field_internal()

int64_t Iofx::DatabaseIO::get_Xset_field_internal | ( | ex_entity_type | type,
|  | const Ioss::EntitySet * | ns,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| private

## ◆ handle_edge_ids()

int64_t Iofx::DatabaseIO::handle_edge_ids | ( | const Ioss::EdgeBlock * | eb,
|  | void * | ids,
|  | size_t | num_to_get
| ) |  | const
| private

## ◆ handle_element_ids()

int64_t Iofx::DatabaseIO::handle_element_ids | ( | const Ioss::ElementBlock * | eb,
|  | void * | ids,
|  | size_t | num_to_get
| ) |  | const
| private

## ◆ handle_face_ids()

int64_t Iofx::DatabaseIO::handle_face_ids | ( | const Ioss::FaceBlock * | eb,
|  | void * | ids,
|  | size_t | num_to_get
| ) |  | const
| private

## ◆ handle_node_ids()

int64_t Iofx::DatabaseIO::handle_node_ids | ( | void * | ids,
|  | int64_t | num_to_get
| ) |  | const
| private

There are two modes we need to support in this routine:

1. Initial definition of node map (local->global) and nodeMap.reverse (global->local).
2. Redefinition of node map via 'reordering' of the original map when the nodes on this processor are the same, but their order is changed (or count because of ghosting)

So, there will be two maps the 'nodeMap.map' map is a 'direct lookup' map which maps current local position to global id and the 'nodeMap.reverse' is an associative lookup which maps the global id to 'original local'. There is also a 'nodeMap.reorder' which is direct lookup and maps current local position to original local.

The ids coming in are the global ids; their position is the "local id-1" (That is, data[0] contains the global id of local node 1 in this node block).

int local_position = nodeMap.reverseNodeMap[i+1]

To determine which map to update on a call to this function, we use the following hueristics: – If the database state is 'STATE_MODEL:', then update the 'nodeMap.reverse' and 'nodeMap.map'

– If the database state is not STATE_MODEL, then leave the 'nodeMap.reverse' and 'nodeMap.map' alone since they correspond to the information already written to the database. [May want to add a STATE_REDEFINE_MODEL]

– In both cases, update the nodeMap.reorder

NOTE: The mapping is done on TRANSIENT fields only; MODEL fields should be in the original order...

## ◆ handle_output_file()

bool Iofx::DatabaseIO::handle_output_file | ( | bool | write_message,
|  | std::string * | error_msg,
|  | int * | bad_count,
|  | bool | overwrite,
|  | bool | abort_if_error
| ) |  | const
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ open_input_file()

bool Iofx::DatabaseIO::open_input_file | ( | bool | write_message,
|  | std::string * | error_msg,
|  | int * | bad_count,
|  | bool | abort_if_error
| ) |  | const
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ operator=()

DatabaseIO& Iofx::DatabaseIO::operator= | ( | const DatabaseIO & | from | ) |
| delete

## ◆ put_field_internal() [1/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [2/13]

int64_t Iofx::DatabaseIO::put_field_internal | ( | const Ioss::EdgeBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [3/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [4/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [5/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [6/13]

int64_t Iofx::DatabaseIO::put_field_internal | ( | const Ioss::FaceBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [7/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [8/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [9/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [10/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [11/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [12/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [13/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_side_field()

int64_t Iofx::DatabaseIO::put_side_field | ( | const Ioss::SideBlock * | fb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| private

## ◆ put_Xset_field_internal()

int64_t Iofx::DatabaseIO::put_Xset_field_internal | ( | ex_entity_type | type,
|  | const Ioss::EntitySet * | ns,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| private

## ◆ read_attribute_field()

int64_t Iofx::DatabaseIO::read_attribute_field | ( | ex_entity_type | type,
|  | const Ioss::Field & | field,
|  | const Ioss::GroupingEntity * | ge,
|  | void * | data
| ) |  | const
| private

## ◆ read_communication_metadata()

void Iofx::DatabaseIO::read_communication_metadata | ( |  | ) |
| private

## ◆ read_elements()

void Iofx::DatabaseIO::read_elements | ( | const Ioss::ElementBlock & | block | ) |
| private

## ◆ read_meta_data__()

void Iofx::DatabaseIO::read_meta_data__ | ( |  | ) |
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ read_nodal_coordinates()

int64_t Iofx::DatabaseIO::read_nodal_coordinates | ( |  | ) |
| private

## ◆ read_region()

void Iofx::DatabaseIO::read_region | ( |  | ) |
| private

## ◆ read_ss_transient_field()

int64_t Iofx::DatabaseIO::read_ss_transient_field | ( | const Ioss::Field & | field,
|  | int64_t | id,
|  | void * | variables,
|  | std::vector< int > & | is_valid_side
| ) |  | const
| private

## ◆ read_transient_field()

int64_t Iofx::DatabaseIO::read_transient_field | ( | ex_entity_type | type,
|  | const Ioex::VariableNameMap & | variables,
|  | const Ioss::Field & | field,
|  | const Ioss::GroupingEntity * | ge,
|  | void * | data
| ) |  | const
| private

## ◆ write_attribute_field()

int64_t Iofx::DatabaseIO::write_attribute_field | ( | ex_entity_type | type,
|  | const Ioss::Field & | field,
|  | const Ioss::GroupingEntity * | ge,
|  | void * | data
| ) |  | const
| private

## ◆ write_entity_transient_field()

void Iofx::DatabaseIO::write_entity_transient_field | ( | ex_entity_type | type,
|  | const Ioss::Field & | field,
|  | const Ioss::GroupingEntity * | ge,
|  | int64_t | count,
|  | void * | variables
| ) |  | const
| private

## ◆ write_meta_data()

void Iofx::DatabaseIO::write_meta_data | ( |  | ) |
| overrideprivatevirtual

Implements Ioex::DatabaseIO.

## ◆ write_nodal_transient_field()

void Iofx::DatabaseIO::write_nodal_transient_field | ( | ex_entity_type | type,
|  | const Ioss::Field & | field,
|  | const Ioss::NodeBlock * | ge,
|  | int64_t | count,
|  | void * | variables
| ) |  | const
| private

## Member Data Documentation

## ◆ isSerialParallel

bool Iofx::DatabaseIO::isSerialParallel
| mutableprivate

Initial value:
{
false}

true if application code is controlling the processor id.

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

- src/exo_fpp/Iofx_DatabaseIO.h
- src/exo_fpp/Iofx_DatabaseIO.C