IOSS 2.0
Loading...
Searching...
No Matches
Iotm::DatabaseIO Class Reference

#include <Iotm_DatabaseIO.h>

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

Public Member Functions

 DatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, Ioss_MPI_Comm communicator, const Ioss::PropertyManager &props)
 
 ~DatabaseIO () override
 
std::string get_format () const override
 
unsigned entity_field_support () const override
 
int int_byte_size_db () const override
 
const TextMeshget_text_mesh () const
 
void set_text_mesh (Iotm::TextMesh *textMesh)
 
- Public Member Functions inherited from Ioss::DatabaseIO
 DatabaseIO ()=delete
 
 DatabaseIO (const DatabaseIO &)=delete
 
 DatabaseIO (DatabaseIO &&)=delete
 
DatabaseIOoperator= (const DatabaseIO &)=delete
 
DatabaseIOoperator= (DatabaseIO &&)=delete
 
IOSS_NODISCARD bool ok (bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const
 Check to see if database state is OK.
 
IOSS_NODISCARD bool using_parallel_io () const
 
IOSS_NODISCARD int64_t node_global_to_local (int64_t global, bool must_exist) const
 Get the local (process-specific) node number corresponding to a global node number.
 
IOSS_NODISCARD int64_t element_global_to_local (int64_t global) const
 
virtual IOSS_NODISCARD bool node_major () const
 
void release_memory ()
 
virtual void finalize_database () const
 
void set_pfs_name (const std::string &name) const
 
IOSS_NODISCARD std::string get_pfs_name () const
 
void set_dw_name (const std::string &name) const
 this will be the name in BB namespace
 
IOSS_NODISCARD std::string get_dw_name () const
 
IOSS_NODISCARD std::string get_dw_path () const
 We call this ONLY after we assure that using_dw() is TRUE.
 
void check_set_dw () const
 
IOSS_NODISCARD bool using_dw () const
 
IOSS_NODISCARD std::string get_filename () const
 Get the file name associated with the database.
 
virtual IOSS_NODISCARD int get_file_pointer () const
 
IOSS_NODISCARD const std::string & decoded_filename () const
 Get a file-per-processor filename associated with the database.
 
IOSS_NODISCARD bool is_input () const
 Determine whether the database is an input database.
 
IOSS_NODISCARD Ioss::DatabaseUsage usage () const
 Get the Ioss::DatabaseUsage type of the database.
 
virtual IOSS_NODISCARD bool needs_shared_node_information () const
 Determine whether the database needs information about process ownership of nodes.
 
IOSS_NODISCARD Ioss::IfDatabaseExistsBehavior open_create_behavior () const
 
void set_region (Region *region)
 
void open_dw (const std::string &filename) const
 If we are planning to use BB(aka Burst Buffer) service, we will call simple C API provided by Cray DataWarp module.
 
void close_dw () const
 Function which invokes stageout from BB to Disk, prior to completion of final close.
 
void openDatabase () const
 
void closeDatabase () const
 
void flush_database () const
 
bool open_group (const std::string &group_name)
 If a database type supports groups and if the database contains groups, open the specified group.
 
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.
 
bool begin (Ioss::State state)
 Set the database to the given State.
 
bool end (Ioss::State state)
 Return the database to STATE_CLOSED.
 
bool begin_state (int state, double time)
 
bool end_state (int state, double time)
 
void read_meta_data ()
 
void get_step_times ()
 
virtual IOSS_NODISCARD bool internal_edges_available () const
 
virtual IOSS_NODISCARD bool internal_faces_available () const
 
IOSS_NODISCARD const std::vector< std::string > & get_information_records () const
 Get all information records (informative strings) for the database.
 
void add_information_records (const std::vector< std::string > &info)
 Add multiple information records (informative strings) to the database.
 
void add_information_record (const std::string &info)
 Add an information record (an informative string) to the database.
 
IOSS_NODISCARD const std::vector< std::string > & get_qa_records () const
 Get all QA records, each of which consists of 4 strings, from the database.
 
void add_qa_record (const std::string &code, const std::string &code_qa, const std::string &date, const std::string &time)
 Add a QA record, which consists of 4 strings, to the database.
 
IOSS_NODISCARD bool get_logging () const
 
void set_logging (bool on_off)
 
IOSS_NODISCARD bool get_nan_detection () const
 
void set_nan_detection (bool on_off)
 
template<typename T >
int64_t get_field (const T *reg, const Field &field, void *data, size_t data_size) const
 
template<typename T >
int64_t put_field (const T *reg, const Field &field, void *data, size_t data_size) const
 
template<typename T >
int64_t get_zc_field (const T *reg, const Field &field, void **data, size_t *data_size) const
 
IOSS_NODISCARD bool is_parallel_consistent () const
 
void set_parallel_consistency (bool on_off)
 
IOSS_NODISCARD bool get_use_generic_canonical_name () const
 
void set_use_generic_canonical_name (bool yes_no)
 
IOSS_NODISCARD bool ignore_database_names () const
 
void ignore_database_names (bool yes_no)
 
IOSS_NODISCARD bool get_ignore_realn_fields () const
 
void set_ignore_realn_fields (bool yes_no)
 
virtual IOSS_NODISCARD int maximum_symbol_length () const
 Get the length of the longest name in the database file.
 
virtual void set_maximum_symbol_length (int)
 
IOSS_NODISCARD std::string get_component_name (const Ioss::Field &field, Ioss::Field::InOut in_out, int component) const
 
IOSS_NODISCARD char get_field_separator () const
 
IOSS_NODISCARD bool get_field_recognition () const
 
IOSS_NODISCARD bool get_field_strip_trailing_ () const
 
void set_field_separator (char separator)
 Set the character used to separate a field suffix from the field basename when recognizing vector, tensor fields.
 
void set_field_recognition (bool yes_no)
 
void set_field_strip_trailing_ (bool yes_no)
 
IOSS_NODISCARD DuplicateFieldBehavior get_duplicate_field_behavior () const
 
void set_lower_case_variable_names (bool true_false) const
 
void set_surface_split_type (Ioss::SurfaceSplitType split_type)
 
IOSS_NODISCARD Ioss::SurfaceSplitType get_surface_split_type () const
 
void set_block_omissions (const std::vector< std::string > &omissions, const std::vector< std::string > &inclusions={})
 
void set_assembly_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
 
IOSS_NODISCARD AxisAlignedBoundingBox get_bounding_box (const Ioss::NodeBlock *nb) const
 
IOSS_NODISCARD AxisAlignedBoundingBox get_bounding_box (const Ioss::ElementBlock *eb) const
 
IOSS_NODISCARD AxisAlignedBoundingBox get_bounding_box (const Ioss::StructuredBlock *sb) const
 
IOSS_NODISCARD int int_byte_size_api () const
 Returns 4 or 8.
 
virtual void set_int_byte_size_api (Ioss::DataSize size) const
 Returns 4 or 8.
 
IOSS_NODISCARD Regionget_region () const
 
void set_cycle_count (int count) const
 
IOSS_NODISCARD int get_cycle_count () const
 
void set_overlay_count (int count) const
 
IOSS_NODISCARD int get_overlay_count () const
 
void set_file_per_state (bool yes_no) const
 
IOSS_NODISCARD bool get_file_per_state () const
 
void set_time_scale_factor (double factor)
 
IOSS_NODISCARD const Ioss::ParallelUtilsutil () const
 
IOSS_NODISCARD const Ioss::PropertyManagerget_property_manager () const
 
IOSS_NODISCARD int parallel_rank () const
 Get the processor that this mesh database is on.
 
IOSS_NODISCARD int parallel_size () const
 
IOSS_NODISCARD bool is_parallel () const
 
void progress (const std::string &output) const
 
virtual std::vector< size_t > get_entity_field_data (const std::string &field_name, const std::vector< Ioss::ElementBlock * > &elem_blocks, void *data, size_t data_size) const
 
template<>
void create_group (EntityType type, const std::string &, const std::vector< std::string > &group_spec, const SideSet *)
 

Private Member Functions

void read_meta_data_nl () override
 
bool begin_nl (Ioss::State state) override
 
bool end_nl (Ioss::State state) override
 
bool begin_state_nl (int state, double time) override
 
void get_step_times_nl () override
 
void get_nodeblocks ()
 
void get_elemblocks ()
 
void get_nodesets ()
 
void get_sidesets ()
 
void get_commsets ()
 
void get_assemblies ()
 
void compute_block_membership_nl (Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const override
 
void update_block_omissions_from_assemblies ()
 
const Ioss::Mapget_node_map () const
 
const Ioss::Mapget_element_map () 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::ElementBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override
 
int64_t get_field_internal (const Ioss::SideBlock *ef_blk, 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::CommSet *cs, const Ioss::Field &field, void *data, size_t data_size) const override
 
int64_t get_field_internal (const Ioss::Assembly *assem, const Ioss::Field &field, void *data, size_t data_size) const override
 
void add_transient_fields (Ioss::GroupingEntity *entity)
 

Private Attributes

TextMeshm_textMesh {nullptr}
 
double currentTime {0.0}
 
int spatialDimension {3}
 
int elementBlockCount {0}
 
int nodesetCount {0}
 
int sidesetCount {0}
 
int assemblyCount {0}
 
bool m_useVariableDf {true}
 

Additional Inherited Members

- Protected Member Functions inherited from Ioss::DatabaseIO
 DatabaseIO (Region *region, std::string filename, Ioss::DatabaseUsage db_usage, Ioss_MPI_Comm communicator, const Ioss::PropertyManager &props)
 
void set_common_side_topology () const
 
template<typename T >
void create_groups (const std::string &property_name, EntityType type, const std::string &type_name, const T *set_type)
 
template<typename T >
void create_group (EntityType type, const std::string &type_name, const std::vector< std::string > &group_spec, const T *set_type)
 
void handle_groups ()
 
void check_side_topology () const
 
virtual void openDatabase_nl () const
 
virtual void closeDatabase_nl () const
 
virtual void flush_database_nl () const
 
- Protected Attributes inherited from Ioss::DatabaseIO
Ioss::PropertyManager properties
 
ElementTopologycommonSideTopology {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
 
int64_t nodeCount {0}
 
int64_t elementCount {0}
 
TopoContainer sideTopology {}
 Used to speed up faceblock/edgeblock calculations.
 
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
 
bool lowerCaseVariableNames {true}
 
bool usingParallelIO {false}
 
std::vector< std::string > blockOmissions {}
 
std::vector< std::string > blockInclusions {}
 
std::vector< std::string > assemblyOmissions {}
 
std::vector< std::string > assemblyInclusions {}
 
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()

Iotm::DatabaseIO::DatabaseIO ( Ioss::Region * region,
const std::string & filename,
Ioss::DatabaseUsage db_usage,
Ioss_MPI_Comm communicator,
const Ioss::PropertyManager & props )

◆ ~DatabaseIO()

Iotm::DatabaseIO::~DatabaseIO ( )
overridevirtual

Reimplemented from Ioss::DatabaseIO.

Member Function Documentation

◆ add_transient_fields()

void Iotm::DatabaseIO::add_transient_fields ( Ioss::GroupingEntity * entity)
private

◆ begin_nl()

bool Iotm::DatabaseIO::begin_nl ( Ioss::State state)
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ begin_state_nl()

bool Iotm::DatabaseIO::begin_state_nl ( int state,
double time )
overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ compute_block_membership_nl()

void Iotm::DatabaseIO::compute_block_membership_nl ( Ioss::SideBlock * efblock,
std::vector< std::string > & block_membership ) const
overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ end_nl()

bool Iotm::DatabaseIO::end_nl ( Ioss::State state)
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ entity_field_support()

unsigned Iotm::DatabaseIO::entity_field_support ( ) const
overridevirtual

Implements Ioss::DatabaseIO.

◆ get_assemblies()

void Iotm::DatabaseIO::get_assemblies ( )
private

◆ get_commsets()

void Iotm::DatabaseIO::get_commsets ( )
private

◆ get_elemblocks()

void Iotm::DatabaseIO::get_elemblocks ( )
private

◆ get_element_map()

const Ioss::Map & Iotm::DatabaseIO::get_element_map ( ) const
private

◆ get_field_internal() [1/7]

int64_t Iotm::DatabaseIO::get_field_internal ( const Ioss::Assembly * assem,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ get_field_internal() [2/7]

int64_t Iotm::DatabaseIO::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() [3/7]

int64_t Iotm::DatabaseIO::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() [4/7]

int64_t Iotm::DatabaseIO::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() [5/7]

int64_t Iotm::DatabaseIO::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() [6/7]

int64_t Iotm::DatabaseIO::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() [7/7]

int64_t Iotm::DatabaseIO::get_field_internal ( const Ioss::SideBlock * ef_blk,
const Ioss::Field & field,
void * data,
size_t data_size ) const
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ get_format()

std::string Iotm::DatabaseIO::get_format ( ) const
inlineoverridevirtual

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

Implements Ioss::DatabaseIO.

◆ get_node_map()

const Ioss::Map & Iotm::DatabaseIO::get_node_map ( ) const
private

◆ get_nodeblocks()

void Iotm::DatabaseIO::get_nodeblocks ( )
private

◆ get_nodesets()

void Iotm::DatabaseIO::get_nodesets ( )
private

◆ get_sidesets()

void Iotm::DatabaseIO::get_sidesets ( )
private

◆ get_step_times_nl()

void Iotm::DatabaseIO::get_step_times_nl ( )
overrideprivatevirtual

Reimplemented from Ioss::DatabaseIO.

◆ get_text_mesh()

const TextMesh * Iotm::DatabaseIO::get_text_mesh ( ) const
inline

◆ int_byte_size_db()

int Iotm::DatabaseIO::int_byte_size_db ( ) const
inlineoverridevirtual

Implements Ioss::DatabaseIO.

◆ read_meta_data_nl()

void Iotm::DatabaseIO::read_meta_data_nl ( )
overrideprivatevirtual

Implements Ioss::DatabaseIO.

◆ set_text_mesh()

void Iotm::DatabaseIO::set_text_mesh ( Iotm::TextMesh * textMesh)
inline

◆ update_block_omissions_from_assemblies()

void Iotm::DatabaseIO::update_block_omissions_from_assemblies ( )
private

Member Data Documentation

◆ assemblyCount

int Iotm::DatabaseIO::assemblyCount {0}
private

◆ currentTime

double Iotm::DatabaseIO::currentTime {0.0}
private

◆ elementBlockCount

int Iotm::DatabaseIO::elementBlockCount {0}
private

◆ m_textMesh

TextMesh* Iotm::DatabaseIO::m_textMesh {nullptr}
private

◆ m_useVariableDf

bool Iotm::DatabaseIO::m_useVariableDf {true}
private

◆ nodesetCount

int Iotm::DatabaseIO::nodesetCount {0}
private

◆ sidesetCount

int Iotm::DatabaseIO::sidesetCount {0}
private

◆ spatialDimension

int Iotm::DatabaseIO::spatialDimension {3}
private

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