IOSS 2.0

Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Iocgns::ParallelDatabaseIO Class Reference

`#include <Iocgns_ParallelDatabaseIO.h>`

Inheritance diagram for Iocgns::ParallelDatabaseIO:
[legend]
Collaboration diagram for Iocgns::ParallelDatabaseIO:
[legend]

## Public Types
enum | entity_type { entity_type::NODE, entity_type::ELEM }

## Public Member Functions
| ParallelDatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, MPI_Comm communicator, const Ioss::PropertyManager &props)
| ~ParallelDatabaseIO ()
const std::string | get_format () const override
unsigned | entity_field_support () const override
int64_t | node_global_to_local__ (int64_t global, bool must_exist) const override
int64_t | element_global_to_local__ (int64_t global) const override
void | release_memory__ () override
int | get_file_pointer () const override
bool | node_major () const override
bool | needs_shared_node_information () const override
| Determine whether the database needs information about process ownership of nodes. More...
int | int_byte_size_db () const override
void | read_meta_data__ () override
void | write_meta_data ()
void | write_results_meta_data ()
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 | ~DatabaseIO ()
void | release_memory ()
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...
Ioss::IfDatabaseExistsBehavior | open_create_behavior () const
void | create_path (const std::string &filename) const
| This function is used to create the path to an output directory (or history, restart, etc.) More...
void | set_region (Region *region)
void | openDW (const std::string &filename) const
| If we are planning to use BB(aka Burst Buffer) service, we will call simple C API provided by Cray DataWarp module. More...
void | closeDW () const
| Function which invokes stageout from BB to Disk, prior to completion of final close. More...
void | openDatabase () const
void | closeDatabase () const
void | flush_database () const
bool | open_group (const std::string &group_name)
| If a database type supports groups and if the database contains groups, open the specified group. More...
bool | create_subgroup (const std::string &group_name)
| If a database type supports groups, create the specified group as a child of the current group. More...
bool | begin (Ioss::State state)
| Set the database to the given State. More...
bool | end (Ioss::State state)
| Return the database to STATE_CLOSED. More...
bool | begin_state (int state, double time)
bool | end_state (int state, double time)
void | read_meta_data ()
void | get_step_times ()
virtual bool | internal_edges_available () const
virtual bool | internal_faces_available () const
const std::vector< std::string > & | get_information_records () const
| Get all information records (informative strings) for the database. More...
void | add_information_records (const std::vector< std::string > &info)
| Add multiple information records (informative strings) to the database. More...
void | add_information_record (const std::string &info)
| Add an information record (an informative string) to the database. More...
const std::vector< std::string > & | get_qa_records () const
| Get all QA records, each of which consists of 4 strings, from the database. More...
void | add_qa_record (const std::string &code, const std::string &code_qa, const std::string &date, const std::string &time)
| Add a QA record, which consists of 4 strings, to the database. More...
bool | get_logging () const
void | set_logging (bool on_off)
template<typename T >
int64_t | get_field (const T *reg, const Field &field, void *data, size_t data_size) const
template<typename T >
int64_t | put_field (const T *reg, const Field &field, void *data, size_t data_size) const
bool | is_parallel_consistent () const
void | set_parallel_consistency (bool on_off)
bool | get_use_generic_canonical_name () const
void | set_use_generic_canonical_name (bool yes_no)
bool | ignore_database_names () const
void | ignore_database_names (bool yes_no)
virtual int | maximum_symbol_length () const
| Get the length of the longest name in the database file. More...
virtual void | set_maximum_symbol_length (int)
char | get_field_separator () const
bool | get_field_recognition () const
void | set_field_separator (char separator)
| Set the character used to separate a field suffix from the field basename when recognizing vector, tensor fields. More...
void | set_field_recognition (bool yes_no)
void | set_lower_case_variable_names (bool true_false) const
void | set_surface_split_type (Ioss::SurfaceSplitType split_type)
Ioss::SurfaceSplitType | get_surface_split_type () const
void | set_block_omissions (const std::vector< std::string > &omissions, const std::vector< std::string > &inclusions={})
void | get_block_adjacencies (const Ioss::ElementBlock *eb, std::vector< std::string > &block_adjacency) const
void | compute_block_membership (Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const
AxisAlignedBoundingBox | get_bounding_box (const Ioss::ElementBlock *eb) const
AxisAlignedBoundingBox | get_bounding_box (const Ioss::StructuredBlock *sb) const
int | int_byte_size_api () const
| Returns 4 or 8. More...
virtual void | set_int_byte_size_api (Ioss::DataSize size) const
| Returns 4 or 8. More...
Region * | get_region () const
void | set_cycle_count (int count) const
int | get_cycle_count () const
void | set_overlay_count (int count) const
int | get_overlay_count () const
void | set_file_per_state (bool yes_no) const
bool | get_file_per_state () const
void | set_time_scale_factor (double factor)
const Ioss::ParallelUtils & | util () const
const Ioss::PropertyManager & | get_property_manager () const
int | parallel_rank () const
| Get the processor that this mesh database is on. More...
int | parallel_size () const
bool | is_parallel () const
void | progress (const std::string &output) const

## Private Member Functions
void | openDatabase__ () const override
void | closeDatabase__ () const override
bool | begin__ (Ioss::State state) override
bool | end__ (Ioss::State state) override
bool | begin_state__ (int state, double time) override
bool | end_state__ (int state, double time) override
void | flush_database__ () const override
void | handle_structured_blocks ()
void | handle_unstructured_blocks ()
size_t | finalize_structured_blocks ()
int64_t | handle_node_ids (void *ids, int64_t num_to_get) const
void | finalize_database () override
void | get_step_times__ () override
void | write_adjacency_data ()
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 *nb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::FaceBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::ElementBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | get_field_internal (const Ioss::SideBlock *sb, 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 | get_field_internal_sub_nb (const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const
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 *nb, const Ioss::Field &field, void *data, size_t data_size) const override
int64_t | put_field_internal (const Ioss::FaceBlock *nb, 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::StructuredBlock *sb, 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_sub_nb (const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const
const Ioss::Map & | get_map (entity_type type) const
const Ioss::Map & | get_map (Ioss::Map &entity_map, int64_t entityCount, int64_t file_offset, int64_t file_count, entity_type type) const
int64_t | handle_element_ids (const Ioss::ElementBlock *eb, void *ids, size_t num_to_get, size_t offset, size_t count) const
void | resolve_zone_shared_nodes (const CGNSIntVector &nodes, CGNSIntVector &connectivity_map, size_t &owned_node_count, size_t &owned_node_offset) const
std::vector< int64_t > | get_processor_zone_node_offset () const

## Private Attributes
int | m_cgnsFilePtr {-1}
Ioss::MeshType | m_meshType {Ioss::MeshType::UNKNOWN}
std::unique_ptr< DecompositionDataBase > | decomp
int | m_flushInterval {0}
int | m_currentVertexSolutionIndex = 0
int | m_currentCellCenterSolutionIndex = 0
std::vector< size_t > | m_zoneOffset
std::vector< size_t > | m_bcOffset
std::vector< double > | m_timesteps
std::map< std::string, int > | m_zoneNameMap
std::map< int, Ioss::Map * > | m_globalToBlockLocalNodeMap
CGNSIntVector | m_elemGlobalImplicitMap

## Additional Inherited Members
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 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

## Member Enumeration Documentation

## ◆ entity_type

enum Iocgns::ParallelDatabaseIO::entity_type
| strong

Enumerator
NODE |
ELEM |

## Constructor & Destructor Documentation

## ◆ ParallelDatabaseIO()

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

## ◆ ~ParallelDatabaseIO()

Iocgns::ParallelDatabaseIO::~ParallelDatabaseIO | ( |  | ) |

## Member Function Documentation

## ◆ begin__()

bool Iocgns::ParallelDatabaseIO::begin__ | ( | Ioss::State | state | ) |
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ begin_state__()

bool Iocgns::ParallelDatabaseIO::begin_state__ | ( | int | state,
|  | double | time
| ) |  |
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ closeDatabase__()

void Iocgns::ParallelDatabaseIO::closeDatabase__ | ( |  | ) | const
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ element_global_to_local__()

int64_t Iocgns::ParallelDatabaseIO::element_global_to_local__ | ( | int64_t | global | ) | const
| overridevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ end__()

bool Iocgns::ParallelDatabaseIO::end__ | ( | Ioss::State | state | ) |
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ end_state__()

bool Iocgns::ParallelDatabaseIO::end_state__ | ( | int | state,
|  | double | time
| ) |  |
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ entity_field_support()

unsigned Iocgns::ParallelDatabaseIO::entity_field_support | ( |  | ) | const
| overridevirtual

Implements Ioss::DatabaseIO.

## ◆ finalize_database()

void Iocgns::ParallelDatabaseIO::finalize_database | ( |  | ) |
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ finalize_structured_blocks()

size_t Iocgns::ParallelDatabaseIO::finalize_structured_blocks | ( |  | ) |
| private

## ◆ flush_database__()

void Iocgns::ParallelDatabaseIO::flush_database__ | ( |  | ) | const
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ get_field_internal() [1/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [2/13]

int64_t Iocgns::ParallelDatabaseIO::get_field_internal | ( | const Ioss::EdgeBlock * | nb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [3/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [4/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [5/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [6/13]

int64_t Iocgns::ParallelDatabaseIO::get_field_internal | ( | const Ioss::FaceBlock * | nb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [7/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [8/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [9/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [10/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [11/13]

int64_t Iocgns::ParallelDatabaseIO::get_field_internal | ( | const Ioss::SideBlock * | sb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [12/13]

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

Implements Ioss::DatabaseIO.

## ◆ get_field_internal() [13/13]

int64_t Iocgns::ParallelDatabaseIO::get_field_internal | ( | const Ioss::StructuredBlock * | sb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ get_field_internal_sub_nb()

int64_t Iocgns::ParallelDatabaseIO::get_field_internal_sub_nb | ( | const Ioss::NodeBlock * | nb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| private

## ◆ get_file_pointer()

int Iocgns::ParallelDatabaseIO::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

Reimplemented from Ioss::DatabaseIO.

## ◆ get_format()

const std::string Iocgns::ParallelDatabaseIO::get_format | ( |  | ) | const
| inlineoverridevirtual

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

Implements Ioss::DatabaseIO.

## ◆ get_map() [1/2]

const Ioss::Map & Iocgns::ParallelDatabaseIO::get_map | ( | entity_type | type | ) | const
| private

## ◆ get_map() [2/2]

const Ioss::Map & Iocgns::ParallelDatabaseIO::get_map | ( | Ioss::Map & | entity_map,
|  | int64_t | entityCount,
|  | int64_t | file_offset,
|  | int64_t | file_count,
|  | entity_type | type
| ) |  | const
| private

## ◆ get_processor_zone_node_offset()

std::vector< int64_t > Iocgns::ParallelDatabaseIO::get_processor_zone_node_offset | ( |  | ) | const
| private

## ◆ get_step_times__()

void Iocgns::ParallelDatabaseIO::get_step_times__ | ( |  | ) |
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ handle_element_ids()

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

## ◆ handle_node_ids()

int64_t Iocgns::ParallelDatabaseIO::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_structured_blocks()

void Iocgns::ParallelDatabaseIO::handle_structured_blocks | ( |  | ) |
| private

## ◆ handle_unstructured_blocks()

void Iocgns::ParallelDatabaseIO::handle_unstructured_blocks | ( |  | ) |
| private

## ◆ int_byte_size_db()

int Iocgns::ParallelDatabaseIO::int_byte_size_db | ( |  | ) | const
| inlineoverridevirtual

Implements Ioss::DatabaseIO.

## ◆ needs_shared_node_information()

bool Iocgns::ParallelDatabaseIO::needs_shared_node_information | ( |  | ) | const
| inlineoverridevirtual

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.

## ◆ node_global_to_local__()

int64_t Iocgns::ParallelDatabaseIO::node_global_to_local__ | ( | int64_t | global,
|  | bool | must_exist
| ) |  | const
| overridevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ node_major()

bool Iocgns::ParallelDatabaseIO::node_major | ( |  | ) | const
| inlineoverridevirtual

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

## ◆ openDatabase__()

void Iocgns::ParallelDatabaseIO::openDatabase__ | ( |  | ) | const
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ put_field_internal() [1/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [2/13]

int64_t Iocgns::ParallelDatabaseIO::put_field_internal | ( | const Ioss::EdgeBlock * | nb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [3/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [4/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [5/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [6/13]

int64_t Iocgns::ParallelDatabaseIO::put_field_internal | ( | const Ioss::FaceBlock * | nb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [7/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [8/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [9/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [10/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [11/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [12/13]

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

Implements Ioss::DatabaseIO.

## ◆ put_field_internal() [13/13]

int64_t Iocgns::ParallelDatabaseIO::put_field_internal | ( | const Ioss::StructuredBlock * | sb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ put_field_internal_sub_nb()

int64_t Iocgns::ParallelDatabaseIO::put_field_internal_sub_nb | ( | const Ioss::NodeBlock * | nb,
|  | const Ioss::Field & | field,
|  | void * | data,
|  | size_t | data_size
| ) |  | const
| private

## ◆ read_meta_data__()

void Iocgns::ParallelDatabaseIO::read_meta_data__ | ( |  | ) |
| overridevirtual

Implements Ioss::DatabaseIO.

## ◆ release_memory__()

void Iocgns::ParallelDatabaseIO::release_memory__ | ( |  | ) |
| overridevirtual

Reimplemented from Ioss::DatabaseIO.

## ◆ resolve_zone_shared_nodes()

void Iocgns::ParallelDatabaseIO::resolve_zone_shared_nodes | ( | const CGNSIntVector & | nodes,
|  | CGNSIntVector & | connectivity_map,
|  | size_t & | owned_node_count,
|  | size_t & | owned_node_offset
| ) |  | const
| private

## ◆ write_adjacency_data()

void Iocgns::ParallelDatabaseIO::write_adjacency_data | ( |  | ) |
| private

## ◆ write_meta_data()

void Iocgns::ParallelDatabaseIO::write_meta_data | ( |  | ) |

## ◆ write_results_meta_data()

void Iocgns::ParallelDatabaseIO::write_results_meta_data | ( |  | ) |

## Member Data Documentation

## ◆ decomp

std::unique_ptr<DecompositionDataBase> Iocgns::ParallelDatabaseIO::decomp
| mutableprivate

## ◆ m_bcOffset

std::vector<size_t> Iocgns::ParallelDatabaseIO::m_bcOffset
| mutableprivate

## ◆ m_cgnsFilePtr

int Iocgns::ParallelDatabaseIO::m_cgnsFilePtr {-1}
| mutableprivate

## ◆ m_currentCellCenterSolutionIndex

int Iocgns::ParallelDatabaseIO::m_currentCellCenterSolutionIndex = 0
| private

## ◆ m_currentVertexSolutionIndex

int Iocgns::ParallelDatabaseIO::m_currentVertexSolutionIndex = 0
| private

## ◆ m_elemGlobalImplicitMap

CGNSIntVector Iocgns::ParallelDatabaseIO::m_elemGlobalImplicitMap
| mutableprivate

## ◆ m_flushInterval

int Iocgns::ParallelDatabaseIO::m_flushInterval {0}
| private

## ◆ m_globalToBlockLocalNodeMap

std::map<int, Ioss::Map *> Iocgns::ParallelDatabaseIO::m_globalToBlockLocalNodeMap
| mutableprivate

## ◆ m_meshType

Ioss::MeshType Iocgns::ParallelDatabaseIO::m_meshType {Ioss::MeshType::UNKNOWN}
| private

## ◆ m_timesteps

std::vector<double> Iocgns::ParallelDatabaseIO::m_timesteps
| mutableprivate

## ◆ m_zoneNameMap

std::map<std::string, int> Iocgns::ParallelDatabaseIO::m_zoneNameMap
| private

## ◆ m_zoneOffset

std::vector<size_t> Iocgns::ParallelDatabaseIO::m_zoneOffset
| mutableprivate

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

- src/cgns/Iocgns_ParallelDatabaseIO.h
- src/cgns/Iocgns_ParallelDatabaseIO.C