IOSS 2.0
Loading...
Searching...
No Matches
Ioex Namespace Reference

A namespace for the exodus database format. More...

Namespaces

namespace  anonymous_namespace{Ioex_BaseDatabaseIO.C}
 
namespace  anonymous_namespace{Ioex_DatabaseIO.C}
 

Classes

struct  Assembly
 
class  BaseDatabaseIO
 
struct  Blob
 
class  ChangeSet
 
class  ChangeSetFactory
 
struct  CommunicationMap
 
struct  CommunicationMetaData
 
class  DatabaseIO
 
struct  EdgeBlock
 
struct  EdgeSet
 
struct  ElemBlock
 
struct  ElemSet
 
struct  FaceBlock
 
struct  FaceSet
 
class  Internals
 
class  IOFactory
 
class  Mesh
 
struct  NameTopoKeyCompare
 
struct  NameTopoKeyHash
 
struct  NodeBlock
 
struct  NodeSet
 
class  Redefine
 
struct  SideSet
 
class  SuperElement
 

Typedefs

using VariableNameMap = std::map<std::string, int, std::less<>>
 
using VNMValuePair = VariableNameMap::value_type
 
using ValueContainer = std::vector<double>
 
using EntityIdSet = std::set<std::pair<int64_t, int64_t>>
 
using SideSetSet = std::set<std::string>
 
using SideSetMap = std::map<std::string, const std::string, std::less<>>
 
using NameTopoKey = std::pair<std::string, const Ioss::ElementTopology *>
 
using TopologyMap = tsl::hopscotch_map<NameTopoKey, int, NameTopoKeyHash>
 

Functions

void update_last_time_attribute (int exodusFilePtr, double value)
 
std::string map_ioss_field_type (ex_field_type type)
 
ex_field_type map_ioss_field_type (const Ioss::VariableType *type)
 
Ioss::EntityType map_exodus_type (ex_entity_type type)
 
int read_exodus_basis (int exoid)
 
int read_exodus_quadrature (int exoid)
 
ex_entity_type map_exodus_type (Ioss::EntityType type)
 
char ** get_name_array (size_t count, int size)
 
void delete_name_array (char **names, int count)
 
Ioss::NameList get_variable_names (int nvar, int maximumNameLength, int exoid, ex_entity_type type)
 
Ioss::NameList get_reduction_variable_names (int nvar, int maximumNameLength, int exoid, ex_entity_type type)
 
bool read_last_time_attribute (int exodusFilePtr, double *value)
 
bool check_processor_info (const std::string &filename, int exodusFilePtr, int processor_count, int processor_id)
 
bool type_match (const std::string &type, const char *substring)
 
void decode_surface_name (Ioex::SideSetMap &fs_map, Ioex::SideSetSet &fs_set, const std::string &name)
 
bool set_id (const Ioss::GroupingEntity *entity, Ioex::EntityIdSet *idset)
 
int64_t extract_id (const std::string &name_id)
 
int64_t get_id (const Ioss::GroupingEntity *entity, Ioex::EntityIdSet *idset)
 
bool find_displacement_field (Ioss::NameList &fields, const Ioss::GroupingEntity *block, int ndim, std::string *disp_name)
 
void fix_bad_name (char *name)
 
std::string get_entity_name (int exoid, ex_entity_type type, int64_t id, const std::string &basename, int length, bool &db_has_name)
 
void exodus_error (int exoid, int lineno, const char *function, const char *filename)
 
void exodus_error (int exoid, int lineno, const char *function, const char *filename, const std::string &extra)
 
int add_map_fields (int exoid, Ioss::ElementBlock *block, int64_t my_element_count, size_t name_length)
 
void write_coordinate_frames (int exoid, const Ioss::CoordinateFrameContainer &frames)
 
void add_coordinate_frames (int exoid, Ioss::Region *region)
 
bool filter_node_list (Ioss::Int64Vector &nodes, const std::vector< unsigned char > &node_connectivity_status)
 
void filter_element_list (Ioss::Region *region, Ioss::Int64Vector &elements, Ioss::Int64Vector &sides, bool remove_omitted_elements)
 
void separate_surface_element_sides (Ioss::Int64Vector &element, Ioss::Int64Vector &sides, Ioss::Region *region, Ioex::TopologyMap &topo_map, Ioex::TopologyMap &side_map, Ioss::SurfaceSplitType split_type, const std::string &surface_name)
 
void write_reduction_attributes (int exoid, const Ioss::GroupingEntity *ge)
 
IOSS_NODISCARD IOEX_EXPORT const char * Version ()
 
template<typename T >
void filter_node_list (T *data, std::vector< T > &dbvals, const std::vector< int64_t > &active_node_index)
 
template<typename T >
void write_reduction_attributes (int exoid, const std::vector< T * > &entities)
 

Detailed Description

A namespace for the exodus database format.

A namespace for the file-per-process version of the parallel exodus database format.

A namespace for the exodus change set type.

This set of classes provides a thin wrapper around the exodusII internals. It supplants several of the exodusII API calls in order to avoid ncredef calls which totally rewrite the existing database and can be very expensive. These routines provide all required variable, dimension, and attribute definitions to the underlying netcdf file with only a single ncredef call.

To use the application must create an Internals instance and call the Internals::write_meta_data() function. This function requires several classes as arguments including:

  • Mesh – defines mesh global metadata
  • Block – defines metadata for each block
  • NodeSet – defines metadata for each nodeset
  • SideSet – defines metadata for each sideset
  • CommunicationMetaData – global metadata relating to parallel info.

Calling Internals::write_meta_data(), replaces the following exodusII and nemesis API calls:

  • ex_put_init(),
  • ex_put_elem_block(),
  • ex_put_node_set_param(),
  • ex_put_side_set_param(),
  • ne_put_init_info(),
  • ne_put_loadbal_param(),
  • ne_put_cmap_params(),

Typedef Documentation

◆ EntityIdSet

using Ioex::EntityIdSet = std::set<std::pair<int64_t, int64_t>>

◆ NameTopoKey

using Ioex::NameTopoKey = std::pair<std::string, const Ioss::ElementTopology *>

◆ SideSetMap

using Ioex::SideSetMap = std::map<std::string, const std::string, std::less<>>

◆ SideSetSet

using Ioex::SideSetSet = std::set<std::string>

◆ TopologyMap

◆ ValueContainer

using Ioex::ValueContainer = std::vector<double>

◆ VariableNameMap

using Ioex::VariableNameMap = std::map<std::string, int, std::less<>>

◆ VNMValuePair

using Ioex::VNMValuePair = VariableNameMap::value_type

Function Documentation

◆ add_coordinate_frames()

IOEX_EXPORT void Ioex::add_coordinate_frames ( int exoid,
Ioss::Region * region )

◆ add_map_fields()

IOEX_EXPORT int Ioex::add_map_fields ( int exoid,
Ioss::ElementBlock * block,
int64_t my_element_count,
size_t name_length )

◆ check_processor_info()

IOEX_EXPORT bool Ioex::check_processor_info ( const std::string & filename,
int exodusFilePtr,
int processor_count,
int processor_id )

◆ decode_surface_name()

IOEX_EXPORT void Ioex::decode_surface_name ( Ioex::SideSetMap & fs_map,
Ioex::SideSetSet & fs_set,
const std::string & name )

◆ delete_name_array()

IOEX_EXPORT void Ioex::delete_name_array ( char ** names,
int count )

◆ exodus_error() [1/2]

IOEX_EXPORT void Ioex::exodus_error ( int exoid,
int lineno,
const char * function,
const char * filename )

◆ exodus_error() [2/2]

IOEX_EXPORT void Ioex::exodus_error ( int exoid,
int lineno,
const char * function,
const char * filename,
const std::string & extra )

◆ extract_id()

IOSS_NODISCARD IOEX_EXPORT int64_t Ioex::extract_id ( const std::string & name_id)

◆ filter_element_list()

IOEX_EXPORT void Ioex::filter_element_list ( Ioss::Region * region,
Ioss::Int64Vector & elements,
Ioss::Int64Vector & sides,
bool remove_omitted_elements )

◆ filter_node_list() [1/2]

IOEX_EXPORT bool Ioex::filter_node_list ( Ioss::Int64Vector & nodes,
const std::vector< unsigned char > & node_connectivity_status )

◆ filter_node_list() [2/2]

template<typename T >
void Ioex::filter_node_list ( T * data,
std::vector< T > & dbvals,
const std::vector< int64_t > & active_node_index )

◆ find_displacement_field()

IOEX_EXPORT bool Ioex::find_displacement_field ( Ioss::NameList & fields,
const Ioss::GroupingEntity * block,
int ndim,
std::string * disp_name )

◆ fix_bad_name()

IOEX_EXPORT void Ioex::fix_bad_name ( char * name)

◆ get_entity_name()

IOSS_NODISCARD IOEX_EXPORT std::string Ioex::get_entity_name ( int exoid,
ex_entity_type type,
int64_t id,
const std::string & basename,
int length,
bool & db_has_name )

◆ get_id()

IOEX_EXPORT int64_t Ioex::get_id ( const Ioss::GroupingEntity * entity,
Ioex::EntityIdSet * idset )

◆ get_name_array()

IOSS_NODISCARD IOEX_EXPORT char ** Ioex::get_name_array ( size_t count,
int size )

◆ get_reduction_variable_names()

IOSS_NODISCARD IOEX_EXPORT Ioss::NameList Ioex::get_reduction_variable_names ( int nvar,
int maximumNameLength,
int exoid,
ex_entity_type type )

◆ get_variable_names()

IOSS_NODISCARD IOEX_EXPORT Ioss::NameList Ioex::get_variable_names ( int nvar,
int maximumNameLength,
int exoid,
ex_entity_type type )

◆ map_exodus_type() [1/2]

IOSS_NODISCARD IOEX_EXPORT Ioss::EntityType Ioex::map_exodus_type ( ex_entity_type type)

◆ map_exodus_type() [2/2]

IOSS_NODISCARD IOEX_EXPORT ex_entity_type Ioex::map_exodus_type ( Ioss::EntityType type)

◆ map_ioss_field_type() [1/2]

IOSS_NODISCARD IOEX_EXPORT ex_field_type Ioex::map_ioss_field_type ( const Ioss::VariableType * type)

◆ map_ioss_field_type() [2/2]

IOSS_NODISCARD IOEX_EXPORT std::string Ioex::map_ioss_field_type ( ex_field_type type)

◆ read_exodus_basis()

IOEX_EXPORT int Ioex::read_exodus_basis ( int exoid)

◆ read_exodus_quadrature()

IOEX_EXPORT int Ioex::read_exodus_quadrature ( int exoid)

◆ read_last_time_attribute()

IOEX_EXPORT bool Ioex::read_last_time_attribute ( int exodusFilePtr,
double * value )

◆ separate_surface_element_sides()

IOEX_EXPORT void Ioex::separate_surface_element_sides ( Ioss::Int64Vector & element,
Ioss::Int64Vector & sides,
Ioss::Region * region,
Ioex::TopologyMap & topo_map,
Ioex::TopologyMap & side_map,
Ioss::SurfaceSplitType split_type,
const std::string & surface_name )

◆ set_id()

IOEX_EXPORT bool Ioex::set_id ( const Ioss::GroupingEntity * entity,
Ioex::EntityIdSet * idset )

◆ type_match()

IOSS_NODISCARD IOEX_EXPORT bool Ioex::type_match ( const std::string & type,
const char * substring )

◆ update_last_time_attribute()

IOEX_EXPORT void Ioex::update_last_time_attribute ( int exodusFilePtr,
double value )

◆ Version()

IOSS_NODISCARD IOEX_EXPORT const char * Ioex::Version ( )

◆ write_coordinate_frames()

IOEX_EXPORT void Ioex::write_coordinate_frames ( int exoid,
const Ioss::CoordinateFrameContainer & frames )

◆ write_reduction_attributes() [1/2]

IOEX_EXPORT void Ioex::write_reduction_attributes ( int exoid,
const Ioss::GroupingEntity * ge )

◆ write_reduction_attributes() [2/2]

template<typename T >
void Ioex::write_reduction_attributes ( int exoid,
const std::vector< T * > & entities )