#include <Ioexnl_BaseDatabaseIO.h>
Public Member Functions | |
BaseDatabaseIO (Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage, Ioss_MPI_Comm communicator, const Ioss::PropertyManager &props) | |
IOSS_NODISCARD std::string | get_format () const override |
IOSS_NODISCARD unsigned | entity_field_support () const override |
![]() | |
DatabaseIO ()=delete | |
DatabaseIO (const DatabaseIO &)=delete | |
DatabaseIO (DatabaseIO &&)=delete | |
DatabaseIO & | operator= (const DatabaseIO &)=delete |
DatabaseIO & | operator= (DatabaseIO &&)=delete |
virtual | ~DatabaseIO () |
IOSS_NODISCARD bool | ok (bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const |
Check to see if database state is OK. | |
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. | |
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 |
void | reset_database () |
bool | open_internal_change_set (const std::string &set_name) |
If a database type supports internal change sets and if the database contains internal change sets, open the specified set. | |
bool | create_internal_change_set (const std::string &set_name) |
If a database type supports internal change sets, create the specified set. | |
int | num_internal_change_set () |
If a database type supports internal change sets, and if the database contains internal change sets, return the number of change sets. | |
bool | open_internal_change_set (int set_index) |
If a database type supports internal change sets, open the change set specified [zero-based] index. | |
Ioss::NameList | internal_change_set_describe (bool return_full_names=false) |
If a database type supports internal change sets, return a list of set names. | |
bool | supports_internal_change_set () |
Checks if a database type supports internal change sets. | |
virtual IOSS_NODISCARD std::string | get_internal_change_set_name () const |
bool | begin (Ioss::State state) |
Set the database to the given State. | |
bool | end (Ioss::State state) |
Return the database to STATE_CLOSED. | |
bool | begin_state (int state, double time) |
bool | end_state (int state, double time) |
void | read_meta_data () |
void | get_step_times () |
std::vector< double > | get_db_step_times () |
Return the list of timesteps in the database contingent on certain controlling properties. | |
virtual IOSS_NODISCARD bool | internal_edges_available () const |
virtual IOSS_NODISCARD bool | internal_faces_available () const |
IOSS_NODISCARD const Ioss::NameList & | get_information_records () const |
Get all information records (informative strings) for the database. | |
void | add_information_records (const Ioss::NameList &info) |
Add multiple information records (informative strings) to the database. | |
void | add_information_record (const std::string &info) |
Add an information record (an informative string) to the database. | |
IOSS_NODISCARD const Ioss::NameList & | get_qa_records () const |
Get all QA records, each of which consists of 4 strings, from the database. | |
void | add_qa_record (const std::string &code, const std::string &code_qa, const std::string &date, const std::string &time) |
Add a QA record, which consists of 4 strings, to the database. | |
IOSS_NODISCARD bool | get_logging () const |
void | set_logging (bool on_off) |
IOSS_NODISCARD bool | get_nan_detection () const |
void | set_nan_detection (bool on_off) |
template<typename T> | |
int64_t | get_field (const T *reg, const Field &field, void *data, size_t data_size) const |
template<typename T> | |
int64_t | put_field (const T *reg, const Field &field, void *data, size_t data_size) const |
template<typename T> | |
int64_t | get_zc_field (const T *reg, const Field &field, void **data, size_t *data_size) const |
IOSS_NODISCARD bool | is_parallel_consistent () const |
void | set_parallel_consistency (bool on_off) |
IOSS_NODISCARD bool | get_use_generic_canonical_name () const |
void | set_use_generic_canonical_name (bool yes_no) |
IOSS_NODISCARD bool | ignore_database_names () const |
void | ignore_database_names (bool yes_no) |
IOSS_NODISCARD bool | get_ignore_realn_fields () const |
void | set_ignore_realn_fields (bool yes_no) |
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_lowercase_variable_names (bool true_false) const |
void | set_lowercase_database_names (bool true_false) const |
void | set_lower_case_variable_names (bool true_false) const |
void | set_lower_case_database_names (bool true_false) const |
void | set_surface_split_type (Ioss::SurfaceSplitType split_type) |
IOSS_NODISCARD Ioss::SurfaceSplitType | get_surface_split_type () const |
void | set_block_omissions (const Ioss::NameList &omissions, const Ioss::NameList &inclusions={}) |
void | set_assembly_omissions (const Ioss::NameList &omissions, const Ioss::NameList &inclusions={}) |
void | get_block_adjacencies (const Ioss::ElementBlock *eb, Ioss::NameList &block_adjacency) const |
void | compute_block_membership (Ioss::SideBlock *efblock, Ioss::NameList &block_membership) const |
IOSS_NODISCARD AxisAlignedBoundingBox | get_bounding_box (const Ioss::NodeBlock *nb) const |
IOSS_NODISCARD AxisAlignedBoundingBox | get_bounding_box (const Ioss::ElementBlock *eb) const |
IOSS_NODISCARD AxisAlignedBoundingBox | get_bounding_box (const Ioss::StructuredBlock *sb) const |
IOSS_NODISCARD int | int_byte_size_api () const |
Returns 4 or 8. | |
IOSS_NODISCARD Ioss::DataSize | int_byte_size_data_size () const |
IOSS_NODISCARD Region * | get_region () const |
void | set_cycle_count (int count) const |
IOSS_NODISCARD int | get_cycle_count () const |
void | set_overlay_count (int count) const |
IOSS_NODISCARD int | get_overlay_count () const |
void | set_file_per_state (bool yes_no) const |
IOSS_NODISCARD bool | get_file_per_state () const |
void | set_time_scale_factor (double factor) |
IOSS_NODISCARD const Ioss::ParallelUtils & | util () const |
IOSS_NODISCARD const Ioss::PropertyManager & | get_property_manager () const |
IOSS_NODISCARD int | parallel_rank () const |
Get the processor that this mesh database is on. | |
IOSS_NODISCARD int | parallel_size () const |
IOSS_NODISCARD bool | is_parallel () const |
void | progress (const std::string &output) const |
virtual std::vector< size_t > | get_entity_field_data (const std::string &field_name, const std::vector< Ioss::ElementBlock * > &elem_blocks, void *data, size_t data_size) const |
template<> | |
void | create_group (EntityType type, const std::string &, const Ioss::NameList &group_spec, const SideSet *) |
Protected Member Functions | |
IOSS_NODISCARD bool | ok_nl (bool write_message=false, std::string *error_message=nullptr, int *bad_count=nullptr) const override |
IOSS_NODISCARD bool | begin_nl (Ioss::State state) override |
IOSS_NODISCARD bool | end_nl (Ioss::State state) override |
void | open_state_file (int state) |
bool | begin_state_nl (int state, double time) override |
bool | end_state_nl (int state, double time) override |
void | get_step_times_nl () override=0 |
IOSS_NODISCARD int | maximum_symbol_length () const override |
Get the length of the longest name in the database file. | |
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_nl (Ioss::SideBlock *efblock, Ioss::NameList &block_membership) const override |
IOSS_NODISCARD int | int_byte_size_db () const override |
void | set_int_byte_size_api (Ioss::DataSize size) const override |
Returns 4 or 8. | |
int64_t | put_field_internal (const Ioss::Region *reg, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::EdgeBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::FaceBlock *nb, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::ElementBlock *eb, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::SideBlock *fb, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::NodeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::EdgeSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::FaceSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::ElementSet *ns, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::SideSet *fs, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::CommSet *cs, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::Assembly *as, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
int64_t | put_field_internal (const Ioss::Blob *blob, const Ioss::Field &field, void *data, size_t data_size) const override=0 |
virtual void | write_meta_data (Ioss::IfDatabaseExistsBehavior behavior)=0 |
void | write_results_metadata (bool gather_data, Ioss::IfDatabaseExistsBehavior behavior) |
void | openDatabase_nl () const override |
void | closeDatabase_nl () const override |
IOSS_NODISCARD int | get_file_pointer () const override=0 |
virtual int | free_file_pointer () const |
virtual bool | handle_output_file (bool write_message, std::string *error_msg, int *bad_count, bool overwrite, bool abort_if_error) const =0 |
IOSS_NODISCARD int | get_current_state () const |
void | put_qa () |
void | put_info () |
template<typename T> | |
void | internal_gather_results_metadata (ex_entity_type type, std::vector< T * > entities) |
void | generate_sideset_truth_table () |
void | output_results_names (ex_entity_type type, VariableNameMap &variables, bool reduction) const |
int | gather_names (VariableNameMap &variables, const Ioss::GroupingEntity *ge, int index, bool reduction) |
void | get_nodeblocks () |
void | get_assemblies () |
void | get_blobs () |
void | update_block_omissions_from_assemblies () |
void | add_attribute_fields (Ioss::GroupingEntity *block, int attribute_count, const std::string &type) |
void | common_write_metadata (Ioss::IfDatabaseExistsBehavior behavior) |
void | output_other_metadata () |
int64_t | internal_add_results_fields (ex_entity_type type, Ioss::GroupingEntity *entity, int64_t position, int64_t block_count, Ioss::IntVector &truth_table, Ioexnl::VariableNameMap &variables) |
int64_t | add_results_fields (Ioss::GroupingEntity *entity, int64_t position=0) |
int64_t | add_reduction_results_fields (Ioss::GroupingEntity *entity) |
void | add_mesh_reduction_fields (int64_t id, Ioss::GroupingEntity *entity) |
void | add_region_fields () |
void | store_reduction_field (const Ioss::Field &field, const Ioss::GroupingEntity *ge, void *variables) const |
void | get_reduction_field (const Ioss::Field &field, const Ioss::GroupingEntity *ge, void *variables) const |
void | write_reduction_fields () const |
void | read_reduction_fields () const |
IOSS_NODISCARD int | get_database_step (int global_step) const |
void | flush_database_nl () const override |
void | finalize_write (int state, double sim_time) |
![]() | |
DatabaseIO (Region *region, std::string filename, Ioss::DatabaseUsage db_usage, Ioss_MPI_Comm communicator, const Ioss::PropertyManager &props) | |
void | set_common_side_topology () const |
template<typename T> | |
void | create_groups (const std::string &property_name, EntityType type, const std::string &type_name, const T *set_type) |
template<typename T> | |
void | create_group (EntityType type, const std::string &type_name, const Ioss::NameList &group_spec, const T *set_type) |
void | handle_groups () |
void | check_side_topology () const |
virtual void | release_memory_nl () |
virtual void | reset_database_nl () |
Ioexnl::BaseDatabaseIO::BaseDatabaseIO | ( | Ioss::Region * | region, |
const std::string & | filename, | ||
Ioss::DatabaseUsage | db_usage, | ||
Ioss_MPI_Comm | communicator, | ||
const Ioss::PropertyManager & | props ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
overrideprotectedvirtual |
Implements Ioss::DatabaseIO.
|
overrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
inlineoverrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
protected |
|
overrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
overrideprotectedvirtual |
Implements Ioss::DatabaseIO.
|
overrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
overridevirtual |
Implements Ioss::DatabaseIO.
|
protected |
|
overrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
overrideprotectedpure virtual |
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.
Implemented in Ioexnl::DatabaseIO.
|
inlineoverridevirtual |
Return a string specifying underlying format of database (exodus, cgns, ...)
Implements Ioss::DatabaseIO.
|
protected |
|
protected |
|
overrideprotectedpure virtual |
Reimplemented from Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
protected |
NOTE: "element" is generic for "element", "face", or "edge"
There are two modes we need to support in this routine:
So, there will be two maps the 'elemMap.map' map is a 'direct lookup' map which maps current local position to global id and the 'elemMap.reverse' is an associative lookup which maps the global id to 'original local'. There is also a 'elemMap.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 element 1 in this element block). The 'model-local' id is given by eb_offset + 1 + position:
int local_position = elemMap.reverse[ElementMap[i+1]] (the elemMap.map and elemMap.reverse are 1-based)
But, this assumes 1..numel elements are being output at the same time; we are actually outputting a blocks worth of elements at a time, so we need to consider the block offsets. So... local-in-block position 'i' is index 'eb_offset+i' in 'elemMap.map' and the 'local_position' within the element blocks data arrays is 'local_position-eb_offset'. With this, the position within the data array of this element block is:
int eb_position = elemMap.reverse[elemMap.map[eb_offset+i+1]]-eb_offset-1
To determine which map to update on a call to this function, we use the following heuristics: – If the database state is 'Ioss::STATE_MODEL:', then update the 'elemMap.reverse'. – If the database state is not Ioss::STATE_MODEL, then leave the 'elemMap.reverse' alone since it corresponds to the information already written to the database. [May want to add a Ioss::STATE_REDEFINE_MODEL] – Always update elemMap.map to match the passed in 'ids' array.
NOTE: the maps are built an element block at a time... NOTE: The mapping is done on TRANSIENT fields only; MODEL fields should be in the original order...
|
protectedpure virtual |
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedvirtual |
Implements Ioss::DatabaseIO.
|
protected |
|
protected |
|
inlineoverrideprotectedvirtual |
Get the length of the longest name in the database file.
Reimplemented from Ioss::DatabaseIO.
|
overrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
protected |
|
inlineoverrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
protected |
|
protected |
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
overrideprotectedpure virtual |
Implements Ioss::DatabaseIO.
Implemented in Ioexnl::DatabaseIO.
|
protected |
|
protected |
|
protected |
|
overrideprotectedvirtual |
Returns 4 or 8.
Set the number of bytes used to represent an integer.
[in] | size | The number of bytes. This is 4 for INT32 or 8 for INT64. |
Reimplemented from Ioss::DatabaseIO.
|
inlineoverrideprotectedvirtual |
Reimplemented from Ioss::DatabaseIO.
|
protected |
|
protected |
|
protectedpure virtual |
Implemented in Ioexnl::DatabaseIO.
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
mutableprotected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |