IOSS 2.0

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

`#include <Iopx_DatabaseIO.h>`

## Public Member Functions
| DatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, MPI_Comm communicator, const Ioss::PropertyManager &properties)
| DatabaseIO (const DatabaseIO &from)=delete
DatabaseIO & | operator= (const DatabaseIO &from)=delete
| ~DatabaseIO ()
bool | needs_shared_node_information () const override
| Determine whether the database needs information about process ownership of nodes. More...
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
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 ()
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...
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 | 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 (Region *region, int state, double time)
bool | end_state (Region *region, 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
void | set_overlay_count (int count) 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
template<>
void | create_group (EntityType type, const std::string &, const std::vector< std::string > &group_spec, const SideSet *)

## Private Member Functions
void | compute_node_status () const
void | release_memory__ () override
bool | ok__ (bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const override
void | get_step_times__ () override
bool | open_input_file (bool write_message, std::string *error_msg, int *bad_count, bool abort_if_error) const
bool | handle_output_file (bool write_message, std::string *error_msg, int *bad_count, bool overwrite, bool abort_if_error) const
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 *sb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::SideBlock *fb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::NodeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::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 *sb, const Ioss::Field &field, void *data, size_t data_size) 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
int | get_file_pointer () const override
int | free_file_pointer () const override
int64_t | read_nodal_coordinates ()
void | read_elements (const Ioss::ElementBlock &block)
void | create_implicit_global_map () const
void | output_node_map () const
void | read_meta_data__ () override
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 *nb, 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 | 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, int64_t file_offset, int64_t file_count, ex_entity_type entity_type, ex_inquiry inquiry_type) const
int64_t | handle_node_ids (void *ids, int64_t num_to_get, size_t offset, size_t count) const
int64_t | handle_element_ids (const Ioss::ElementBlock *eb, void *ids, size_t num_to_get, size_t offset, size_t count) 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 side_count, void *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
std::unique_ptr< DecompositionDataBase > | decomp
Ioss::IntVector | nodeOwningProcessor
Ioss::Int64Vector | nodeGlobalImplicitMap
Ioss::Int64Vector | elemGlobalImplicitMap
std::map< const Ioss::GroupingEntity *, Ioss::Int64Vector > | nodesetOwnedNodes
bool | metaDataWritten {false}

## Additional Inherited Members
Protected Member Functions inherited from Ioex::DatabaseIO
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
bool | begin_state__ (Ioss::Region *region, int state, double time) override
bool | end_state__ (Ioss::Region *region, 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, size_t count) 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 ()
void | openDatabase__ () const override
void | closeDatabase__ () const override
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 (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
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}
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 | DBFilename
std::string | decodedFilename
Ioss::State | dbState {STATE_INVALID}
bool | isParallel {false}
| true if running in parallel More...
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 | 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]

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

## ◆ DatabaseIO() [2/2]

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

## ◆ ~DatabaseIO()

Iopx::DatabaseIO::~DatabaseIO | ( |  | ) |
| virtual default

Reimplemented from Ioss::DatabaseIO.

## Member Function Documentation

## ◆ check_valid_file_ptr()

bool Iopx::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 Iopx::DatabaseIO::compute_node_status | ( |  | ) | const
| private

Todo:
  Get working for parallel...

## ◆ create_implicit_global_map()

void Iopx::DatabaseIO::create_implicit_global_map | ( |  | ) | const
| private

## ◆ free_file_pointer()

int Iopx::DatabaseIO::free_file_pointer | ( |  | ) | const
| override private virtual

Reimplemented from Ioex::DatabaseIO.

## ◆ get_blocks()

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

## ◆ get_commsets()

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

## ◆ get_edgeblocks()

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

## ◆ get_edgesets()

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

## ◆ get_elemblocks()

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

## ◆ get_elemsets()

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

## ◆ get_faceblocks()

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

## ◆ get_facesets()

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

## ◆ get_field_internal() [1/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [2/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [3/13]

int64_t Iopx::DatabaseIO::get_field_internal | ( | const Ioss::EdgeBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [4/13]

int64_t Iopx::DatabaseIO::get_field_internal | ( | const Ioss::FaceBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [5/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [6/13]

int64_t Iopx::DatabaseIO::get_field_internal | ( | const Ioss::StructuredBlock * | sb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| inline override private virtual

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [7/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [8/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [9/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [10/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [11/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [12/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_field_internal() [13/13]

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

Implements Ioex::DatabaseIO.

## ◆ get_file_pointer()

int Iopx::DatabaseIO::get_file_pointer | ( |  | ) | const
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ get_map() [1/2]

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

## ◆ get_map() [2/2]

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

## ◆ get_nodesets()

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

## ◆ get_sets()

template<typename T >

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

## ◆ get_side_connectivity()

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

## ◆ get_side_distributions()

int64_t Iopx::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 Iopx::DatabaseIO::get_side_field | ( | const Ioss::SideBlock * | ef_blk,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| private

## ◆ get_sidesets()

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

## ◆ get_step_times__()

void Iopx::DatabaseIO::get_step_times__ | ( |  | ) |
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ get_Xset_field_internal()

int64_t Iopx::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 Iopx::DatabaseIO::handle_edge_ids | ( | const Ioss::EdgeBlock * | eb,
|  | void * | ids,
|  | size_t | num_to_get
| ) |  | const
| private

## ◆ handle_element_ids()

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

## ◆ handle_face_ids()

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

## ◆ handle_node_ids()

int64_t Iopx::DatabaseIO::handle_node_ids | ( | void * | ids,
|  | int64_t | num_to_get,
|  | size_t | offset,
|  | size_t | count
| ) |  | 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 Iopx::DatabaseIO::handle_output_file | ( | bool | write_message,
|  | std::string * | error_msg,
|  | int * | bad_count,
|  | bool | overwrite,
|  | bool | abort_if_error
| ) |  | const
| private

## ◆ needs_shared_node_information()

bool Iopx::DatabaseIO::needs_shared_node_information | ( |  | ) | const
| inline override virtual

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

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

Reimplemented from Ioss::DatabaseIO.

## ◆ ok__()

bool Iopx::DatabaseIO::ok__ | ( | bool | write_message = `false`,
|  | std::string * | error_message = `nullptr`,
|  | int * | bad_count = `nullptr`
| ) |  | const
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ open_input_file()

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

## ◆ operator=()

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

## ◆ output_node_map()

void Iopx::DatabaseIO::output_node_map | ( |  | ) | const
| private

## ◆ put_field_internal() [1/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [2/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [3/13]

int64_t Iopx::DatabaseIO::put_field_internal | ( | const Ioss::EdgeBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [4/13]

int64_t Iopx::DatabaseIO::put_field_internal | ( | const Ioss::FaceBlock * | eb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [5/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [6/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [7/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [8/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [9/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [10/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [11/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [12/13]

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

Implements Ioex::DatabaseIO.

## ◆ put_field_internal() [13/13]

int64_t Iopx::DatabaseIO::put_field_internal | ( | const Ioss::StructuredBlock * | sb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| inline override private virtual

Implements Ioex::DatabaseIO.

## ◆ put_side_field()

int64_t Iopx::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 Iopx::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 Iopx::DatabaseIO::read_attribute_field | ( | ex_entity_type | type,
|  | const Ioss::Field & | field,
|  | const Ioss::GroupingEntity * | ge,
|  | void * | data
| ) |  | const
| private

## ◆ read_elements()

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

## ◆ read_meta_data__()

void Iopx::DatabaseIO::read_meta_data__ | ( |  | ) |
| override private virtual

Implements Ioss::DatabaseIO.

## ◆ read_nodal_coordinates()

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

## ◆ read_region()

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

## ◆ read_ss_transient_field()

int64_t Iopx::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 Iopx::DatabaseIO::read_transient_field | ( | ex_entity_type | type,
|  | const Ioex::VariableNameMap & | variables,
|  | const Ioss::Field & | field,
|  | const Ioss::GroupingEntity * | ge,
|  | void * | data
| ) |  | const
| private

## ◆ release_memory__()

void Iopx::DatabaseIO::release_memory__ | ( |  | ) |
| override private virtual

Reimplemented from Ioss::DatabaseIO.

## ◆ write_attribute_field()

int64_t Iopx::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 Iopx::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 Iopx::DatabaseIO::write_meta_data | ( |  | ) |
| override private virtual

Implements Ioex::DatabaseIO.

## ◆ write_nodal_transient_field()

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

## Member Data Documentation

## ◆ decomp

std::unique_ptr<DecompositionDataBase> Iopx::DatabaseIO::decomp
| mutable private

## ◆ elemGlobalImplicitMap

Ioss::Int64Vector Iopx::DatabaseIO::elemGlobalImplicitMap
| mutable private

## ◆ metaDataWritten

bool Iopx::DatabaseIO::metaDataWritten {false}
| mutable private

## ◆ nodeGlobalImplicitMap

Ioss::Int64Vector Iopx::DatabaseIO::nodeGlobalImplicitMap
| mutable private

## ◆ nodeOwningProcessor

Ioss::IntVector Iopx::DatabaseIO::nodeOwningProcessor
| mutable private

## ◆ nodesetOwnedNodes

std::map<const Ioss::GroupingEntity *, Ioss::Int64Vector> Iopx::DatabaseIO::nodesetOwnedNodes
| mutable private

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

- src/exo_par/Iopx_DatabaseIO.h
- src/exo_par/Iopx_DatabaseIO.C