ExodusII
5.15
|
#include "netcdf.h"
#include <stddef.h>
#include <stdlib.h>
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | ex_init_params |
struct | ex_block |
struct | ex_set |
struct | ex_block_params |
struct | ex_set_specs |
struct | ex_var_params |
Defines | |
#define | EX_API_VERS 5.22f |
#define | EX_API_VERS_NODOT 522 |
#define | EX_VERS EX_API_VERS |
#define | NEMESIS_API_VERSION EX_API_VERS |
#define | NEMESIS_API_VERSION_NODOT EX_API_VERS_NODOT |
#define | NEMESIS_FILE_VERSION 2.6 |
#define | TRUE -1 |
#define | FALSE 0 |
#define | EX_READ 0x0000 |
#define | EX_WRITE 0x0001 |
#define | EX_NOCLOBBER 0x0004 |
#define | EX_CLOBBER 0x0008 |
#define | EX_NORMAL_MODEL 0x0010 |
#define | EX_LARGE_MODEL 0x0020 |
#define | EX_NETCDF4 0x0040 |
#define | EX_NOSHARE 0x0080 |
#define | EX_SHARE 0x0100 |
#define | EX_NOCLASSIC 0x0200 |
#define | EX_MAPS_INT64_DB 0x0400 |
#define | EX_IDS_INT64_DB 0x0800 |
#define | EX_BULK_INT64_DB 0x1000 |
#define | EX_ALL_INT64_DB (EX_MAPS_INT64_DB|EX_IDS_INT64_DB|EX_BULK_INT64_DB) |
#define | EX_MAPS_INT64_API 0x2000 |
#define | EX_IDS_INT64_API 0x4000 |
#define | EX_BULK_INT64_API 0x8000 |
#define | EX_INQ_INT64_API 0x10000 |
#define | EX_ALL_INT64_API (EX_MAPS_INT64_API|EX_IDS_INT64_API|EX_BULK_INT64_API|EX_INQ_INT64_API) |
#define | EX_INVALID_ID -1 |
#define | MAX_STR_LENGTH 32L |
#define | MAX_NAME_LENGTH MAX_STR_LENGTH |
#define | MAX_LINE_LENGTH 80L |
#define | MAX_ERR_LENGTH 256 |
#define | EXODUS_EXPORT extern |
#define | ex_create(path, mode, comp_ws, io_ws) ex_create_int(path, mode, comp_ws, io_ws, EX_API_VERS_NODOT) |
#define | ex_open(path, mode, comp_ws, io_ws, version) ex_open_int(path, mode, comp_ws, io_ws, version, EX_API_VERS_NODOT) |
#define | EX_MEMFAIL 1000 |
#define | EX_BADFILEMODE 1001 |
#define | EX_BADFILEID 1002 |
#define | EX_WRONGFILETYPE 1003 |
#define | EX_LOOKUPFAIL 1004 |
#define | EX_BADPARAM 1005 |
#define | EX_MSG -1000 |
#define | EX_PRTLASTMSG -1001 |
#define | EX_NULLENTITY -1006 |
Typedefs | |
typedef enum ex_inquiry | ex_inquiry |
typedef enum ex_option_type | ex_option_type |
typedef enum ex_entity_type | ex_entity_type |
typedef enum ex_options | ex_options |
typedef int64_t | ex_entity_id |
typedef void | void_int |
typedef struct ex_init_params | ex_init_params |
typedef struct ex_block | ex_block |
typedef struct ex_set | ex_set |
typedef struct ex_block_params | ex_block_params |
typedef struct ex_set_specs | ex_set_specs |
typedef struct ex_var_params | ex_var_params |
Enumerations | |
enum | ex_inquiry { EX_INQ_FILE_TYPE = 1, EX_INQ_API_VERS = 2, EX_INQ_DB_VERS = 3, EX_INQ_TITLE = 4, EX_INQ_DIM = 5, EX_INQ_NODES = 6, EX_INQ_ELEM = 7, EX_INQ_ELEM_BLK = 8, EX_INQ_NODE_SETS = 9, EX_INQ_NS_NODE_LEN = 10, EX_INQ_SIDE_SETS = 11, EX_INQ_SS_NODE_LEN = 12, EX_INQ_SS_ELEM_LEN = 13, EX_INQ_QA = 14, EX_INQ_INFO = 15, EX_INQ_TIME = 16, EX_INQ_EB_PROP = 17, EX_INQ_NS_PROP = 18, EX_INQ_SS_PROP = 19, EX_INQ_NS_DF_LEN = 20, EX_INQ_SS_DF_LEN = 21, EX_INQ_LIB_VERS = 22, EX_INQ_EM_PROP = 23, EX_INQ_NM_PROP = 24, EX_INQ_ELEM_MAP = 25, EX_INQ_NODE_MAP = 26, EX_INQ_EDGE = 27, EX_INQ_EDGE_BLK = 28, EX_INQ_EDGE_SETS = 29, EX_INQ_ES_LEN = 30, EX_INQ_ES_DF_LEN = 31, EX_INQ_EDGE_PROP = 32, EX_INQ_ES_PROP = 33, EX_INQ_FACE = 34, EX_INQ_FACE_BLK = 35, EX_INQ_FACE_SETS = 36, EX_INQ_FS_LEN = 37, EX_INQ_FS_DF_LEN = 38, EX_INQ_FACE_PROP = 39, EX_INQ_FS_PROP = 40, EX_INQ_ELEM_SETS = 41, EX_INQ_ELS_LEN = 42, EX_INQ_ELS_DF_LEN = 43, EX_INQ_ELS_PROP = 44, EX_INQ_EDGE_MAP = 45, EX_INQ_FACE_MAP = 46, EX_INQ_COORD_FRAMES = 47, EX_INQ_DB_MAX_ALLOWED_NAME_LENGTH = 48, EX_INQ_DB_MAX_USED_NAME_LENGTH = 49, EX_INQ_MAX_READ_NAME_LENGTH = 50, EX_INQ_INVALID = -1 } |
enum | ex_option_type { EX_OPT_MAX_NAME_LENGTH = 1, EX_OPT_COMPRESSION_TYPE, EX_OPT_COMPRESSION_LEVEL, EX_OPT_COMPRESSION_SHUFFLE, EX_OPT_INTEGER_SIZE_API, EX_OPT_INTEGER_SIZE_DB } |
enum | ex_entity_type { EX_NODAL = 14, EX_NODE_BLOCK = 14, EX_NODE_SET = 2, EX_EDGE_BLOCK = 6, EX_EDGE_SET = 7, EX_FACE_BLOCK = 8, EX_FACE_SET = 9, EX_ELEM_BLOCK = 1, EX_ELEM_SET = 10, EX_SIDE_SET = 3, EX_ELEM_MAP = 4, EX_NODE_MAP = 5, EX_EDGE_MAP = 11, EX_FACE_MAP = 12, EX_GLOBAL = 13, EX_COORDINATE = 15, EX_INVALID = -1 } |
enum | ex_options { EX_DEFAULT = 0, EX_VERBOSE = 1, EX_DEBUG = 2, EX_ABORT = 4 } |
Functions | |
int | ex_close (int exoid) |
int | ex_copy (int in_exoid, int out_exoid) |
int | ex_create_int (const char *path, int cmode, int *comp_ws, int *io_ws, int my_version) |
int | ex_get_all_times (int exoid, void *time_values) |
int | ex_get_coord_names (int exoid, char **coord_names) |
int | ex_get_coord (int exoid, void *x_coor, void *y_coor, void *z_coor) |
int | ex_get_n_coord (int exoid, int64_t start_node_num, int64_t num_nodes, void *x_coor, void *y_coor, void *z_coor) |
int | ex_get_ids (int exoid, ex_entity_type obj_type, void_int *ids) |
int | ex_get_coordinate_frames (int exoid, int *nframes, void_int *cf_ids, void *pt_coordinates, char *tags) |
int | ex_get_glob_vars (int exoid, int time_step, int num_glob_vars, void *glob_var_vals) |
int | ex_get_glob_var_time (int exoid, int glob_var_index, int beg_time_step, int end_time_step, void *glob_var_vals) |
int | ex_get_info (int exoid, char **info) |
int | ex_put_init_ext (int exoid, const ex_init_params *param) |
int | ex_get_init_ext (int exoid, ex_init_params *param) |
int | ex_get_init (int exoid, char *title, void_int *num_dim, void_int *num_nodes, void_int *num_elem, void_int *num_elem_blk, void_int *num_node_sets, void_int *num_side_sets) |
int | ex_put_init (int exoid, const char *title, int64_t num_dim, int64_t num_nodes, int64_t num_elem, int64_t num_elem_blk, int64_t num_node_sets, int64_t num_side_sets) |
int | ex_get_map_param (int exoid, int *num_node_maps, int *num_elem_maps) |
int | ex_get_name (int exoid, ex_entity_type obj_type, ex_entity_id entity_id, char *name) |
int | ex_get_names (int exoid, ex_entity_type obj_type, char **names) |
int | ex_get_nset_var_tab (int exoid, int num_nodesets, int num_nset_var, int *nset_var_tab) |
int | ex_get_n_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t start_node, int64_t num_nodes, void *nodal_var_vals) |
int | ex_get_prop_array (int exoid, ex_entity_type obj_type, const char *prop_name, void_int *values) |
int | ex_get_prop (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, const char *prop_name, void_int *value) |
int | ex_get_partial_num_map (int exoid, ex_entity_type map_type, ex_entity_id map_id, int64_t ent_start, int64_t ent_count, void_int *elem_map) |
int | ex_get_prop_names (int exoid, ex_entity_type obj_type, char **prop_names) |
int | ex_get_qa (int exoid, char *qa_record[][4]) |
int | ex_get_time (int exoid, int time_step, void *time_value) |
int | ex_get_variable_names (int exoid, ex_entity_type obj_type, int num_vars, char *var_names[]) |
int | ex_get_variable_name (int exoid, ex_entity_type obj_type, int var_num, char *var_name) |
int | ex_get_variable_param (int exoid, ex_entity_type obj_type, int *num_vars) |
int | ex_get_object_truth_vector (int exoid, ex_entity_type var_type, ex_entity_id object_id, int num_var, int *var_vector) |
int | ex_get_truth_table (int exoid, ex_entity_type obj_type, int num_blk, int num_var, int *var_tab) |
int | ex_open_int (const char *path, int mode, int *comp_ws, int *io_ws, float *version, int my_version) |
int | ex_put_attr_param (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int num_attrs) |
int | ex_get_attr_param (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int *num_attrs) |
int | ex_put_all_var_param (int exoid, int num_g, int num_n, int num_e, int *elem_var_tab, int num_m, int *nset_var_tab, int num_s, int *sset_var_tab) |
int | ex_put_concat_elem_block (int exoid, const void_int *elem_blk_id, char *elem_type[], const void_int *num_elem_this_blk, const void_int *num_nodes_per_elem, const void_int *num_attr, int define_maps) |
int | ex_put_coord_names (int exoid, char *coord_names[]) |
int | ex_put_coord (int exoid, const void *x_coor, const void *y_coor, const void *z_coor) |
int | ex_put_n_coord (int exoid, int64_t start_node_num, int64_t num_nodes, const void *x_coor, const void *y_coor, const void *z_coor) |
int | ex_put_id_map (int exoid, ex_entity_type obj_type, const void_int *map) |
int | ex_put_partial_id_map (int exoid, ex_entity_type obj_type, int64_t start_entity_num, int64_t num_entities, const void_int *map) |
int | ex_put_n_elem_num_map (int exoid, int64_t start_ent, int64_t num_ents, const void_int *map) |
int | ex_put_n_node_num_map (int exoid, int64_t start_ent, int64_t num_ents, const void_int *map) |
int | ex_get_id_map (int exoid, ex_entity_type obj_type, void_int *map) |
int | ex_put_coordinate_frames (int exoid, int nframes, const void_int *cf_ids, void *pt_coordinates, const char *tags) |
int | ex_put_info (int exoid, int num_info, char *info[]) |
int | ex_put_map_param (int exoid, int num_node_maps, int num_elem_maps) |
int | ex_put_name (int exoid, ex_entity_type obj_type, ex_entity_id entity_id, const char *name) |
int | ex_put_names (int exoid, ex_entity_type obj_type, char *names[]) |
int | ex_put_n_one_attr (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int64_t start_num, int64_t num_ent, int attrib_index, const void *attrib) |
int | ex_put_prop (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, const char *prop_name, ex_entity_id value) |
int | ex_put_prop_array (int exoid, ex_entity_type obj_type, const char *prop_name, const void_int *values) |
int | ex_put_prop_names (int exoid, ex_entity_type obj_type, int num_props, char **prop_names) |
int | ex_put_qa (int exoid, int num_qa_records, char *qa_record[][4]) |
int | ex_put_time (int exoid, int time_step, const void *time_value) |
int | ex_put_variable_name (int exoid, ex_entity_type obj_type, int var_num, const char *var_name) |
int | ex_put_variable_names (int exoid, ex_entity_type obj_type, int num_vars, char *var_names[]) |
int | ex_put_variable_param (int exoid, ex_entity_type obj_type, int num_vars) |
int | ex_put_truth_table (int exoid, ex_entity_type obj_type, int num_blk, int num_var, int *var_tab) |
int | ex_update (int exoid) |
int | ex_get_num_props (int exoid, ex_entity_type obj_type) |
int | ex_large_model (int exoid) |
size_t | ex_header_size (int exoid) |
void | ex_err (const char *module_name, const char *message, int err_num) |
void | ex_get_err (const char **msg, const char **func, int *errcode) |
void | ex_opts (int options) |
int | ex_inquire (int exoid, int inquiry, void_int *, float *, char *) |
int64_t | ex_inquire_int (int exoid, int inquiry) |
int | ex_int64_status (int exoid) |
int | ex_set_int64_status (int exoid, int mode) |
int | ex_set_max_name_length (int exoid, int length) |
int | ex_set_option (int exoid, ex_option_type option, int option_value) |
int | ex_put_num_map (int exoid, ex_entity_type map_type, ex_entity_id map_id, const void_int *map) |
int | ex_get_num_map (int exoid, ex_entity_type map_type, ex_entity_id map_id, void_int *map) |
int | ex_put_block (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, const char *entry_descrip, int64_t num_entries_this_blk, int64_t num_nodes_per_entry, int64_t num_edges_per_entry, int64_t num_faces_per_entry, int64_t num_attr_per_entry) |
int | ex_get_block (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, char *elem_type, void_int *num_entries_this_blk, void_int *num_nodes_per_entry, void_int *num_edges_per_entry, void_int *num_faces_per_entry, void_int *num_attr_per_entry) |
int | ex_get_block_param (int exoid, ex_block *block) |
int | ex_put_block_param (int exoid, const ex_block block) |
int | ex_put_concat_all_blocks (int exoid, const ex_block_params *param) |
int | ex_put_entity_count_per_polyhedra (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, const int *entity_counts) |
int | ex_get_entity_count_per_polyhedra (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, int *entity_counts) |
int | ex_put_conn (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, const void_int *node_conn, const void_int *elem_edge_conn, const void_int *elem_face_conn) |
int | ex_get_conn (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, void_int *nodeconn, void_int *edgeconn, void_int *faceconn) |
int | ex_get_n_conn (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, int64_t start_num, int64_t num_ent, void_int *nodeconn, void_int *edgeconn, void_int *faceconn) |
int | ex_put_attr (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, const void *attrib) |
int | ex_get_attr (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, void *attrib) |
int | ex_put_one_attr (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int attrib_index, const void *attrib) |
int | ex_get_one_attr (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int attrib_index, void *attrib) |
int | ex_get_n_one_attr (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int64_t start_num, int64_t num_ent, int attrib_index, void *attrib) |
int | ex_put_attr_names (int exoid, ex_entity_type blk_type, ex_entity_id blk_id, char **names) |
int | ex_get_attr_names (int exoid, ex_entity_type obj_type, ex_entity_id obj_id, char **names) |
int | ex_put_set_param (int exoid, ex_entity_type set_type, ex_entity_id set_id, int64_t num_entries_in_set, int64_t num_dist_fact_in_set) |
int | ex_get_set_param (int exoid, ex_entity_type set_type, ex_entity_id set_id, void_int *num_entry_in_set, void_int *num_dist_fact_in_set) |
int | ex_put_set (int exoid, ex_entity_type set_type, ex_entity_id set_id, const void_int *set_entry_list, const void_int *set_extra_list) |
int | ex_get_set (int exoid, ex_entity_type set_type, ex_entity_id set_id, void_int *set_entry_list, void_int *set_extra_list) |
int | ex_put_set_dist_fact (int exoid, ex_entity_type set_type, ex_entity_id set_id, const void *set_dist_fact) |
int | ex_get_set_dist_fact (int exoid, ex_entity_type set_type, ex_entity_id set_id, void *set_dist_fact) |
int | ex_put_concat_sets (int exoid, ex_entity_type set_type, const struct ex_set_specs *set_specs) |
int | ex_get_concat_sets (int exoid, ex_entity_type set_type, struct ex_set_specs *set_specs) |
int | ex_put_sets (int exoid, size_t set_count, const struct ex_set *sets) |
int | ex_get_sets (int exoid, size_t set_count, struct ex_set *sets) |
int | ex_put_all_var_param_ext (int exoid, const ex_var_params *vp) |
int | ex_put_var (int exoid, int time_step, ex_entity_type var_type, int var_index, ex_entity_id obj_id, int64_t num_entries_this_obj, const void *var_vals) |
int | ex_put_n_var (int exoid, int time_step, ex_entity_type var_type, int var_index, ex_entity_id obj_id, int64_t start_index, int64_t num_entities, const void *var_vals) |
int | ex_get_var (int exoid, int time_step, ex_entity_type var_type, int var_index, ex_entity_id obj_id, int64_t num_entry_this_obj, void *var_vals) |
int | ex_get_n_var (int exoid, int time_step, ex_entity_type var_type, int var_index, ex_entity_id obj_id, int64_t start_index, int64_t num_entities, void *var_vals) |
int | ex_get_n_elem_var (int exoid, int time_step, int elem_var_index, ex_entity_id elem_blk_id, int64_t num_elem_this_blk, int64_t start_elem_num, int64_t num_elem, void *elem_var_vals) |
int | ex_get_var_time (int exoid, ex_entity_type var_type, int var_index, int64_t id, int beg_time_step, int end_time_step, void *var_vals) |
int | ex_cvt_nodes_to_sides (int exoid, void_int *num_elem_per_set, void_int *num_nodes_per_set, void_int *side_sets_elem_index, void_int *side_sets_node_index, void_int *side_sets_elem_list, void_int *side_sets_node_list, void_int *side_sets_side_list) |
int | ex_put_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t num_nodes, const void *nodal_var_vals) |
int | ex_put_n_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t start_node, int64_t num_nodes, const void *nodal_var_vals) |
int | ex_get_partial_elem_map (int exoid, ex_entity_id map_id, int64_t ent_start, int64_t ent_count, void_int *elem_map) |
int | ex_put_partial_elem_map (int exoid, ex_entity_id map_id, int64_t ent_start, int64_t ent_count, const void_int *elem_map) |
int | ex_put_partial_num_map (int exoid, ex_entity_type map_type, ex_entity_id map_id, int64_t ent_start, int64_t ent_count, const void_int *map) |
int | ex_put_partial_set_dist_fact (int exoid, ex_entity_type set_type, ex_entity_id set_id, int64_t offset, int64_t num_to_put, const void *set_dist_fact) |
int | ex_get_concat_side_set_node_count (int exoid, int *side_set_node_cnt_list) |
int | ex_get_side_set_node_list_len (int exoid, ex_entity_id side_set_id, void_int *side_set_node_list_len) |
int | ex_get_side_set_node_count (int exoid, ex_entity_id side_set_id, int *side_set_node_cnt_list) |
int | ex_get_side_set_node_list (int exoid, ex_entity_id side_set_id, void_int *side_set_node_cnt_list, void_int *side_set_node_list) |
int | ex_get_init_info (int exoid, int *num_proc, int *num_proc_in_f, char *ftype) |
int | ex_put_init_info (int exoid, int num_proc, int num_proc_in_f, char *ftype) |
int | ex_get_init_global (int exoid, void_int *num_nodes_g, void_int *num_elems_g, void_int *num_elem_blks_g, void_int *num_node_sets_g, void_int *num_side_sets_g) |
int | ex_put_init_global (int exoid, int64_t num_nodes_g, int64_t num_elems_g, int64_t num_elem_blks_g, int64_t num_node_sets_g, int64_t num_side_sets_g) |
int | ex_get_loadbal_param (int exoid, void_int *num_int_nodes, void_int *num_bor_nodes, void_int *num_ext_nodes, void_int *num_int_elems, void_int *num_bor_elems, void_int *num_node_cmaps, void_int *num_elem_cmaps, int processor) |
int | ex_put_loadbal_param (int exoid, int64_t num_int_nodes, int64_t num_bor_nodes, int64_t num_ext_nodes, int64_t num_int_elems, int64_t num_bor_elems, int64_t num_node_cmaps, int64_t num_elem_cmaps, int processor) |
int | ex_put_loadbal_param_cc (int exoid, void_int *num_int_nodes, void_int *num_bor_nodes, void_int *num_ext_nodes, void_int *num_int_elems, void_int *num_bor_elems, void_int *num_node_cmaps, void_int *num_elem_cmaps) |
int | ex_get_ns_param_global (int exoid, void_int *ns_ids_glob, void_int *ns_n_cnt_glob, void_int *ns_df_cnt_glob) |
int | ex_put_ns_param_global (int exoid, void_int *global_ids, void_int *global_n_cnts, void_int *global_df_cnts) |
int | ex_get_ss_param_global (int exoid, void_int *ss_ids_glob, void_int *ss_s_cnt_glob, void_int *ss_df_cnt_glob) |
int | ex_put_ss_param_global (int exoid, void_int *global_ids, void_int *global_el_cnts, void_int *global_df_cnts) |
int | ex_get_eb_info_global (int exoid, void_int *el_blk_ids, void_int *el_blk_cnts) |
int | ex_put_eb_info_global (int exoid, void_int *el_blk_ids, void_int *el_blk_cnts) |
int | ex_get_n_side_set (int exoid, ex_entity_id side_set_id, int64_t start_side_num, int64_t num_sides, void_int *side_set_elem_list, void_int *side_set_side_list) |
int | ex_put_n_side_set (int exoid, ex_entity_id side_set_id, int64_t start_side_num, int64_t num_sides, const void_int *side_set_elem_list, const void_int *side_set_side_list) |
int | ex_get_n_side_set_df (int exoid, ex_entity_id side_set_id, int64_t start_num, int64_t num_df_to_get, void *side_set_df) |
int | ex_put_n_side_set_df (int exoid, ex_entity_id side_set_id, int64_t start_num, int64_t num_df_to_get, void *side_set_df) |
int | ex_get_n_node_set (int exoid, ex_entity_id node_set_id, int64_t start_node_num, int64_t num_node, void_int *node_set_node_list) |
int | ex_put_n_node_set (int exoid, ex_entity_id node_set_id, int64_t start_node_num, int64_t num_node, const void_int *node_set_node_list) |
int | ex_get_n_node_set_df (int exoid, ex_entity_id node_set_id, int64_t start_num, int64_t num_df_to_get, void *node_set_df) |
int | ex_put_n_node_set_df (int exoid, ex_entity_id node_set_id, int64_t start_num, int64_t num_df_to_get, void *node_set_df) |
int | ex_get_n_elem_conn (int exoid, ex_entity_id elem_blk_id, int64_t start_elem_num, int64_t num_elems, void_int *connect) |
int | ex_put_n_elem_conn (int exoid, ex_entity_id elem_blk_id, int64_t start_elem_num, int64_t num_elems, const void_int *connect) |
int | ex_get_n_elem_attr (int exoid, ex_entity_id elem_blk_id, int64_t start_elem_num, int64_t num_elems, void *attrib) |
int | ex_put_n_elem_attr (int exoid, ex_entity_id elem_blk_id, int64_t start_elem_num, int64_t num_elems, void *attrib) |
int | ex_get_elem_type (int exoid, ex_entity_id elem_blk_id, char *elem_type) |
int | ex_put_elem_var_slab (int exoid, int time_step, int elem_var_index, ex_entity_id elem_blk_id, int64_t start_pos, int64_t num_vals, void *elem_var_vals) |
int | ex_put_nodal_var_slab (int exoid, int time_step, int nodal_var_index, int64_t start_pos, int64_t num_vals, void *nodal_var_vals) |
int | ex_get_n_elem_num_map (int exoid, int64_t start_ent, int64_t num_ents, void_int *elem_map) |
int | ex_get_n_node_num_map (int exoid, int64_t start_ent, int64_t num_ents, void_int *node_map) |
int | ex_get_processor_node_maps (int exoid, void_int *node_mapi, void_int *node_mapb, void_int *node_mape, int processor) |
int | ex_put_processor_node_maps (int exoid, void_int *node_mapi, void_int *node_mapb, void_int *node_mape, int processor) |
int | ex_get_processor_elem_maps (int exoid, void_int *elem_mapi, void_int *elem_mapb, int processor) |
int | ex_put_processor_elem_maps (int exoid, void_int *elem_mapi, void_int *elem_mapb, int processor) |
int | ex_get_cmap_params (int exoid, void_int *node_cmap_ids, void_int *node_cmap_node_cnts, void_int *elem_cmap_ids, void_int *elem_cmap_elem_cnts, int processor) |
int | ex_put_cmap_params (int exoid, void_int *node_map_ids, void_int *node_map_node_cnts, void_int *elem_map_ids, void_int *elem_map_elem_cnts, int64_t processor) |
int | ex_put_cmap_params_cc (int exoid, void_int *node_map_ids, void_int *node_map_node_cnts, void_int *node_proc_ptrs, void_int *elem_map_ids, void_int *elem_map_elem_cnts, void_int *elem_proc_ptrs) |
int | ex_get_node_cmap (int exoid, ex_entity_id map_id, void_int *node_ids, void_int *proc_ids, int processor) |
int | ex_put_node_cmap (int exoid, ex_entity_id map_id, void_int *node_ids, void_int *proc_ids, int processor) |
int | ex_get_elem_cmap (int exoid, ex_entity_id map_id, void_int *elem_ids, void_int *side_ids, void_int *proc_ids, int processor) |
int | ex_put_elem_cmap (int exoid, ex_entity_id map_id, void_int *elem_ids, void_int *side_ids, void_int *proc_ids, int processor) |
int | ex_get_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t num_nodes, void *nodal_var_vals) |
int | ex_get_nodal_var_time (int exoid, int nodal_var_index, int64_t node_number, int beg_time_step, int end_time_step, void *nodal_var_vals) |
int | ex_get_concat_node_sets (int exoid, void_int *node_set_ids, void_int *num_nodes_per_set, void_int *num_df_per_set, void_int *node_sets_node_index, void_int *node_sets_df_index, void_int *node_sets_node_list, void *node_sets_dist_fact) |
int | ex_get_concat_side_sets (int exoid, void_int *side_set_ids, void_int *num_elem_per_set, void_int *num_dist_per_set, void_int *side_sets_elem_index, void_int *side_sets_dist_index, void_int *side_sets_elem_list, void_int *side_sets_side_list, void *side_sets_dist_fact) |
int | ex_get_elem_attr (int exoid, ex_entity_id elem_blk_id, void *attrib) |
int | ex_get_elem_attr_names (int exoid, ex_entity_id elem_blk_id, char **names) |
int | ex_get_elem_blk_ids (int exoid, void_int *ids) |
int | ex_get_elem_block (int exoid, ex_entity_id elem_blk_id, char *elem_type, void_int *num_elem_this_blk, void_int *num_nodes_per_elem, void_int *num_attr) |
int | ex_get_elem_conn (int exoid, ex_entity_id elem_blk_id, void_int *connect) |
int | ex_get_elem_map (int exoid, ex_entity_id map_id, void_int *elem_map) |
int | ex_get_elem_num_map (int exoid, void_int *elem_map) |
int | ex_get_elem_var (int exoid, int time_step, int elem_var_index, ex_entity_id elem_blk_id, int64_t num_elem_this_blk, void *elem_var_vals) |
int | ex_get_elem_var_tab (int exoid, int num_elem_blk, int num_elem_var, int *elem_var_tab) |
int | ex_get_elem_var_time (int exoid, int elem_var_index, int64_t elem_number, int beg_time_step, int end_time_step, void *elem_var_vals) |
int | ex_get_map (int exoid, void_int *elem_map) |
int | ex_get_node_map (int exoid, ex_entity_id map_id, void_int *node_map) |
int | ex_get_node_num_map (int exoid, void_int *node_map) |
int | ex_get_node_set_param (int exoid, ex_entity_id node_set_id, void_int *num_nodes_in_set, void_int *num_df_in_set) |
int | ex_get_node_set (int exoid, ex_entity_id node_set_id, void_int *node_set_node_list) |
int | ex_get_node_set_dist_fact (int exoid, ex_entity_id node_set_id, void *node_set_dist_fact) |
int | ex_get_node_set_ids (int exoid, void_int *ids) |
int | ex_get_nset_var (int exoid, int time_step, int nset_var_index, ex_entity_id nset_id, int64_t num_node_this_nset, void *nset_var_vals) |
int | ex_get_one_elem_attr (int exoid, ex_entity_id elem_blk_id, int attrib_index, void *attrib) |
int | ex_get_side_set (int exoid, ex_entity_id side_set_id, void_int *side_set_elem_list, void_int *side_set_side_list) |
int | ex_get_side_set_dist_fact (int exoid, ex_entity_id side_set_id, void *side_set_dist_fact) |
int | ex_get_side_set_ids (int exoid, void_int *ids) |
int | ex_get_side_set_param (int exoid, ex_entity_id side_set_id, void_int *num_side_in_set, void_int *num_dist_fact_in_set) |
int | ex_get_sset_var (int exoid, int time_step, int sset_var_index, ex_entity_id sset_id, int64_t num_side_this_sset, void *sset_var_vals) |
int | ex_get_sset_var_tab (int exoid, int num_sidesets, int num_sset_var, int *sset_var_tab) |
int | ex_get_var_names (int exoid, const char *var_type, int num_vars, char *var_names[]) |
int | ex_get_var_name (int exoid, const char *var_type, int var_num, char *var_name) |
int | ex_get_var_param (int exoid, const char *var_type, int *num_vars) |
int | ex_get_var_tab (int exoid, const char *var_type, int num_blk, int num_var, int *var_tab) |
int | ex_put_concat_node_sets (int exoid, void_int *node_set_ids, void_int *num_nodes_per_set, void_int *num_dist_per_set, void_int *node_sets_node_index, void_int *node_sets_df_index, void_int *node_sets_node_list, void *node_sets_dist_fact) |
int | ex_put_concat_side_sets (int exoid, void_int *side_set_ids, void_int *num_elem_per_set, void_int *num_dist_per_set, void_int *side_sets_elem_index, void_int *side_sets_dist_index, void_int *side_sets_elem_list, void_int *side_sets_side_list, void *side_sets_dist_fact) |
int | ex_put_concat_var_param (int exoid, int num_g, int num_n, int num_e, int num_elem_blk, int *elem_var_tab) |
int | ex_put_elem_attr_names (int exoid, ex_entity_id elem_blk_id, char *names[]) |
int | ex_put_elem_attr (int exoid, ex_entity_id elem_blk_id, const void *attrib) |
int | ex_put_elem_block (int exoid, ex_entity_id elem_blk_id, const char *elem_type, int64_t num_elem_this_blk, int64_t num_nodes_per_elem, int64_t num_attr) |
int | ex_put_elem_conn (int exoid, ex_entity_id elem_blk_id, const void_int *connect) |
int | ex_put_elem_map (int exoid, ex_entity_id map_id, const void_int *elem_map) |
int | ex_put_elem_num_map (int exoid, const void_int *elem_map) |
int | ex_put_elem_var (int exoid, int time_step, int elem_var_index, ex_entity_id elem_blk_id, int64_t num_elem_this_blk, const void *elem_var_vals) |
int | ex_put_elem_var_tab (int exoid, int num_elem_blk, int num_elem_var, int *elem_var_tab) |
int | ex_put_glob_vars (int exoid, int time_step, int num_glob_vars, const void *glob_var_vals) |
int | ex_put_map (int exoid, const void_int *elem_map) |
int | ex_put_node_map (int exoid, ex_entity_id map_id, const void_int *node_map) |
int | ex_put_node_num_map (int exoid, const void_int *node_map) |
int | ex_put_node_set (int exoid, ex_entity_id node_set_id, const void_int *node_set_node_list) |
int | ex_put_node_set_dist_fact (int exoid, ex_entity_id node_set_id, const void *node_set_dist_fact) |
int | ex_put_node_set_param (int exoid, ex_entity_id node_set_id, int64_t num_nodes_in_set, int64_t num_dist_in_set) |
int | ex_put_nset_var (int exoid, int time_step, int nset_var_index, ex_entity_id nset_id, int64_t num_nodes_this_nset, const void *nset_var_vals) |
int | ex_put_nset_var_tab (int exoid, int num_nset, int num_nset_var, int *nset_var_tab) |
int | ex_put_one_elem_attr (int exoid, ex_entity_id elem_blk_id, int attrib_index, const void *attrib) |
int | ex_put_side_set (int exoid, ex_entity_id side_set_id, const void_int *side_set_elem_list, const void_int *side_set_side_list) |
int | ex_put_side_set_dist_fact (int exoid, ex_entity_id side_set_id, const void *side_set_dist_fact) |
int | ex_put_side_set_param (int exoid, ex_entity_id side_set_id, int64_t num_side_in_set, int64_t num_dist_fact_in_set) |
int | ex_put_sset_var (int exoid, int time_step, int sset_var_index, ex_entity_id sset_id, int64_t num_faces_this_sset, const void *sset_var_vals) |
int | ex_put_sset_var_tab (int exoid, int num_sset, int num_sset_var, int *sset_var_tab) |
int | ex_put_var_name (int exoid, const char *var_type, int var_num, const char *var_name) |
int | ex_put_var_names (int exoid, const char *var_type, int num_vars, char *var_names[]) |
int | ex_put_var_param (int exoid, const char *var_type, int num_vars) |
int | ex_put_var_tab (int exoid, const char *var_type, int num_blk, int num_var, int *var_tab) |
char * | ex_name_of_object (ex_entity_type obj_type) |
ex_entity_type | ex_var_type_to_ex_entity_type (char var_type) |
int | ex_get_idx (int neid, const char *ne_var_name, int64_t *index, int pos) |
Variables | |
int | exerrval |
int | exoptval |
#define EX_API_VERS 5.22f |
#define EX_API_VERS_NODOT 522 |
#define ex_create | ( | path, | |
mode, | |||
comp_ws, | |||
io_ws | |||
) | ex_create_int(path, mode, comp_ws, io_ws, EX_API_VERS_NODOT) |
#define EX_INVALID_ID -1 |
The value used to indicate that an entity (block, nset, sset) has not had its id set to a valid value
#define ex_open | ( | path, | |
mode, | |||
comp_ws, | |||
io_ws, | |||
version | |||
) | ex_open_int(path, mode, comp_ws, io_ws, version, EX_API_VERS_NODOT) |
#define EX_VERS EX_API_VERS |
#define EXODUS_EXPORT extern |
#define FALSE 0 |
#define NEMESIS_API_VERSION EX_API_VERS |
#define NEMESIS_FILE_VERSION 2.6 |
#define TRUE -1 |
typedef int64_t ex_entity_id |
Specifies that this argument is the id of an entity: element block, nodeset, sideset, ...
typedef enum ex_entity_type ex_entity_type |
typedef enum ex_inquiry ex_inquiry |
typedef enum ex_options ex_options |
typedef void void_int |
The mechanism for passing double/float and int/int64_t both use a void*; to avoid some confusion as to whether a function takes an integer or a float/double, the following typedef is used for the integer argument
enum ex_entity_type |
enum ex_inquiry |
enum ex_options |
ex_opts() function codes - codes are OR'ed into exopts
int ex_close | ( | int | exoid | ) |
The function ex_close() updates and then closes an open exodus file.
exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
The following code segment closes an open exodus file:
int ex_copy | ( | int | in_exoid, |
int | out_exoid | ||
) |
efficiently copies all non-transient information (attributes, dimensions, and variables from an opened EXODUS file to another opened EXODUS file. Will not overwrite a dimension or variable already defined in the new file.
in_exoid | exodus file id for input file |
out_exoid | exodus file id for output file |
int ex_create_int | ( | const char * | path, |
int | cmode, | ||
int * | comp_ws, | ||
int * | io_ws, | ||
int | my_version | ||
) |
int ex_cvt_nodes_to_sides | ( | int | exoid, |
void_int * | num_elem_per_set, | ||
void_int * | num_nodes_per_set, | ||
void_int * | side_sets_elem_index, | ||
void_int * | side_sets_node_index, | ||
void_int * | side_sets_elem_list, | ||
void_int * | side_sets_node_list, | ||
void_int * | side_sets_side_list | ||
) |
The function ex_cvt_nodes_to_sides() is used to convert a side set node list to a side set side list. This routine is provided for application programs that utilize side sets defined by nodes (as was done previous to release 2.0) rather than local faces or edges. The application program must allocate memory for the returned array of sides. The length of this array is the same as the length of the concatenated side sets element list, which can be determined with a call to ex_inquire() or ex_inquire_int().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | num_elem_per_set | Array containing the number of sides for each set. The number of sides is equal to the number of elements for each set. |
[in] | num_nodes_per_set | Array containing the number of nodes for each set. |
[in] | side_sets_elem_index | Array containing indices into the side_sets_elem_list which are the locations of the first element for each set. These indices are 0-based. Unused. |
[in] | side_sets_node_index | Array containing indices into the side_sets_node_list which are the locations of the first node for each set. These indices are 0-based. Unused. |
[in] | side_sets_elem_list | Array containing the elements for all side sets. Internal element IDs are used in this list (see Section LocalElementIds). |
[in] | side_sets_node_list | Array containing the nodes for all side sets. Internal node IDs are used in this list (see Section LocalNodeIds). |
[out] | side_sets_side_list | Returned array containing the sides for all side sets. |
The following code segment will convert side sets described by nodes to side sets described by local side numbers:
int error, exoid, ids[2], num_side_per_set[2], num_nodes_per_set[2], elem_ind[2], node_ind[2], elem_list[4], node_list[8], el_lst_len, *side_list; ids[0] = 30 ; ids[1] = 31; num_side_per_set[0] = 2; num_side_per_set[1] = 2; num_nodes_per_set[0] = 4; num_nodes_per_set[1] = 4; elem_ind[0] = 0; elem_ind[1] = 2; node_ind[0] = 0; node_ind[1] = 4; \comment{side set #1} elem_list[0] = 2; elem_list[1] = 2; node_list[0] = 8; node_list[1] = 5; node_list[2] = 6; node_list[3] = 7; \comment{side set #2} elem_list[2] = 1; elem_list[3] = 2; node_list[4] = 2; node_list[5] = 3; node_list[6] = 7; node_list[7] = 8; el_lst_len = ex_inquire_int(exoid, EX_INQ_SS_ELEM_LEN); \comment{side set element list is same length as side list} side_list = (int *) calloc (el_lst_len, sizeof(int)); ex_cvt_nodes_to_sides(exoid, num_side_per_set, num_nodes_per_set, elem_ind, node_ind, elem_list, node_list, side_list);
Algorithm:
Read elem_block_ids --> elem_blk_id[array] Read element block parameters --> elem_blk_parms[array] Determine total number of elements in side set by summing num_elem_per_set Build side set element to side set node list index --> ss_elem_node_ndx[array] For each element in the side_set_elem_list { If Jth element is not in current element block (e.g. J>elem_ctr) { get element block parameters (num_elem_in_blk, ...) elem_ctr += num_elem_in_blk free old connectity array space allocate connectivity array: size=num_elem_in_blk*num_nodes_per_elem get connectivity array } If Jth element is in current element block (e.g. J<=elem_ctr) { For each node in element (linear search of up to num_nodes_per_elem) { If side set element node[1] == element node[i] { Case element type = Hex { If side set element node[2] == element node[Hex_table[i,1]] Jth side = Hex_table[i,2] break } Case element type = Wedge { If side set element node[2] == element node[Wedge_table[i,1]] Jth side = Wedge_table[i,2] break } } } } }
void ex_err | ( | const char * | module_name, |
const char * | message, | ||
int | err_num | ||
) |
The function ex_err() logs an error to stderr
. It is intended to provide explanatory messages for error codes returned from other exodus routines.
The passed in error codes and corresponding messages are listed in ???. The programmer may supplement the error message printed for standard errors by providing an error message. If the error code is provided with no error message, the predefined message will be used. The error code EX_MSG
is available to log application specific messages.
[in] | module_name | This is a string containing the name of the calling function. |
[in] | message | This is a string containing a message explaining the error or problem. If EX_VERBOSE (see ex_opts()) is true, this message will be printed to stderr . Otherwise, nothing will be printed. Maximum length is MAX_ERR_LENGTH . |
[in] | err_num | This is an integer code identifying the error. exodus C functions place an error code value in exerrval , an external int. Negative values are considered fatal errors while positive values are warnings. There is a set of predefined values defined in exodusII.h . The predefined constant EX_PRTLASTMSG will cause the last error message to be output, regardless of the setting of the error reporting level (see ex_opts()). |
The following is an example of the use of this function:
#include "exodusII.h" int exoid, CPU_word_size, IO_word_size, errval; float version; char errmsg[MAX_ERR_LENGTH]; CPU_word_size = sizeof(float); IO_word_size = 0; \comment{open exodus file} if (exoid = ex_open ("test.exo", EX_READ, &CPU_word_size, &IO_word_size, &version)) { errval = 999; sprintf(errmsg,"Error: cannot open file test.exo"); ex_err("prog_name", errmsg, errval); }
int ex_get_all_times | ( | int | exoid, |
void * | time_values | ||
) |
The function ex_get_all_times() reads the time values for all time steps. Memory must be allocated for the time values array before this function is invoked. The storage requirements (equal to the number of time steps) can be determined by using the ex_inquire() or ex_inquire_int() routines.
Because time values are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | time_values | Returned array of times. These are the time values at all time steps. |
The following code segment will read the time values for all time steps stored in the data file:
#include "exodusII.h" int error, exoid, num_time_steps; float *time_values; \comment{determine how many time steps are stored} num_time_steps = ex_inquire_int(exoid, EX_INQ_TIME); \comment{read time values at all time steps} time_values = (float *) calloc(num_time_steps, sizeof(float)); error = ex_get_all_times(exoid, time_values);
int ex_get_attr | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
void * | attrib | ||
) |
int ex_get_attr_names | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
char ** | names | ||
) |
int ex_get_attr_param | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
int * | num_attrs | ||
) |
int ex_get_block | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
char * | elem_type, | ||
void_int * | num_entries_this_blk, | ||
void_int * | num_nodes_per_entry, | ||
void_int * | num_edges_per_entry, | ||
void_int * | num_faces_per_entry, | ||
void_int * | num_attr_per_entry | ||
) |
entry conditions - input parameters: int idexo exodus file id int blk_type block type (edge,face,element) int blk_id block id
exit conditions - char* elem_type element type name int* num_entries_this_blk number of elements in this element block int* num_nodes_per_entry number of nodes per element block int* num_attr_per_entry number of attributes
revision history -
int ex_get_block_param | ( | int | exoid, |
ex_block * | block | ||
) |
entry conditions - input parameters: int idexo exodus file id int blk_type block type (edge,face,element) int blk_id block id
exit conditions - char* elem_type element type name int* num_entries_this_blk number of elements in this element block int* num_nodes_per_entry number of nodes per element block int* num_attr_per_entry number of attributes
revision history -
int ex_get_cmap_params | ( | int | exoid, |
void_int * | node_cmap_ids, | ||
void_int * | node_cmap_node_cnts, | ||
void_int * | elem_cmap_ids, | ||
void_int * | elem_cmap_elem_cnts, | ||
int | processor | ||
) |
int ex_get_concat_node_sets | ( | int | exoid, |
void_int * | node_set_ids, | ||
void_int * | num_nodes_per_set, | ||
void_int * | num_df_per_set, | ||
void_int * | node_sets_node_index, | ||
void_int * | node_sets_df_index, | ||
void_int * | node_sets_node_list, | ||
void * | node_sets_dist_fact | ||
) |
The function ex_get_concat_node_sets() reads the node set ID's, node set node count array, node set distribution factors count array, node set node pointers array, node set distribution factors pointer array, node set node list, and node set distribution factors for all of the node sets. ``Concatenated node sets'' refers to the arrays required to define all of the node sets (ID array, counts arrays, pointers arrays, node list array, and distribution factors array) as described in Section 3.10 on page 11.
Because the distribution factors are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
The length of each of the returned arrays can be determined by invoking ex_inquire() or ex_inquire_int().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | node_set_ids | Returned array containing the node set ID for each set. |
[out] | num_nodes_per_set | Returned array containing the number of nodes for each set. |
[out] | num_df_per_set | Returned array containing the number of distribution factors for each set. |
[out] | node_sets_node_index | Returned array containing the indices into the node_set_node_list which are the locations of the first node for each set. These indices are 0-based. |
[out] | node_sets_df_index | Returned array containing the indices into the node_set_dist_fact which are the locations of the first distribution factor for each set. These indices are 0-based. |
[out] | node_sets_node_list | Returned array containing the nodes for all sets. Internal node IDs are used in this list (see Section LocalNodeIds). |
[out] | node_sets_dist_fact | Returned array containing the distribution factors for all sets. |
As an example, the following code segment will read concatenated node sets:
#include "exodusII.h" int error, exoid, num_node_sets, list_len, *ids, *num_nodes_per_set, *num_df_per_set, *node_ind, *df_ind, *node_list; float *dist_fact \comment{read concatenated node sets} num_node_sets = ex_inquire_int(exoid, EX_INQ_NODE_SETS); ids = (int *) calloc(num_node_sets, sizeof(int)); num_nodes_per_set = (int *) calloc(num_node_sets, sizeof(int)); num_df_per_set = (int *) calloc(num_node_sets, sizeof(int)); node_ind = (int *) calloc(num_node_sets, sizeof(int)); df_ind = (int *) calloc(num_node_sets, sizeof(int)); list_len = ex_inquire_int(exoid, EX_INQ_NS_NODE_LEN); node_list = (int *) calloc(list_len, sizeof(int)); list_len = ex_inquire_int(exoid, EX_INQ_NS_DF_LEN); dist_fact = (float *) calloc(list_len, sizeof(float)); error = ex_get_concat_node_sets (exoid, ids, num_nodes_per_set, num_df_per_set, node_ind, df_ind, node_list, dist_fact);
int ex_get_concat_sets | ( | int | exoid, |
ex_entity_type | set_type, | ||
struct ex_set_specs * | set_specs | ||
) |
reads the set ID's, set entry count array, set entry pointers array, set entry list, set extra list, and set distribution factors for all sets of the specified type.
entry conditions - input parameters: int exoid exodus file id ex_entity_type set_type type of set
exit conditions - struct ex_set_specs* set_specs set specs structure
revision history -
int ex_get_concat_side_set_node_count | ( | int | exoid, |
int * | side_set_node_cnt_list | ||
) |
int ex_get_concat_side_sets | ( | int | exoid, |
void_int * | side_set_ids, | ||
void_int * | num_elem_per_set, | ||
void_int * | num_dist_per_set, | ||
void_int * | side_sets_elem_index, | ||
void_int * | side_sets_dist_index, | ||
void_int * | side_sets_elem_list, | ||
void_int * | side_sets_side_list, | ||
void * | side_sets_dist_fact | ||
) |
int ex_get_conn | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
void_int * | nodeconn, | ||
void_int * | edgeconn, | ||
void_int * | faceconn | ||
) |
entry conditions - expelb must be called first to establish element block parameters. input parameters: int exoid exodus file id int blk_type block type (edge, face, element) int blk_id block id
exit conditions - int* nodeconn nodal connectivity array int* edgeconn edge connectivity array (where applicable) int* faceconn face connectivity array (where applicable)
int ex_get_coord | ( | int | exoid, |
void * | x_coor, | ||
void * | y_coor, | ||
void * | z_coor | ||
) |
The function ex_get_coord() reads the nodal coordinates of the nodes. Memory must be allocated for the coordinate arrays (x_coor
, y_coor
, and z_coor
) before this call is made. The length of each of these arrays is the number of nodes in the mesh.
Because the coordinates are floating point values, the application code must declare the arrays passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | x_coor | Returned X coordinates of the nodes. If this is NULL , the X-coordinates will not be read. |
[out] | y_coor | Returned Y coordinates of the nodes. These are returned only if num_dim > 1; otherwise, pass in NULL . If this is NULL , the Y-coordinates will not be read. |
[out] | z_coor | Returned Z coordinates of the nodes. These are returned only if num_dim > 2; otherwise, pass in NULL . If this is NULL , the Z-coordinates will not be read. |
The following code segment will read the nodal coordinates from an open exodus file :
int error, exoid; double *x, *y, *z; \comment{read nodal coordinates values from database} x = (double *)calloc(num_nodes, sizeof(double)); y = (double *)calloc(num_nodes, sizeof(double)); if (num_dim >= 3) z = (double *)calloc(num_nodes, sizeof(double)); else z = 0; error = ex_get_coord(exoid, x, y, z); \comment{Do the same as the previous call in three separate calls} error = ex_get_coord(exoid, x, NULL, NULL); error = ex_get_coord(exoid, NULL, y, NULL); if (num_dim >= 3) error = ex_get_coord(exoid, NULL, NULL, z);
int ex_get_coord_names | ( | int | exoid, |
char ** | coord_names | ||
) |
The function ex_get_coord_names() reads the names (MAX_STR_LENGTH
-characters in length) of the coordinate arrays from the database. Memory must be allocated for the character strings before this function is invoked.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | coord_names | Returned pointer to a vector containing num_dim names of the nodal coordinate arrays. |
The following code segment will read the coordinate names from an open exodus file :
int error, exoid; char *coord_names[3]; for (i=0; i < num_dim; i++) { coord_names[i] = (char *)calloc((MAX_STR_LENGTH+1), sizeof(char)); } error = ex_get_coord_names (exoid, coord_names);
int ex_get_coordinate_frames | ( | int | exoid, |
int * | nframes, | ||
void_int * | cf_ids, | ||
void * | pt_coordinates, | ||
char * | tags | ||
) |
Coordinate frames are stored in the database as a series of three points (defined in the basic cartesian coordinate system). The first of these points describes the origin of the new system. The second point lies on the 3 axis (or Z axis) of the frame. The third point is in the 1-3 (xz) plane. Each coordinate frame is identified by a unique, integer coordinate ID, and by a character tag indicating whether the frame is rectangular cartesian "R", cylindrical "C, or spherical "S". Because the coordinates are floating point values, the application code must declare the arrays passed to be the appropriate type "float" or "double" to match the compute word size passed in ex_create() or ex_open().
exoid | exodus file id | |
[in,out] | nframes | if 'cf_ids' is NULL, then nframes is returned with the number of defined coordinate frames. Else it is the number of coordinate frames to read. |
[out] | cf_ids | The (nframes) coordinate frame Ids. If cf_ids is NULL, no data will be returned in this or any other array. Only nframes will be modified. Otherwise, space must be allocated to store 'nframes' integers before making this call. |
[out] | pt_coordinates | The (9*nframes) coordinates of the three points defining each coordinate axis. The first three values are the origin of the first frame. The next three values are the coordinates of a point on the 3rd axis of the first frame. The next three values are the coordinates of a point in the plane of the 1-3 axis. The pattern is repeated for each frame. If 'cf_ids' is null, no data will be returned in this array. Otherwise, space must be allocated for 9*nframes floating point values. The size of the allocation depends upon the compute word size. |
[out] | tags | The (nframes) character tags associated with each coordinate frame. If 'cf_ids' is NULL, no data will be returned in this array. Otherwise, space must be allocated for 'nframes' characters. |
int ex_get_eb_info_global | ( | int | exoid, |
void_int * | el_blk_ids, | ||
void_int * | el_blk_cnts | ||
) |
int ex_get_elem_attr | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
void * | attrib | ||
) |
The function ex_get_elem_attr() reads the attributes for an element block. Memory must be allocated for(num_attr
x num_elem_this_blk
) attributes before this routine is called.
Because the attributes are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_blk_id | The element block ID. |
[out] | attrib | Size [num_elem_this_blk*num_attr]. Returned list of(num_attr x num_elem_this_blk) attributes for the element block, with the num_attr index cycling faster. |
Refer to the code example in ex_get_elem_block() for an example of reading the element attributes for an element block.
int ex_get_elem_attr_names | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
char ** | names | ||
) |
reads the attribute names for an element block
int ex_get_elem_blk_ids | ( | int | exoid, |
void_int * | ids | ||
) |
The function ex_get_elem_blk_ids() reads the IDs of all of the element blocks. Memory must be allocated for the returned array of ({num_elem_blk}) IDs before this function is invoked. The required size(num_elem_blk
) can be determined via a call to ex_inquire() or ex_inquire_int().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | ids | Returned array of the element blocks IDs. The order of the IDs in this array reflects the sequence that the element blocks were introduced into the file. |
The following code segment reads all the element block IDs:
int error, exoid, *idelbs, num_elem_blk; idelbs = (int *) calloc(num_elem_blk, sizeof(int)); error = ex_get_elem_blk_ids (exoid, idelbs); \comment{Same result using non-deprecated functions} error = ex_get_ids (exoid, EX_ELEM_BLOCK, idelbs);
int ex_get_elem_block | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
char * | elem_type, | ||
void_int * | num_elem_this_blk, | ||
void_int * | num_nodes_per_elem, | ||
void_int * | num_attr | ||
) |
The function ex_get_elem_block() reads the parameters used to describe an element block. IDs of all element blocks stored can be determined by calling ex_get_elem_blk_ids().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_blk_id | The element block ID. |
[out] | elem_type | Returned element typetype of elements in the element block. The maximum length of this string is MAX_STR_LENGTH . |
[out] | num_elem_this_blk | Returned number of elements in the element block. |
[out] | num_nodes_per_elem | Returned number of nodes per element in the element block. |
[out] | num_attr | Returned number of attributes per element in the element block. |
As an example, the following code segment will read the parameters for the element block with an ID of 10 and read the connectivity and element attributes arrays from an open exodus file :
#include "exodusII.h" int id, error, exoid, num_el_in_blk, num_nod_per_el, num_attr, *connect; float *attrib; char elem_type[MAX_STR_LENGTH+1]; \comment{read element block parameters} id = 10; error = ex_get_elem_block(exoid, id, elem_type, &num_el_in_blk, &num_nod_per_elem, &num_attr); \comment{read element connectivity} connect = (int *) calloc(num_nod_per_el*num_el_in_blk, sizeof(int)); error = ex_get_elem_conn(exoid, id, connect); \comment{read element block attributes} attrib = (float *) calloc (num_attr * num_el_in_blk, sizeof(float)); error = ex_get_elem_attr (exoid, id, attrib); \comment{Same result using non-deprecated functions} error = ex_get_block(exoid, EX_ELEM_BLOCK, id, elem_type, &num_el_in_blk, &num_nod_per_elem, 0, 0, &num_attr); error = ex_get_conn (exoid, EX_ELEM_BLOCK, id, connect); error = ex_get_attr (exoid, EX_ELEM_BLOCK, id, attrib);
int ex_get_elem_cmap | ( | int | exoid, |
ex_entity_id | map_id, | ||
void_int * | elem_ids, | ||
void_int * | side_ids, | ||
void_int * | proc_ids, | ||
int | processor | ||
) |
int ex_get_elem_conn | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
void_int * | connect | ||
) |
The function ex_get_elem_conn() reads the connectivity array for an element block. Memory must be allocated for the connectivity array(num_elem_this_blk
* num_nodes_per_elem
in length) before this routine is called.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_blk_id | The element block ID. |
[out] | connect | Size [num_elem_this_blk,num_nodes_per_elem]. Returned connectivity array; a list of nodes (internal node IDs; See Section LocalNodeIds) that define each element. The node index cycles faster than the element index. |
Refer to the code example in ex_get_elem_block() for an example of reading the connectivity for an element block.
int ex_get_elem_map | ( | int | exoid, |
ex_entity_id | map_id, | ||
void_int * | elem_map | ||
) |
reads the element map with specified ID
int ex_get_elem_num_map | ( | int | exoid, |
void_int * | elem_map | ||
) |
The function ex_get_elem_num_map() reads the optional element number map from the database. See Section LocalElementIds for a description of the element number map. If an element number map is not stored in the data file, a default array (1,2,3,. .. num_elem
) is returned. Memory must be allocated for the element number map array ({num_elem} in length) before this call is made.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | elem_map | Returned element number map. |
The following code will read an element number map from an open exodus file :
int *elem_map, error, exoid; \comment{read element number map} elem_map = (int *) calloc(num_elem, sizeof(int)); error = ex_get_elem_num_map (exoid, elem_map); \comment{Equivalent using non-deprecated function} error = ex_get_id_map(exoid, EX_ELEM_MAP, elem_map);
int ex_get_elem_type | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
char * | elem_type | ||
) |
int ex_get_elem_var | ( | int | exoid, |
int | time_step, | ||
int | elem_var_index, | ||
ex_entity_id | elem_blk_id, | ||
int64_t | num_elem_this_blk, | ||
void * | elem_var_vals | ||
) |
The function ex_get_elem_var() reads the values of a single element variable for one element block at one time step. Memory must be allocated for the element variable values array before this function is invoked.
Because element variables are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | time_step | The time step number, as described under ex_put_time(), at which the element variable values are desired. This is essentially an index (in the time dimension) into the element variable values array stored in the database. The first time step is 1. |
[in] | elem_var_index | The index of the desired element variable. The first variable has an index of 1. |
[in] | elem_blk_id | The desired element block ID. |
[in] | num_elem_this_blk | The number of elements in this element block. |
[out] | elem_var_vals | Returned array of num_elem_this_blk values of the elem_var_index element variable for the element block with ID of elem_blk_id at the time_step time step. |
As an example, the following code segment will read the var_index-th
element variable at one time step stored in an exodus file :
int *ids, num_elem_blk, error, exoid, *num_elem_in_block, step, var_ind; float *var_vals; ids = (int *) calloc(num_elem_blk, sizeof(int)); error = ex_get_elem_blk_ids (exoid, ids); step = 1; \comment{read at the first time step} for (i=0; i < num_elem_blk; i++) { var_vals = (float *) calloc (num_elem_in_block[i], sizeof(float)); error = ex_get_elem_var (exoid, step, var_ind, ids[i], num_elem_in_block[i], var_vals); \comment{Using non-deprecated function:} error = ex_get_var (exoid, step, EX_ELEM_BLOCK, var_ind, ids[i], num_elem_in_block[i], var_vals); free (var_values); }
int ex_get_elem_var_tab | ( | int | exoid, |
int | num_elem_blk, | ||
int | num_elem_var, | ||
int * | elem_var_tab | ||
) |
The function ex_get_elem_var_tab() reads the exodus element variable truth table from the database. For a description of the truth table, see the usage of the function ex_put_elem_var_tab(). Memory must be allocated for the truth table(num_elem_blk
x num_elem_var
in length) before this function is invoked. If the truth table is not stored in the file, it will be created based on information in the file and then returned.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | num_elem_blk | The number of element blocks. |
[in] | num_elem_var | The number of element variables. |
[out] | elem_var_tab | Size [num_elem_blk,num_elem_var]. Returned 2-dimensional array (with the num_elem_var index cycling faster) containing the element variable truth table. |
As an example, the following coding will read the element variable truth table from an opened exodus file :
int *truth_tab, num_elem_blk, num_ele_vars, error, exoid; truth_tab = (int *) calloc ((num_elem_blk*num_ele_vars), sizeof(int)); error = ex_get_elem_var_tab (exoid, num_elem_blk, num_ele_vars, truth_tab);
int ex_get_elem_var_time | ( | int | exoid, |
int | elem_var_index, | ||
int64_t | elem_number, | ||
int | beg_time_step, | ||
int | end_time_step, | ||
void * | elem_var_vals | ||
) |
The function ex_get_elem_var_time() reads the values of an element variable for a single element through a specified number of time steps. Memory must be allocated for the element variable values array before this function is invoked.
Because element variables are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_var_index | The index of the desired element variable. The first variable has an index of 1. |
[in] | elem_number | The internal ID (see Section LocalElementIds) of the desired element. The first element is 1. |
[in] | beg_time_step | The beginning time step for which an element variable value is desired. This is not a time value but rather a time step number, as described under ex_put_time(). The first time step is 1. |
[in] | end_time_step | The last time step for which an element variable value is desired. If negative, the last time step in the database will be used. The first time step is 1. |
[out] | elem_var_vals | returned array of(end_time_step {-} beg_time_step + 1) values of the elem_number-th element for the elem_var_index-th element variable. |
For example, the following coding will read the values of the var_index-th
element variable for element number 2 from the first time step to the last time step:
#include "exodusII.h" int error, exoid, num_time_steps, var_index, elem_num, beg_time, end_time; float *var_values; \comment{determine how many time steps are stored} num_time_steps = ex_inquire_int(exoid, EX_INQ_TIME); \comment{read an element variable through time} var_values = (float *) calloc (num_time_steps, sizeof(float)); var_index = 2; elem_num = 2; beg_time = 1; end_time = -1; error = ex_get_elem_var_time (exoid, var_index, elem_num, beg_time, end_time, var_values); \comment{Using non-deprecated function:} error = ex_get_elem_var_time (exoid, EX_ELEM_BLOCK, var_index, elem_num, beg_time, end_time, var_values);
int ex_get_entity_count_per_polyhedra | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
int * | entity_counts | ||
) |
reads in the number of entities (nodes/faces) per polyhedra (nsided/nfaced) in this element block.
exoid | exodus file id |
blk_type | type of block (face, or element) |
blk_id | block identifer |
entity_counts | entity_per_polyhedra count array |
void ex_get_err | ( | const char ** | msg, |
const char ** | func, | ||
int * | errcode | ||
) |
int ex_get_glob_var_time | ( | int | exoid, |
int | glob_var_index, | ||
int | beg_time_step, | ||
int | end_time_step, | ||
void * | glob_var_vals | ||
) |
The function ex_get_glob_var_time() reads the values of a single global variable through a specified number of time steps. Memory must be allocated for the global variable values array before this function is invoked.
Because global variables are floating point values, the application code must declare the array passed to be the appropriate type (float or double) to match the compute word size passed in ex_create() or ex_open().
exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). | |
glob_var_index | The index of the desired global variable. The first variable has an index of 1. | |
beg_time_step | The beginning time step for which a global variable value is desired. This is not a time value but rather a time step number, as described under ex_put_time(). The first time step is 1. | |
end_time_step | The last time step for which a global variable value is desired. If negative, the last time step in the database will be used. The first time step is 1. | |
[out] | glob_var_vals | Returned array of (end_time_step - beg_time_step + 1) values for the glob_var_index$^{th}$ global variable. |
The following is an example of using this function:
#include "exodusII.h" int error, exoid, num_time_steps, var_index; int beg_time, end_time; float *var_values; num_time_steps = ex_inquire_int(exoid, EX_INQ_TIME); var_index = 1; beg_time = 1; end_time = -1; var_values = (float *) calloc (num_time_steps, sizeof(float)); error = ex_get_glob_var_time(exoid, var_index, beg_time, end_time, var_values);
int ex_get_id_map | ( | int | exoid, |
ex_entity_type | obj_type, | ||
void_int * | map | ||
) |
int ex_get_ids | ( | int | exoid, |
ex_entity_type | obj_type, | ||
void_int * | ids | ||
) |
int ex_get_idx | ( | int | neid, |
const char * | ne_var_name, | ||
int64_t * | index, | ||
int | pos | ||
) |
int ex_get_info | ( | int | exoid, |
char ** | info | ||
) |
The function ex_get_info() reads information records from the database. The records are MAX_LINE_LENGTH-character
strings. Memory must be allocated for the information records before this call is made. The number of records can be determined by invoking ex_inquire() or ex_inquire_int().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | info | Returned array containing the information records. |
The following code segment will determine the number of information records and read them from an open exodus file :
#include "exodusII.h" int error, exoid, num_info; char *info[MAXINFO]; \comment{read information records} num_info = ex_inquire_int (exoid,EX_INQ_INFO); for (i=0; i < num_info; i++) { info[i] = (char *) calloc ((MAX_LINE_LENGTH+1), sizeof(char)); } error = ex_get_info (exoid, info);
int ex_get_init | ( | int | exoid, |
char * | title, | ||
void_int * | num_dim, | ||
void_int * | num_nodes, | ||
void_int * | num_elem, | ||
void_int * | num_elem_blk, | ||
void_int * | num_node_sets, | ||
void_int * | num_side_sets | ||
) |
The function ex_get_init() reads the initializationinitialization parameters from an opened exodus file.
exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). | |
[out] | title | Returned database title. String length may be up to MAX_LINE_LENGTH bytes. |
[out] | num_dim | Returned dimensionality of the database. This is the number of coordinates per node. |
[out] | num_nodes | Returned number of nodal points. |
[out] | num_elem | Returned number of elements |
[out] | num_elem_blk | Returned number of element blocks |
[out] | num_node_sets | Returned number of node sets |
[out] | num_side_sets | Returned number of side sets |
The following code segment will read the initialization parameters from the open exodus file:
#include "exodusII.h" int num_dim, num_nodes, num_elem, num_elem_blk, num_node_sets, num_side_sets, error, exoid; char title[MAX_LINE_LENGTH+1]; \comment{read database parameters} error = ex_get_init (exoid, title, &num_dim, &num_nodes, &num_elem, &num_elem_blk, &num_node_sets, &num_side_sets);
int ex_get_init_ext | ( | int | exoid, |
ex_init_params * | info | ||
) |
reads the initialization parameters from an opened EXODUS II file
exoid | exodus file id | |
[out] | info | ex_init_params structure containing metadata for mesh. |
int ex_get_init_global | ( | int | exoid, |
void_int * | num_nodes_g, | ||
void_int * | num_elems_g, | ||
void_int * | num_elem_blks_g, | ||
void_int * | num_node_sets_g, | ||
void_int * | num_side_sets_g | ||
) |
int ex_get_init_info | ( | int | exoid, |
int * | num_proc, | ||
int * | num_proc_in_f, | ||
char * | ftype | ||
) |
int ex_get_loadbal_param | ( | int | exoid, |
void_int * | num_int_nodes, | ||
void_int * | num_bor_nodes, | ||
void_int * | num_ext_nodes, | ||
void_int * | num_int_elems, | ||
void_int * | num_bor_elems, | ||
void_int * | num_node_cmaps, | ||
void_int * | num_elem_cmaps, | ||
int | processor | ||
) |
int ex_get_map | ( | int | exoid, |
void_int * | elem_map | ||
) |
The function ex_get_map() reads the element order map from the database. See #ElementOrderMap for a description of the element order map. If an element order map is not stored in the data file, a default array (1,2,3,. .. num_elem
) is returned. Memory must be allocated for the element map array ({num_elem} in length) before this call is made.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | elem_map | Returned element order map. |
The following code will read an element order map from an open exodus file :
int *elem_map, error, exoid; \comment{read element order map} elem_map = (int *)calloc(num_elem, sizeof(int)); error = ex_get_map(exoid, elem_map);
int ex_get_map_param | ( | int | exoid, |
int * | num_node_maps, | ||
int * | num_elem_maps | ||
) |
int ex_get_n_conn | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
int64_t | start_num, | ||
int64_t | num_ent, | ||
void_int * | nodeconn, | ||
void_int * | edgeconn, | ||
void_int * | faceconn | ||
) |
int ex_get_n_coord | ( | int | exoid, |
int64_t | start_node_num, | ||
int64_t | num_nodes, | ||
void * | x_coor, | ||
void * | y_coor, | ||
void * | z_coor | ||
) |
reads the coordinates of the nodes. Memory must be allocated for the coordinate arrays (x_coor, y_coor, and z_coor) before this call is made. The length of each of these arrays is the number of nodes in the mesh. Because the coordinates are floating point values, the application code must declare the arrays passed to be the appropriate type "float" or "double" to match the compute word size passed in ex_create() or ex_open()
exoid | exodus file id | |
start_node_num | the starting index of the coordinates to be returned. | |
num_nodes | the number of nodes to read coordinates for. | |
[out] | x_coor | Returned X coordinates of the nodes. These are returned only if x_coor is non-NULL. |
[out] | y_coor | Returned Y coordinates of the nodes. These are returned only if y_coor is non-NULL. |
[out] | z_coor | Returned Z coordinates of the nodes. These are returned only if z_coor is non-NULL. |
int ex_get_n_elem_attr | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
int64_t | start_elem_num, | ||
int64_t | num_elems, | ||
void * | attrib | ||
) |
int ex_get_n_elem_conn | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
int64_t | start_elem_num, | ||
int64_t | num_elems, | ||
void_int * | connect | ||
) |
int ex_get_n_elem_num_map | ( | int | exoid, |
int64_t | start_ent, | ||
int64_t | num_ents, | ||
void_int * | elem_map | ||
) |
int ex_get_n_elem_var | ( | int | exoid, |
int | time_step, | ||
int | elem_var_index, | ||
ex_entity_id | elem_blk_id, | ||
int64_t | num_elem_this_blk, | ||
int64_t | start_elem_num, | ||
int64_t | num_elem, | ||
void * | elem_var_vals | ||
) |
int ex_get_n_nodal_var | ( | int | exoid, |
int | time_step, | ||
int | nodal_var_index, | ||
int64_t | start_node, | ||
int64_t | num_nodes, | ||
void * | nodal_var_vals | ||
) |
int ex_get_n_node_num_map | ( | int | exoid, |
int64_t | start_ent, | ||
int64_t | num_ents, | ||
void_int * | node_map | ||
) |
int ex_get_n_node_set | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
int64_t | start_node_num, | ||
int64_t | num_node, | ||
void_int * | node_set_node_list | ||
) |
int ex_get_n_node_set_df | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
int64_t | start_num, | ||
int64_t | num_df_to_get, | ||
void * | node_set_df | ||
) |
int ex_get_n_one_attr | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
int64_t | start_num, | ||
int64_t | num_ent, | ||
int | attrib_index, | ||
void * | attrib | ||
) |
reads the specified attribute for a subsect of a block
exoid | exodus file id |
obj_type | object type (edge, face, elem block) |
obj_id | object id (edge, face, elem block ID) |
start_num | the starting index of the attributes to be returned. |
num_ent | the number of entities to read attributes for. |
attrib_index | index of attribute to write |
attrib | array of attributes |
int ex_get_n_side_set | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
int64_t | start_side_num, | ||
int64_t | num_sides, | ||
void_int * | side_set_elem_list, | ||
void_int * | side_set_side_list | ||
) |
int ex_get_n_side_set_df | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
int64_t | start_num, | ||
int64_t | num_df_to_get, | ||
void * | side_set_df | ||
) |
int ex_get_n_var | ( | int | exoid, |
int | time_step, | ||
ex_entity_type | var_type, | ||
int | var_index, | ||
ex_entity_id | obj_id, | ||
int64_t | start_index, | ||
int64_t | num_entities, | ||
void * | var_vals | ||
) |
reads the values of a single variable for a partial block at one time step from the database; assume the first time step and variable index and start_index are 1
exoid | exodus file id |
time_step | time step number |
var_type | type (edge block, face block, edge set, ... ) |
var_index | element variable index |
obj_id | element block id |
start_index | index of first entity in block to read (1-based) |
num_entities | number of entries to read in this block/set |
var_vals | the values to read |
int ex_get_name | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | entity_id, | ||
char * | name | ||
) |
int ex_get_names | ( | int | exoid, |
ex_entity_type | obj_type, | ||
char ** | names | ||
) |
int ex_get_nodal_var | ( | int | exoid, |
int | time_step, | ||
int | nodal_var_index, | ||
int64_t | num_nodes, | ||
void * | nodal_var_vals | ||
) |
The function ex_get_nodal_var() reads the values of a single nodal variable for a single time step. Memory must be allocated for the nodal variable values array before this function is invoked.
Because nodal variables are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | time_step | The time step, as described under ex_put_time(), at which the nodal variable values are desired. This is essentially an index (in the time dimension) into the nodal variable values array stored in the database. The first time step is 1. |
[in] | nodal_var_index | The index of the desired nodal variable. The first variable has an index of 1. |
[in] | num_nodes | The number of nodal points. |
[out] | nodal_var_vals | Returned array of num_nodes values of the nodal_var_index-th nodal variable for the time_step-th time step. |
For example, the following demonstrates how this function would be used:
int num_nodes, time_step, var_index; float *var_values; \comment{read the second nodal variable at the first time step} time_step = 1; var_index = 2; var_values = (float *) calloc (num_nodes, sizeof(float)); error = ex_get_nodal_var(exoid, time_step, var_index, num_nodes, var_values);
int ex_get_nodal_var_time | ( | int | exoid, |
int | nodal_var_index, | ||
int64_t | node_number, | ||
int | beg_time_step, | ||
int | end_time_step, | ||
void * | nodal_var_vals | ||
) |
The function ex_get_nodal_var_time() reads the values of a nodal variable for a single node through a specified number of time steps. Memory must be allocated for the nodal variable values array before this function is invoked.
Because nodal variables are floating point values, the application code must declare the array passed to be the appropriate type (float
or ``double'') to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | nodal_var_index | The index of the desired nodal variable. The first variable has an index of 1. |
[in] | node_number | The internal ID (see Section LocalNodeIds) of the desired node. The first node is 1. |
[in] | beg_time_step | The beginning time step for which a nodal variable value is desired. This is not a time value but rather a time step number, as described under ex_put_time(). The first time step is 1. |
[in] | end_time_step | The last time step for which a nodal variable value is desired. If negative, the last time step in the database will be used. The first time step is 1. |
[out] | nodal_var_vals | Returned array of(end_time_step {-} beg_time_step +1) values of the node_number-th node for the nodal_var_index-th nodal variable. |
For example, the following code segment will read the values of the first nodal variable for node number one for all time steps stored in the data file:
#include "exodusII.h" int num_time_steps, var_index, node_num, beg_time, end_time, error, exoid; float *var_values; \comment{determine how many time steps are stored} num_time_steps = ex_inquire_int(exoid, EX_INQ_TIME); \comment{read a nodal variable through time} var_values = (float *) calloc (num_time_steps, sizeof(float)); var_index = 1; node_num = 1; beg_time = 1; end_time = -1; error = ex_get_nodal_var_time(exoid, var_index, node_num, beg_time, end_time, var_values);
int ex_get_node_cmap | ( | int | exoid, |
ex_entity_id | map_id, | ||
void_int * | node_ids, | ||
void_int * | proc_ids, | ||
int | processor | ||
) |
int ex_get_node_map | ( | int | exoid, |
ex_entity_id | map_id, | ||
void_int * | node_map | ||
) |
reads the node map with specified ID
int ex_get_node_num_map | ( | int | exoid, |
void_int * | node_map | ||
) |
The function ex_get_node_num_map() reads the optional node number mapnode number map from the database. See Section LocalNodeIds for a description of the node number map. If a node number map is not stored in the data file, a default array (1,2,3,. .. num_nodes
) is returned. Memory must be allocated for the node number map array (num_nodes
in length) before this call is made.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | node_map | Returned node number map. |
The following code will read a node number map from an open exodus file :
int *node_map, error, exoid; \comment{read node number map} node_map = (int *)calloc(num_nodes, sizeof(int)); error = ex_get_node_num_map(exoid, node_map); \comment{Equivalent using non-deprecated function} error = ex_get_id_map(exoid, EX_NODE_MAP, node_map);
int ex_get_node_set | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
void_int * | node_set_node_list | ||
) |
reads the node list for a single node set
int ex_get_node_set_dist_fact | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
void * | node_set_dist_fact | ||
) |
The function ex_get_node_set_dist_fact() returns the node set distribution factors for a single node set. Memory must be allocated for the list of distribution factors(num_dist_in_set
in length) before this function is invoked.
Because the distribution factors are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | node_set_id | The node set ID. |
[out] | node_set_dist_fact | Returned array containing the distribution factors in the node set. |
Refer to the description of ex_get_node_set_param() for a sample code segment to read a node set's distribution factors.
int ex_get_node_set_ids | ( | int | exoid, |
void_int * | ids | ||
) |
The function ex_get_node_set_ids() reads the IDs of all of the node sets. Memory must be allocated for the returned array of ({num_node_sets}) IDs before this function is invoked.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | ids | Returned array of the node sets IDs. The order of the IDs in this array reflects the sequence the node sets were introduced into the file. |
As an example, the following code will read all of the node set IDs from an open data file:
int *ids, num_node_sets, error, exoid; \comment{read node sets IDs} ids = (int *) calloc(num_node_sets, sizeof(int)); error = ex_get_node_set_ids (exoid, ids); \comment{Same result using non-deprecated functions.} error = ex_get_ids (exoid, EX_NODE_SET, ids);
int ex_get_node_set_param | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
void_int * | num_nodes_in_set, | ||
void_int * | num_df_in_set | ||
) |
The function ex_get_node_set_param() reads the number of nodes which describe a single node set and the number of distribution factors for the node set.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | node_set_id | The node set ID. |
[out] | num_nodes_in_set | Returned number of nodes in the node set. |
[out] | num_df_in_set | Returned number of distribution factors in the node set. |
The following code segment will read a node set from an open exodus file :
int error, exoid, id, num_nodes_in_set, num_df_in_set, *node_list; float *dist_fact; \comment{read node set parameters} id = 100; error = ex_get_node_set_param(exoid, id, &num_nodes_in_set, &num_df_in_set); \comment{read node set node list} node_list = (int *) calloc(num_nodes_in_set, sizeof(int)); error = ex_get_node_set(exoid, id, node_list); \comment{read node set distribution factors} if (num_df_in_set > 0) { dist_fact = (float *) calloc(num_nodes_in_set, sizeof(float)); error = ex_get_node_set_dist_fact(exoid, id, dist_fact); } \comment{Same result using non-deprecated functions} error = ex_get_set_param(exoid, EX_NODE_SET, id, &num_nodes_in_set, &num_df_in_set); error = ex_get_set(exoid, EX_NODE_SET, id, node_list); if (num_df_in_set > 0) { error = ex_get_set_dist_fact(exoid, EX_NODE_SET, id, dist_fact); }
int ex_get_ns_param_global | ( | int | exoid, |
void_int * | ns_ids_glob, | ||
void_int * | ns_n_cnt_glob, | ||
void_int * | ns_df_cnt_glob | ||
) |
int ex_get_nset_var | ( | int | exoid, |
int | time_step, | ||
int | nset_var_index, | ||
ex_entity_id | nset_id, | ||
int64_t | num_node_this_nset, | ||
void * | nset_var_vals | ||
) |
reads the values of a single nodeset variable for one nodeset at one time step in the database; assume the first time step and nodeset variable index is 1
int ex_get_nset_var_tab | ( | int | exoid, |
int | num_nodesets, | ||
int | num_nset_var, | ||
int * | nset_var_tab | ||
) |
reads the EXODUS II nodeset variable truth table from the database
int ex_get_num_map | ( | int | exoid, |
ex_entity_type | map_type, | ||
ex_entity_id | map_id, | ||
void_int * | map | ||
) |
int ex_get_num_props | ( | int | exoid, |
ex_entity_type | obj_type | ||
) |
int ex_get_object_truth_vector | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | entity_id, | ||
int | num_var, | ||
int * | var_vec | ||
) |
reads the EXODUS II specified variable truth vector from the database
int ex_get_one_attr | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
int | attrib_index, | ||
void * | attrib | ||
) |
int ex_get_one_elem_attr | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
int | attrib_index, | ||
void * | attrib | ||
) |
reads the attributes for an element block
int ex_get_partial_elem_map | ( | int | exoid, |
ex_entity_id | map_id, | ||
int64_t | ent_start, | ||
int64_t | ent_count, | ||
void_int * | elem_map | ||
) |
int ex_get_partial_num_map | ( | int | exoid, |
ex_entity_type | map_type, | ||
ex_entity_id | map_id, | ||
int64_t | ent_start, | ||
int64_t | ent_count, | ||
void_int * | elem_map | ||
) |
int ex_get_processor_elem_maps | ( | int | exoid, |
void_int * | elem_mapi, | ||
void_int * | elem_mapb, | ||
int | processor | ||
) |
int ex_get_processor_node_maps | ( | int | exoid, |
void_int * | node_mapi, | ||
void_int * | node_mapb, | ||
void_int * | node_mape, | ||
int | processor | ||
) |
int ex_get_prop | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
const char * | prop_name, | ||
void_int * | value | ||
) |
The function ex_get_prop() reads an integer object property value stored for a single element block, node set, or side set.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Type of object; use one of the options in the table below. |
[in] | obj_id | The element block, node set, or side set ID. |
[in] | prop_name | The name of the property (maximum length is MAX_STR_LENGTH ) for which the value is desired. |
[out] | value | Returned value of the property. |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
EX_ELEM_MAP | Element Map entity type |
EX_NODE_MAP | Node Map entity type |
EX_EDGE_MAP | Edge Map entity type |
EX_FACE_MAP | Face Map entity type |
For an example of code to read an object property, refer to the description for ex_get_prop_names().
int ex_get_prop_array | ( | int | exoid, |
ex_entity_type | obj_type, | ||
const char * | prop_name, | ||
void_int * | values | ||
) |
The function ex_get_prop_array() reads an array of integer property values for all element blocks, node sets, or side sets. The order of the values in the array correspond to the order in which the element blocks, node sets, or side sets were introduced into the file. Before this function is invoked, memory must be allocated for the returned array of(num_elem_blk
, num_node_sets
, or {num_side_sets}) integer values.
This function can be used in place of
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Type of object; use one of the options in the table below. |
[in] | prop_name | The name of the property (maximum length of MAX_STR_LENGTH ) for which the values are desired. |
[out] | values | Returned array of property values. |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
EX_ELEM_MAP | Element Map entity type |
EX_NODE_MAP | Node Map entity type |
EX_EDGE_MAP | Edge Map entity type |
EX_FACE_MAP | Face Map entity type |
For an example of code to read an array of object properties, refer to the description for ex_get_prop_names().
int ex_get_prop_names | ( | int | exoid, |
ex_entity_type | obj_type, | ||
char ** | prop_names | ||
) |
The function ex_get_prop_names() returns names of integer properties stored for an element block, node set, or side set. The number of properties (needed to allocate space for the property names) can be obtained via a call to ex_inquire() or ex_inquire_int().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Type of object; use one of the options in the table below. |
[out] | prop_names | Returned array containing num_props (obtained from call to ex_inquire() or ex_inquire_int()) names (of maximum length MAX_STR_LENGTH ) of properties to be stored. ID, a reserved property name, will be the first name in the array. |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
EX_ELEM_MAP | Element Map entity type |
EX_NODE_MAP | Node Map entity type |
EX_EDGE_MAP | Edge Map entity type |
EX_FACE_MAP | Face Map entity type |
As an example, the following code segment reads in properties assigned to node sets:
#include "exodusII.h"; int error, exoid, num_props, *prop_values; char *prop_names[MAX_PROPS]; \comment{read node set properties} num_props = ex_inquire_int(exoid, EX_INQ_NS_PROP); for (i=0; i < num_props; i++) { prop_names[i] = (char *) malloc ((MAX_STR_LENGTH+1), sizeof(char)); prop_values = (int *) malloc (num_node_sets, sizeof(int)); } error = ex_get_prop_names(exoid,EX_NODE_SET,prop_names); for (i=0; i < num_props; i++) { error = ex_get_prop_array(exoid, EX_NODE_SET, prop_names[i], prop_values); }
int ex_get_qa | ( | int | exoid, |
char * | qa_record[][4] | ||
) |
The function ex_get_qa() reads the QA records from the database. Each QA record contains four MAX_STR_LENGTH-byte
character strings. The character strings are:
Memory must be allocated for the QA records before this call is made. The number of QA records can be determined by invoking ex_inquire().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[out] | qa_record | Returned array containing the QA records. |
The following will determine the number of QA records and read them from the open exodus file:
#include "exodusII.h" int num_qa_rec, error, exoid char *qa_record[MAX_QA_REC][4]; \comment{read QA records} num_qa_rec = ex_inquire_int(exoid, EX_INQ_QA); for (i=0; i<num_qa_rec; i++) { for (j=0; j<4; j++) qa_record[i][j] = (char *) calloc ((MAX_STR_LENGTH+1), sizeof(char)); } error = ex_get_qa (exoid, qa_record);
int ex_get_set | ( | int | exoid, |
ex_entity_type | set_type, | ||
ex_entity_id | set_id, | ||
void_int * | set_entry_list, | ||
void_int * | set_extra_list | ||
) |
reads the set entry list and set extra list for a single set
int ex_get_set_dist_fact | ( | int | exoid, |
ex_entity_type | set_type, | ||
ex_entity_id | set_id, | ||
void * | set_dist_fact | ||
) |
reads the distribution factors for a single set
int ex_get_set_param | ( | int | exoid, |
ex_entity_type | set_type, | ||
ex_entity_id | set_id, | ||
void_int * | num_entry_in_set, | ||
void_int * | num_dist_fact_in_set | ||
) |
int ex_get_sets | ( | int | exoid, |
size_t | set_count, | ||
struct ex_set * | sets | ||
) |
int ex_get_side_set | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
void_int * | side_set_elem_list, | ||
void_int * | side_set_side_list | ||
) |
reads the side set element list and side set side list for a single side set
int ex_get_side_set_dist_fact | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
void * | side_set_dist_fact | ||
) |
reads the distribution factors for a single side set
int ex_get_side_set_ids | ( | int | exoid, |
void_int * | ids | ||
) |
reads the side set ids from the database
int ex_get_side_set_node_count | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
int * | side_set_node_cnt_list | ||
) |
int ex_get_side_set_node_list | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
void_int * | side_set_node_cnt_list, | ||
void_int * | side_set_node_list | ||
) |
int ex_get_side_set_node_list_len | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
void_int * | side_set_node_list_len | ||
) |
This routine is designed to read the Exodus II V 2.0 side set side definition and return the length of a ExodusI style side set node list.
exoid | exodus file id | |
side_set_id | side set id | |
[out] | *side_set_node_list_len | length of node list |
int ex_get_side_set_param | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
void_int * | num_side_in_set, | ||
void_int * | num_dist_fact_in_set | ||
) |
reads the number of sides and the number of distribution factors which describe a single side set
exoid | exodus file id | |
side_set_id | side set id | |
[out] | num_side_in_set | number of sides in the side set |
[out] | num_dist_fact_in_set | number of distribution factors in the |
int ex_get_ss_param_global | ( | int | exoid, |
void_int * | ss_ids_glob, | ||
void_int * | ss_s_cnt_glob, | ||
void_int * | ss_df_cnt_glob | ||
) |
int ex_get_sset_var | ( | int | exoid, |
int | time_step, | ||
int | sset_var_index, | ||
ex_entity_id | sset_id, | ||
int64_t | num_side_this_sset, | ||
void * | sset_var_vals | ||
) |
reads the values of a single sideset variable for one sideset at one time step in the database; assume the first time step and sideset variable index is 1
int ex_get_sset_var_tab | ( | int | exoid, |
int | num_sidesets, | ||
int | num_sset_var, | ||
int * | sset_var_tab | ||
) |
reads the EXODUS II sideset variable truth table from the database
int ex_get_time | ( | int | exoid, |
int | time_step, | ||
void * | time_value | ||
) |
The function ex_get_time() reads the time value for a specified time step.
Because time values are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | time_step | The time step number. This is essentially an index (in the time dimension) into the global, nodal, and element variables arrays stored in the database. The first time step is 1. |
[out] | time_value | Returned time at the specified time step. |
As an example, the following coding will read the time value stored in the data file for time step n:
int n, error, exoid; float time_value; \comment{read time value at time step 3} n = 3; error = ex_get_time (exoid, n, &time_value);
int ex_get_truth_table | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | num_blk, | ||
int | num_var, | ||
int * | var_tab | ||
) |
reads the EXODUS II specified variable truth table from the database
int ex_get_var | ( | int | exoid, |
int | time_step, | ||
ex_entity_type | var_type, | ||
int | var_index, | ||
ex_entity_id | obj_id, | ||
int64_t | num_entry_this_obj, | ||
void * | var_vals | ||
) |
int ex_get_var_name | ( | int | exoid, |
const char * | var_type, | ||
int | var_num, | ||
char * | var_name | ||
) |
reads the name of a particular results variable from the database
int ex_get_var_names | ( | int | exoid, |
const char * | var_type, | ||
int | num_vars, | ||
char * | var_names[] | ||
) |
reads the names of the results variables from the database
int ex_get_var_param | ( | int | exoid, |
const char * | var_type, | ||
int * | num_vars | ||
) |
reads the number of global, nodal, or element variables that are stored in the database
int ex_get_var_tab | ( | int | exoid, |
const char * | var_type, | ||
int | num_blk, | ||
int | num_var, | ||
int * | var_tab | ||
) |
reads the EXODUS II specified variable truth table from the database
int ex_get_var_time | ( | int | exoid, |
ex_entity_type | var_type, | ||
int | var_index, | ||
int64_t | id, | ||
int | beg_time_step, | ||
int | end_time_step, | ||
void * | var_vals | ||
) |
int ex_get_variable_name | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | var_num, | ||
char * | var_name | ||
) |
reads the name of a particular results variable from the database
int ex_get_variable_names | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | num_vars, | ||
char * | var_names[] | ||
) |
The function ex_get_variable_names() reads the names of the results variables from the database. Memory must be allocated for the name array before this function is invoked. The names are MAX_STR_LENGTH-characters
in length.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Variable indicating the type of variable which is described. Use one of the options in the table below. |
[in] | num_vars | The number of var_type variables that will be read from the database. |
[out] | var_names | Returned array of pointers to num_vars variable names. |
EX_GLOBAL} | Global entity type |
EX_NODAL} | Nodal entity type |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
As an example, the following code segment will read the names of the nodal variables stored in the data file:
#include "exodusII.h" int error, exoid, num_nod_vars; char *var_names[10]; \comment{read nodal variables parameters and names} error = ex_get_variable_param(exoid, EX_NODAL, &num_nod_vars); for (i=0; i < num_nod_vars; i++) { var_names[i] = (char *) calloc ((MAX_STR_LENGTH+1), sizeof(char)); } error = ex_get_variable_names(exoid, EX_NODAL, num_nod_vars, var_names);
int ex_get_variable_param | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int * | num_vars | ||
) |
The function ex_get_variable_param() reads the number of global, nodal, or element variables stored in the database.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Variable indicating the type of variable which is described. Use one of the options in the table below. |
[out] | num_vars | Returned number of var_type variables that are stored in the database. |
EX_GLOBAL} | Global entity type |
EX_NODAL} | Nodal entity type |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
As an example, the following coding will determine the number of global variables stored in the data file:
int num_glo_vars, error, exoid; \comment{read global variables parameters} error = ex_get_variable_param(exoid, EX_GLOBAL, &num_glo_vars);
size_t ex_header_size | ( | int | exoid | ) |
int ex_inquire | ( | int | exoid, |
int | req_info, | ||
void_int * | ret_int, | ||
float * | ret_float, | ||
char * | ret_char | ||
) |
The function ex_inquire() is used to inquire values of certain data entities in an exodus file. Memory must be allocated for the returned values before this function is invoked.query database.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | req_info | A flag which designates what information is requested. It must be one of the following constants in the table below. |
[out] | ret_int | Returned integer, if an integer value is requested (according to req_info ); otherwise, supply a dummy argument. |
[out] | ret_float | Returned float, if a float value is requested (according to req_info ); otherwise, supply a dummy argument. This argument is always a float even if the database IO and/or CPU word size is a double. |
[out] | ret_char | Returned character string, if a character value is requested (according to req_info ); otherwise, supply a dummy argument. |
EX_INQ_API_VERS | The exodus API version number is returned in |
EX_INQ_DB_VERS | The exodus database version number is returned in |
EX_INQ_LIB_VERS | The exodus library version number is returned in |
EX_INQ_TITLE | The title stored in the database is returned in |
EX_INQ_DIM | The dimensionality, or number of coordinates per node (1, 2 or 3), of the database is returned in |
EX_INQ_NODES | The number of nodes is returned in |
EX_INQ_ELEM | The number of elements is returned in |
EX_INQ_ELEM_BLK | The number of element blocks is returned in |
EX_INQ_NODE_SETS | The number of node sets is returned in |
EX_INQ_NS_NODE_LEN | The length of the concatenated node sets node list is returned in |
EX_INQ_NS_DF_LEN | The length of the concatenated node sets distribution list is returned in |
EX_INQ_SIDE_SETS | The number of side sets is returned in |
EX_INQ_SS_ELEM_LEN | The length of the concatenated side sets element list is returned in |
EX_INQ_SS_DF_LEN | The length of the concatenated side sets distribution factor list is returned in |
EX_INQ_SS_NODE_LEN | The aggregate length of all of the side sets node lists is returned in |
EX_INQ_EB_PROP | The number of integer properties stored for each element block is returned in |
EX_INQ_NS_PROP | The number of integer properties stored for each node set is returned in |
EX_INQ_SS_PROP | The number of integer properties stored for each side set is returned in |
EX_INQ_QA | The number of QA records is returned in |
EX_INQ_INFO | The number of information records is returned in |
EX_INQ_TIME | The number of time steps stored in the database is returned in |
EX_INQ_EDGE_BLK | The number of edge blocks is returned in |
EX_INQ_EDGE_MAP | The number of edge maps is returned in |
EX_INQ_EDGE_PROP | The number of properties stored per edge blockis returned in |
EX_INQ_EDGE_SETS | The number of edge sets is returned in |
EX_INQ_EDGE | The number of edges is returned in |
EX_INQ_FACE | The number of faces is returned in |
EX_INQ_EB_PROP | The number of element block properties is returned in |
EX_INQ_ELEM_MAP | The number of element maps is returned in |
EX_INQ_ELEM_SETS | The number of element sets is returned in |
EX_INQ_ELS_DF_LEN | The length of the concatenated element set distribution factor list is returned in |
EX_INQ_ELS_LEN | The length of the concatenated element set element list is returned in |
EX_INQ_ELS_PROP | The number of properties stored per elem set is returned in |
EX_INQ_EM_PROP | The number of element map properties is returned in |
EX_INQ_ES_DF_LEN | The length of the concatenated edge set distribution factor list is returned in |
EX_INQ_ES_LEN | The length of the concatenated edge set edge list is returned in |
EX_INQ_ES_PROP | The number of properties stored per edge set is returned in |
EX_INQ_FACE_BLK | The number of face blocks is returned in |
EX_INQ_FACE_MAP | The number of face maps is returned in |
EX_INQ_FACE_PROP | The number of properties stored per face block is returned in |
EX_INQ_FACE_SETS | The number of face sets is returned in |
EX_INQ_FS_DF_LEN | The length of the concatenated face set distribution factor list is returned in |
EX_INQ_FS_LEN | The length of the concatenated face set face list is returned in |
EX_INQ_FS_PROP | The number of properties stored per face set is returned in |
EX_INQ_NM_PROP | The number of node map properties is returned in |
EX_INQ_NODE_MAP | The number of node maps is returned in |
EX_INQ_COORD_FRAMES | The number of coordinate frames is returned in ret_int . |
As an example, the following will return the number of element block properties stored in the exodus file :
#include "exodusII.h" int error, exoid, num_props; float fdum; char *cdum; \comment{determine the number of element block properties} error = ex_inquire (exoid, EX_INQ_EB_PROP, &num_props, &fdum, cdum); ...Another way to get the same information num_props = ex_inquire_int(exoid, EX_INQ_EB_PROP);
int64_t ex_inquire_int | ( | int | exoid, |
int | inquiry | ||
) |
int ex_int64_status | ( | int | exoid | ) |
int ex_large_model | ( | int | exoid | ) |
Determine whether the new large model storage is being used in this file, or old method. Basically, the difference is whether the coordinates and nodal variables are stored in a blob (xyz components together) or as a variable per component per nodal_variable.
char* ex_name_of_object | ( | ex_entity_type | obj_type | ) |
int ex_open_int | ( | const char * | path, |
int | mode, | ||
int * | comp_ws, | ||
int * | io_ws, | ||
float * | version, | ||
int | my_version | ||
) |
void ex_opts | ( | int | options | ) |
The function ex_opts() is used to set message reporting options.
[in] | options | Integer option value. Current options are shown in the table below. |
EX_ABORT | Causes fatal errors to force program exit. (Default is false.) |
EX_DEBUG | Causes certain messages to print for debug use. (Default is false.) |
EX_VERBOSE | Causes all error messages to print when true, otherwise no error messages will print. (Default is false.) |
For example, the following will cause all messages to print and will cause the program to exit upon receipt of fatal error:
#include "exodusII.h" ex_opts(EX_ABORT|EX_VERBOSE);
int ex_put_all_var_param | ( | int | exoid, |
int | num_g, | ||
int | num_n, | ||
int | num_e, | ||
int * | elem_var_tab, | ||
int | num_m, | ||
int * | nset_var_tab, | ||
int | num_s, | ||
int * | sset_var_tab | ||
) |
defines the number of global, nodal, element, nodeset, and sideset variables that will be written to the database
exoid | exodus file id |
num_g | global variable count |
num_n | nodal variable count |
num_e | element variable count |
*elem_var_tab | element variable truth table array |
num_m | nodeset variable count |
*nset_var_tab | nodeset variable truth table array |
num_s | sideset variable count |
*sset_var_tab | sideset variable truth table array |
int ex_put_all_var_param_ext | ( | int | exoid, |
const ex_var_params * | vp | ||
) |
writes the number of global, nodal, element, nodeset, and sideset variables that will be written to the database
exoid | exodus file id |
*vp | pointer to variable parameter info |
int ex_put_attr | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
const void * | attrib | ||
) |
writes the attributes for an edge/face/element block
exoid | exodus file id |
blk_type | block type |
blk_id | block id |
attrib | array of attributes |
int ex_put_attr_names | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
char ** | names | ||
) |
int ex_put_attr_param | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
int | num_attrs | ||
) |
defines the number of attributes.
exoid | exodus file id |
obj_type | block/set type (node, edge, face, elem) |
obj_id | block/set id (ignored for NODAL) |
num_attrs | number of attributes |
int ex_put_block | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
const char * | entry_descrip, | ||
int64_t | num_entries_this_blk, | ||
int64_t | num_nodes_per_entry, | ||
int64_t | num_edges_per_entry, | ||
int64_t | num_faces_per_entry, | ||
int64_t | num_attr_per_entry | ||
) |
writes the parameters used to describe an element/face/edge block
exoid | exodus file id |
blk_type | type of block (edge, face, or element) |
blk_id | block identifer |
entry_descrip | string describing shape of entries in the block |
num_entries_this_blk | number of entries(records) in the block |
num_nodes_per_entry | number of nodes per block entry |
num_edges_per_entry | number of edges per block entry |
num_faces_per_entry | number of faces per block entry |
num_attr_per_entry | number of attributes per block entry |
int ex_put_block_param | ( | int | exoid, |
const ex_block | block | ||
) |
writes the parameters used to describe an element/face/edge block
exoid | exodus file id |
block | ex_block structure describing block counts |
int ex_put_cmap_params | ( | int | exoid, |
void_int * | node_map_ids, | ||
void_int * | node_map_node_cnts, | ||
void_int * | elem_map_ids, | ||
void_int * | elem_map_elem_cnts, | ||
int64_t | processor | ||
) |
int ex_put_cmap_params_cc | ( | int | exoid, |
void_int * | node_map_ids, | ||
void_int * | node_map_node_cnts, | ||
void_int * | node_proc_ptrs, | ||
void_int * | elem_map_ids, | ||
void_int * | elem_map_elem_cnts, | ||
void_int * | elem_proc_ptrs | ||
) |
int ex_put_concat_all_blocks | ( | int | exoid, |
const ex_block_params * | param | ||
) |
writes the parameters used to describe all element, edge, and face blocks
exoid | exodus file id |
param | block parameters structure |
int ex_put_concat_elem_block | ( | int | exoid, |
const void_int * | elem_blk_id, | ||
char * | elem_type[], | ||
const void_int * | num_elem_this_blk, | ||
const void_int * | num_nodes_per_elem, | ||
const void_int * | num_attr_this_blk, | ||
int | define_maps | ||
) |
writes the parameters used to describe an element block
exoid | exodus file id |
elem_blk_id | element block id |
elem_type | element type string |
num_elem_this_blk | number of elements in the element blk |
num_nodes_per_elem | number of nodes per element block |
num_attr_this_blk | number of attributes |
define_maps | if != 0, write maps, else don't |
int ex_put_concat_node_sets | ( | int | exoid, |
void_int * | node_set_ids, | ||
void_int * | num_nodes_per_set, | ||
void_int * | num_dist_per_set, | ||
void_int * | node_sets_node_index, | ||
void_int * | node_sets_df_index, | ||
void_int * | node_sets_node_list, | ||
void * | node_sets_dist_fact | ||
) |
The function ex_put_concat_node_sets() writes the node set ID's, node sets node count array, node sets distribution factor count array, node sets node list pointers array, node sets distribution factor pointer, node set node list, and node set distribution factors for all of the node sets. ``Concatenated node sets'' refers to the arrays required to define all of the node sets (ID array, counts arrays, pointers arrays, node list array, and distribution factors array) as described in Section 3.10 on page 11. Writing concatenated node sets is more efficient than writing individual node sets. See #Efficiency for a discussion of efficiency issues.
Because the distribution factors are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | node_set_ids | Array containing the node set ID for each set. |
[in] | num_nodes_per_set | Array containing the number of nodes for each set. |
[in] | num_dist_per_set | Array containing the number of distribution factors for each set. |
[in] | node_sets_node_index | Array containing the indices into the node_set_node_list which are the locations of the first node for each set. These indices are 0-based. Pass NULL for remaining parameters to just set the nodeset parameters and not output nodeset data. |
[in] | node_sets_df_index | Array containing the indices into the node_set_dist_list which are the locations of the first distribution factor for each set. These indices are 0-based. |
[in] | node_sets_node_list | Array containing the nodes for all sets. Internal node IDs are used in this list (See Section LocalNodeIds). |
[in] | node_sets_dist_fact | Array containing the distribution factors for all sets. |
For example, the following code will write out two node sets in a concatenated format:
int ids[2], num_nodes_per_set[2], node_ind[2], node_list[8], num_df_per_set[2], df_ind[2], error, exoid; float dist_fact[8]; ids[0] = 20; ids[1] = 21; num_nodes_per_set[0] = 5; num_nodes_per_set[1] = 3; node_ind[0] = 0; node_ind[1] = 5; node_list[0] = 100; node_list[1] = 101; node_list[2] = 102; node_list[3] = 103; node_list[4] = 104; node_list[5] = 200; node_list[6] = 201; node_list[7] = 202; num_df_per_set[0] = 5; num_df_per_set[1] = 3; df_ind[0] = 0; df_ind[1] = 5; dist_fact[0] = 1.0; dist_fact[1] = 2.0; dist_fact[2] = 3.0; dist_fact[3] = 4.0; dist_fact[4] = 5.0; dist_fact[5] = 1.1; dist_fact[6] = 2.1; dist_fact[7] = 3.1; error = ex_put_concat_node_sets (exoid, ids, num_nodes_per_set, num_df_per_set, node_ind, df_ind, node_list, dist_fact);
int ex_put_concat_sets | ( | int | exoid, |
ex_entity_type | set_type, | ||
const struct ex_set_specs * | set_specs | ||
) |
writes the set ID's, set entry count array, set entry pointers array, set entry list, set extra list, and distribution factors list for all the sets of the specified type.
exoid | exodus file id |
set_type | type of set |
set_specs | set specs structure |
int ex_put_concat_side_sets | ( | int | exoid, |
void_int * | side_set_ids, | ||
void_int * | num_elem_per_set, | ||
void_int * | num_dist_per_set, | ||
void_int * | side_sets_elem_index, | ||
void_int * | side_sets_dist_index, | ||
void_int * | side_sets_elem_list, | ||
void_int * | side_sets_side_list, | ||
void * | side_sets_dist_fact | ||
) |
writes the side set ID's, side set element count array, side set element pointers array, side set element list, side set side list, and distribution factors list.
exoid | exodus file id |
side_set_ids | array of side set ids |
num_elem_per_set | number of elements/sides/faces per set |
num_dist_per_set | number of distribution factors per set |
side_sets_elem_index | index array of elements into elem list |
side_sets_dist_index | index array of df into df list |
side_sets_elem_list | array of elements |
side_sets_side_list | array of sides/faces |
side_sets_dist_fact | array of distribution factors |
int ex_put_concat_var_param | ( | int | exoid, |
int | num_g, | ||
int | num_n, | ||
int | num_e, | ||
int | num_elem_blk, | ||
int * | elem_var_tab | ||
) |
writes the number of global, nodal, and element variables that will be written to the database
exoid | int exodus file id |
num_g | int global variable count |
num_n | int nodal variable count |
num_e | int element variable count |
num_elem_blk | int number of element blocks |
elem_var_tab | int* element variable truth table array |
int ex_put_conn | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
const void_int * | node_conn, | ||
const void_int * | elem_edge_conn, | ||
const void_int * | elem_face_conn | ||
) |
writes the connectivity array for a block
exoid | exodus file id |
blk_type | type of block |
blk_id | id of block |
node_conn | node-element connectivity |
elem_edge_conn | element-edge connectivity (NULL if none) |
elem_face_conn | element-face connectivity (NULL if none) |
int ex_put_coord | ( | int | exoid, |
const void * | x_coor, | ||
const void * | y_coor, | ||
const void * | z_coor | ||
) |
The function ex_put_coord() writes the nodal coordinates of the nodes in the model. The function ex_put_init() must be invoked before this call is made.
Because the coordinates are floating point values, the application code must declare the arrays passed to be the appropriate type (float or double) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | x_coor | The X-coordinates of the nodes. If this is NULL , the X-coordinates will not be written. |
[in] | y_coor | The Y-coordinates of the nodes. These are stored only if num_dim > 1; otherwise, pass in NULL . If this is NULL , the Y-coordinates will not be written. |
[in] | z_coor | The Z-coordinates of the nodes. These are stored only if num_dim > 2; otherwise, pass in NULL . If this is NULL , the Z-coordinates will not be written. |
The following will write the nodal coordinates to an open exodus file :
int error, exoid; // \comment{if file opened with compute word size of sizeof(float)} float x[8], y[8], z[8]; // \comment{write nodal coordinates values to database} x[0] = 0.0; y[0] = 0.0; z[0] = 0.0; x[1] = 0.0; y[1] = 0.0; z[1] = 1.0; x[2] = 1.0; y[2] = 0.0; z[2] = 1.0; x[3] = 1.0; y[3] = 0.0; z[3] = 0.0; x[4] = 0.0; y[4] = 1.0; z[4] = 0.0; x[5] = 0.0; y[5] = 1.0; z[5] = 1.0; x[6] = 1.0; y[6] = 1.0; z[6] = 1.0; x[7] = 1.0; y[7] = 1.0; z[7] = 0.0; error = ex_put_coord(exoid, x, y, z); // \comment{Do the same as the previous call in three separate calls} error = ex_put_coord(exoid, x, NULL, NULL); error = ex_put_coord(exoid, NULL, y, NULL); error = ex_put_coord(exoid, NULL, NULL, z);
int ex_put_coord_names | ( | int | exoid, |
char * | coord_names[] | ||
) |
The function ex_put_coord_names() writes the names (MAX_STR_LENGTH-characters
in length) of the coordinate arrays to the database. Memory must be allocated for the character strings before this function is invoked.
In case of an error, ex_put_coord_names() returns a negative number; a warning will return a positive number. Possible causes of errors include:
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | coord_names | Array containing num_dim names of length MAX_STR_LENGTH of the nodal coordinate arrays. |
The following coding will write the coordinate names to an open exodus file :
int error, exoid; char *coord_names[3]; coord_names[0] = "xcoor"; coord_names[1] = "ycoor"; coord_names[2] = "zcoor"; error = ex_put_coord_names (exoid, coord_names);
int ex_put_coordinate_frames | ( | int | exoid, |
int | nframes, | ||
const void_int * | cf_ids, | ||
void * | pt_coordinates, | ||
const char * | tags | ||
) |
int ex_put_eb_info_global | ( | int | exoid, |
void_int * | el_blk_ids, | ||
void_int * | el_blk_cnts | ||
) |
int ex_put_elem_attr | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
const void * | attrib | ||
) |
The function ex_put_elem_attr() writes the attributes for an element block. Each element in the element block must have the same number of attributes, so there are(num_attr
x num_elem_this_blk
) attributes for each element block. The function ex_put_elem_block() must be invoked before this call is made.
Because the attributes are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_blk_id | The element block ID. |
[in] | attrib | Size [num_elem_this_blk*num_attr] The list of attributes for the element block. The num_attr index cycles faster. |
Refer to the code example in ex_put_elem_block() for an example of writing the attributes array for an element block.
int ex_put_elem_attr_names | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
char * | names[] | ||
) |
writes the attribute names for an element block
exoid | exodus file id |
elem_blk_id | element block id |
names[] | ptr array of attribute names |
int ex_put_elem_block | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
const char * | elem_type, | ||
int64_t | num_elem_this_blk, | ||
int64_t | num_nodes_per_elem, | ||
int64_t | num_attr_per_elem | ||
) |
The function ex_put_elem_block() writes the parameters used to describe an element block.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_blk_id | The element block ID. |
[in] | elem_type | The type of elements in the element block. The maximum length of this string is MAX_STR_LENGTH . |
[in] | num_elem_this_blk | The number of elements in the element block. |
[in] | num_nodes_per_elem | The number of nodes per element in the element block. |
[in] | num_attr_per_elem | The number of attributes per element in the element block. |
For example, the following code segment will initialize an element block with an ID of 10, write out the connectivity array, and write out the element attributes array:
int id, error, exoid, num_elem_in_blk, num_nodes_per_elem, *connect, num_attr; float *attrib; \comment{write element block parameters} id = 10; num_elem_in_blk = 2; num_nodes_per_elem = 4; \comment{elements are 4-node shells} num_attr = 1; \comment{one attribute per element} error = ex_put_elem_block(exoid, id, "SHELL", num_elem_in_blk, num_nodes_per_elem, num_attr); \comment{write element connectivity} connect = (int *)calloc(num_elem_in_blk*num_nodes_per_elem, sizeof(int)); \comment{fill connect with node numbers; nodes for first elemen} connect[0] = 1; connect[1] = 2; connect[2] = 3; connect[3] = 4; \comment{nodes for second element} connect[4] = 5; connect[5] = 6; connect[6] = 7; connect[7] = 8; error = ex_put_elem_conn (exoid, id, connect); \comment{write element block attributes} attrib = (float *) calloc (num_attr*num_elem_in_blk, sizeof(float)); for (i=0, cnt=0; i < num_elem_in_blk; i++) { for (j=0; j < num_attr; j++, cnt++) { attrib[cnt] = 1.0; } } error = ex_put_elem_attr (exoid, id, attrib); \comment{Same result using non-deprecated code} error = ex_put_block(exoid, EX_ELEM_BLOCK, id, "SHELL", num_elem_in_blk, num_nodes_per_elem, 0, 0, num_attr); error = ex_put_conn (exoid, EX_ELEM_BLOCK, id, connect); error = ex_put_attr (exoid, EX_ELEM_BLOCK, id, attrib);
int ex_put_elem_cmap | ( | int | exoid, |
ex_entity_id | map_id, | ||
void_int * | elem_ids, | ||
void_int * | side_ids, | ||
void_int * | proc_ids, | ||
int | processor | ||
) |
int ex_put_elem_conn | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
const void_int * | connect | ||
) |
The function ex_put_elem_conn() writes the connectivity array for an element block. The function ex_put_elem_block() must be invoked before this call is made.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_blk_id | The element block ID. |
[in] | connect | Size [num_elem_this_blk,num_nodes_per_elem], The connectivity array; a list of nodes (internal node IDs; See Section LocalNodeIds) that define each element in the element block. The node index cycles faster than the element index. |
Refer to the code example in ex_put_elem_block() for an example of writing the connectivity array for an element block.
int ex_put_elem_map | ( | int | exoid, |
ex_entity_id | map_id, | ||
const void_int * | elem_map | ||
) |
writes an element map; this is a vector of integers of length number of elements
exoid | exodus file id |
map_id | element map id |
elem_map | element map |
int ex_put_elem_num_map | ( | int | exoid, |
const void_int * | elem_map | ||
) |
The function ex_put_elem_num_map() writes out the optional element number map to the database. See Section LocalElementIds for a description of the element number map. The function ex_put_init() must be invoked before this call is made.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_map | The element number map. |
The following code generates a default element number map and outputs it to an open exodus file. This is a trivial case and included just for illustration. Since this map is optional, it should be written out only if it contains something other than the default map.
int error, exoid; int *elem_map = (int *)calloc(num_elem, sizeof(int)); for (i=1; i <= num_elem; i++) elem_map[i-1] = i; error = ex_put_elem_num_map(exoid, elem_map); \comment{Equivalent using non-deprecated function} error = ex_put_id_map(exoid, EX_ELEM_MAP, elem_map);
int ex_put_elem_var | ( | int | exoid, |
int | time_step, | ||
int | elem_var_index, | ||
ex_entity_id | elem_blk_id, | ||
int64_t | num_elem_this_blk, | ||
const void * | elem_var_vals | ||
) |
The function ex_put_elem_var() writes the values of a single element variable for one element block at one time step. It is recommended, but not required, to write the element variable truth table (with ex_put_elem_var_tab() before this function is invoked for better efficiency. See #Efficiency for a discussion of efficiency issues.
Because element variables are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | time_step | The time step number, as described under ex_put_time(). This is essentially a counter that is incremented only when results variables are output. The first time step is 1. |
[in] | elem_var_index | The index of the element variable. The first variable has an index of 1. |
[in] | elem_blk_id | The element block ID. |
[in] | num_elem_this_blk | The number of elements in the given element block. |
[in] | elem_var_vals | Array of num_elem_this_blk values of the elem_var_index-th element variable for the element block with ID of elem_blk_id at the time_step-th time step. |
The following coding will write out all of the element variables for a single time step n
to an open exodus file :
int num_ele_vars, num_elem_blk, *num_elem_in_block,error, exoid, n, *ebids; float *elem_var_vals; \comment{write element variables} for (k=1; k <= num_ele_vars; k++) { for (j=0; j < num_elem_blk; j++) { elem_var_vals = (float *) calloc(num_elem_in_block[j], sizeof(float)); for (m=0; m < num_elem_in_block[j]; m++) { \comment{simulation code fills this in} elem_var_vals[m] = 10.0; } error = ex_put_elem_var (exoid, n, k, ebids[j], num_elem_in_block[j], elem_var_vals); \comment {Using non-deprecated function:} error = ex_put_var (exoid, n, EX_ELEM_BLOCK, k, ebids[j], num_elem_in_block[j], elem_var_vals); free (elem_var_vals); } }
int ex_put_elem_var_slab | ( | int | exoid, |
int | time_step, | ||
int | elem_var_index, | ||
ex_entity_id | elem_blk_id, | ||
int64_t | start_pos, | ||
int64_t | num_vals, | ||
void * | elem_var_vals | ||
) |
int ex_put_elem_var_tab | ( | int | exoid, |
int | num_elem_blk, | ||
int | num_elem_var, | ||
int * | elem_var_tab | ||
) |
The function ex_put_elem_var_tab() writes the exodus element variable truth table to the database. The element variable truth table indicates whether a particular element result is written for the elements in a particular element block. A 0 (zero) entry indicates that no results will be output for that element variable for that element block. A non-zero entry indicates that the appropriate results will be output.
Although writing the element variable truth table is optional, it is encouraged because it creates at one time all the necessary
{NetCDF} variables in which to hold the exodus element variable values. This results in significant time savings. See Section #Efficiency for a discussion of efficiency issues. The function ex_put_variable_param() must be called before this routine in order to define the number of element variables. \return In case of an error, ex_put_elem_var_tab() returns a negative number; a warning will return a positive number. Possible causes of errors include: - data file not properly opened with call to ex_create() or ex_open() - data file opened for read only. - data file not initialized properly with call to ex_put_init(). - the specified number of element blocks is different than the number specified in a call to ex_put_init(). - ex_put_elem_block() not called previously to specify element block parameters. - ex_put_variable_param() not called previously to specify the number of element variables or was called but with a different number of element variables. - ex_put_elem_var() previously called. \param[in] exoid exodus file ID returned from a previous call to ex_create() or ex_open(). \param[in] num_elem_blk The number of element blocks. \param[in] num_elem_var The number of element variables. \param[in] elem_var_tab Size [num_elem_blk,num_elem_var]. A 2-dimensional array (with the \c num_elem_var index cycling faster) containing the element variable truth table. The following coding will create, populate, and write an element variable truth table to an opened exodus file (NOTE: all element variables are valid for all element blocks in this example.): \code int *truth_tab, num_elem_blk, num_ele_vars, error, exoid; \comment{write element variable truth table} truth_tab = (int *)calloc((num_elem_blk*num_ele_vars), sizeof(int)); for (i=0, k=0; i < num_elem_blk; i++) { for (j=0; j < num_ele_vars; j++) { truth_tab[k++] = 1; } } error = ex_put_elem_var_tab(exoid, num_elem_blk, num_ele_vars, truth_tab);
int ex_put_entity_count_per_polyhedra | ( | int | exoid, |
ex_entity_type | blk_type, | ||
ex_entity_id | blk_id, | ||
const int * | entity_counts | ||
) |
writes out the number of entities (nodes/faces) per polyhedra (nsided/nfaced) in this element block to the database.
exoid | exodus file id |
blk_type | type of block (face, or element) |
blk_id | block identifer |
entity_counts | entity_per_polyhedra count array |
int ex_put_glob_vars | ( | int | exoid, |
int | time_step, | ||
int | num_glob_vars, | ||
const void * | glob_var_vals | ||
) |
The function ex_put_glob_vars() writes the values of all the global variables for a single time step. The function ex_put_variable_param() must be invoked before this call is made.
Because global variables are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | time_step | The time step number, as described under ex_put_time(). This is essentially a counter that is incremented when results variables are output. The first time step is 1. |
[in] | num_glob_vars | The number of global variables to be written to the database. |
[in] | glob_var_vals | Array of num_glob_vars global variable values for the time_step-th time step. |
As an example, the following coding will write the values of all the global variables at one time step to an open exodus II file:
int num_glo_vars, error, exoid, time_step; float *glob_var_vals \comment{write global variables} for (j=0; j < num_glo_vars; j++) { \comment{application code fills this array} glob_var_vals[j] = 10.0; } error = ex_put_glob_vars (exoid, time_step, num_glo_vars, glob_var_vals); \comment{Using non-deprecated functions:} error = ex_put_var (exoid, time_step, EX_GLOBAL, 1, 0, num_glo_vars, glob_var_vals);
int ex_put_id_map | ( | int | exoid, |
ex_entity_type | map_type, | ||
const void_int * | map | ||
) |
writes out the entity numbering map to the database; this allows the entity numbers to be non-contiguous. This map is used for mapping between local and global entity ids.
exoid | exodus file id |
map_type | |
map | element numbering map array |
int ex_put_info | ( | int | exoid, |
int | num_info, | ||
char * | info[] | ||
) |
The function ex_put_info() writes information records to the database. The records are MAX_LINE_LENGTH-character
strings.
In case of an error, ex_put_info() returns a negative number; a warning will return a positive number. Possible causes of errors include:
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | num_info | The number of information records. |
[in] | info | Array containing the information records. |
The following code will write out three information records to an open exodus file -
#include "exodusII.h" int error, exoid, num_info; char *info[3]; \comment{write information records} num_info = 3; info[0] = "This is the first information record."; info[1] = "This is the second information record."; info[2] = "This is the third information record."; error = ex_put_info(exoid, num_info, info);
int ex_put_init | ( | int | exoid, |
const char * | title, | ||
int64_t | num_dim, | ||
int64_t | num_nodes, | ||
int64_t | num_elem, | ||
int64_t | num_elem_blk, | ||
int64_t | num_node_sets, | ||
int64_t | num_side_sets | ||
) |
The function ex_put_init() writes the initialization parameters to the exodus file. This function must be called once (and only once) before writing any data to the file.
exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
title | Database title. Maximum length is MAX_LINE_LENGTH . |
num_dim | The dimensionality of the database. This is the number of coordinates per node. |
num_nodes | The number of nodal points. |
num_elem | The number of elements. |
num_elem_blk | The number of element blocks. |
num_node_sets | The number of node sets. |
num_side_sets | The number of side sets. |
The following code segment will initialize an open exodus file with the specified parameters:
int num_dim, num_nods, num_el, num_el_blk, num_ns, num_ss, error, exoid; \comment{initialize file with parameters} num_dim = 3; num_nods = 46; num_el = 5; num_el_blk = 5; num_ns = 2; num_ss = 5; error = ex_put_init (exoid, "This is the title", num_dim, num_nods, num_el,num_el_blk, num_ns, num_ss);
int ex_put_init_ext | ( | int | exoid, |
const ex_init_params * | model | ||
) |
writes the initialization parameters to the EXODUS II file
exoid | exodus file id |
model | finite element model parameters |
int ex_put_init_global | ( | int | exoid, |
int64_t | num_nodes_g, | ||
int64_t | num_elems_g, | ||
int64_t | num_elem_blks_g, | ||
int64_t | num_node_sets_g, | ||
int64_t | num_side_sets_g | ||
) |
int ex_put_init_info | ( | int | exoid, |
int | num_proc, | ||
int | num_proc_in_f, | ||
char * | ftype | ||
) |
int ex_put_loadbal_param | ( | int | exoid, |
int64_t | num_int_nodes, | ||
int64_t | num_bor_nodes, | ||
int64_t | num_ext_nodes, | ||
int64_t | num_int_elems, | ||
int64_t | num_bor_elems, | ||
int64_t | num_node_cmaps, | ||
int64_t | num_elem_cmaps, | ||
int | processor | ||
) |
int ex_put_loadbal_param_cc | ( | int | exoid, |
void_int * | num_int_nodes, | ||
void_int * | num_bor_nodes, | ||
void_int * | num_ext_nodes, | ||
void_int * | num_int_elems, | ||
void_int * | num_bor_elems, | ||
void_int * | num_node_cmaps, | ||
void_int * | num_elem_cmaps | ||
) |
int ex_put_map | ( | int | exoid, |
const void_int * | elem_map | ||
) |
The function ex_put_map() writes out the optional element order map to the database. See #ElementOrderMap for a description of the element order map. The function ex_put_init() must be invoked before this call is made.
In case of an error, ex_put_map() returns a negative number; a warning will return a positive number. Possible causes of errors include:
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | elem_map | The element order map. |
The following code generates a default element order map and outputs it to an open exodus file. This is a trivial case and included just for illustration. Since this map is optional, it should be written out only if it contains something other than the default map.
int error, exoid; int *elem_map = (int *)calloc(num_elem, sizeof(int)); for (i=0; i < num_elem; i++) { elem_map[i] = i+1; } error = ex_put_map(exoid, elem_map);
int ex_put_map_param | ( | int | exoid, |
int | num_node_maps, | ||
int | num_elem_maps | ||
) |
defines the number of node and element maps. It is more efficient to define both of these at the same time; however, they can be defined in separate calls by setting only one of the counts to a non-zero value. It is an error to redefine the number of node or element maps.
exoid | exodus file id |
num_node_maps | number of node maps |
num_elem_maps | number of element maps |
int ex_put_n_coord | ( | int | exoid, |
int64_t | start_node_num, | ||
int64_t | num_nodes, | ||
const void * | x_coor, | ||
const void * | y_coor, | ||
const void * | z_coor | ||
) |
writes the coordinates of some of the nodes in the model Only writes the 'non-null' arrays.
exoid | exodus file id |
start_node_num | the starting index (1-based) of the coordinates to be written |
num_nodes | the number of nodes to write coordinates for. |
x_coor | x coord array |
y_coor | y coord array |
z_coor | z coord array |
int ex_put_n_elem_attr | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
int64_t | start_elem_num, | ||
int64_t | num_elems, | ||
void * | attrib | ||
) |
int ex_put_n_elem_conn | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
int64_t | start_elem_num, | ||
int64_t | num_elems, | ||
const void_int * | connect | ||
) |
int ex_put_n_elem_num_map | ( | int | exoid, |
int64_t | start_ent, | ||
int64_t | num_ents, | ||
const void_int * | map | ||
) |
int ex_put_n_nodal_var | ( | int | exoid, |
int | time_step, | ||
int | nodal_var_index, | ||
int64_t | start_node, | ||
int64_t | num_nodes, | ||
const void * | nodal_var_vals | ||
) |
writes the values of a single nodal variable for a partial block at one single time step to the database; assume the first time step and nodal variable index is 1
exoid | exodus file id |
time_step | whole time step number |
nodal_var_index | index of desired nodal variable |
start_node | index of first node to write data for (1-based) |
num_nodes | number of nodal points |
nodal_var_vals | array of nodal variable values |
int ex_put_n_node_num_map | ( | int | exoid, |
int64_t | start_ent, | ||
int64_t | num_ents, | ||
const void_int * | map | ||
) |
int ex_put_n_node_set | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
int64_t | start_node_num, | ||
int64_t | num_node, | ||
const void_int * | node_set_node_list | ||
) |
int ex_put_n_node_set_df | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
int64_t | start_num, | ||
int64_t | num_df_to_get, | ||
void * | node_set_df | ||
) |
int ex_put_n_one_attr | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
int64_t | start_num, | ||
int64_t | num_ent, | ||
int | attrib_index, | ||
const void * | attrib | ||
) |
writes the specified attribute for a block
exoid | exodus file id |
obj_type | object type (edge, face, elem block) |
obj_id | object id (edge, face, elem block ID) |
start_num | the starting index of the attributes to be written |
num_ent | the number of entities to write attributes for. |
attrib_index | index of attribute to write |
attrib | array of attributes |
int ex_put_n_side_set | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
int64_t | start_side_num, | ||
int64_t | num_sides, | ||
const void_int * | side_set_elem_list, | ||
const void_int * | side_set_side_list | ||
) |
int ex_put_n_side_set_df | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
int64_t | start_num, | ||
int64_t | num_df_to_get, | ||
void * | side_set_df | ||
) |
int ex_put_n_var | ( | int | exoid, |
int | time_step, | ||
ex_entity_type | var_type, | ||
int | var_index, | ||
ex_entity_id | obj_id, | ||
int64_t | start_index, | ||
int64_t | num_entities, | ||
const void * | var_vals | ||
) |
writes the values of a single variable for a partial block at one time step to the database; assume the first time step and variable index are 1
exoid | exodus file id |
time_step | time step number |
var_type | type (edge block, face block, edge set, ... ) |
var_index | element variable index |
obj_id | element block id |
start_index | index of first entity in block to write (1-based) |
num_entities | number of entries in this block/set |
var_vals | the values to be written |
int ex_put_name | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | entity_id, | ||
const char * | name | ||
) |
writes the name of the specified entity to the database. The entity with id `entity_id` must exist before calling ex_put_name().
exoid | exodus file id |
obj_type | object type |
entity_id | id of entity name to write |
name | ptr to entity name |
int ex_put_names | ( | int | exoid, |
ex_entity_type | obj_type, | ||
char * | names[] | ||
) |
writes the entity names to the database
exoid | exodus file id |
obj_type | object type |
names | ptr array of entity names |
int ex_put_nodal_var | ( | int | exoid, |
int | time_step, | ||
int | nodal_var_index, | ||
int64_t | num_nodes, | ||
const void * | nodal_var_vals | ||
) |
The function ex_put_nodal_var() writes the values of a single nodal variable for a single time step. The function ex_put_variable_param() must be invoked before this call is made.
Because nodal variables are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | time_step | The time step number, as described under ex_put_time(). This is essentially a counter that is incremented when results variables are output. The first time step is 1. |
[in] | nodal_var_index | The index of the nodal variable. The first variable has an index of 1. |
[in] | num_nodes | The number of nodal points. |
[in] | nodal_var_vals | Array of num_nodes values of the nodal_var_index-th nodal variable for the time_step-th time step. |
As an example, the following code segment writes all the nodal variables for a single time step:
int num_nod_vars, num_nodes, error, exoid, time_step; float *nodal_var_vals; \comment{write nodal variables} nodal_var_vals = (float *) calloc(num_nodes, sizeof(float)); for (k=1; k <= num_nod_vars; k++) { for (j=0; j < num_nodes; j++) { \comment{application code fills in this array} nodal_var_vals[j] = 10.0; } error = ex_put_nodal_var(exoid, time_step, k, num_nodes, nodal_var_vals); }
int ex_put_nodal_var_slab | ( | int | exoid, |
int | time_step, | ||
int | nodal_var_index, | ||
int64_t | start_pos, | ||
int64_t | num_vals, | ||
void * | nodal_var_vals | ||
) |
int ex_put_node_cmap | ( | int | exoid, |
ex_entity_id | map_id, | ||
void_int * | node_ids, | ||
void_int * | proc_ids, | ||
int | processor | ||
) |
int ex_put_node_map | ( | int | exoid, |
ex_entity_id | map_id, | ||
const void_int * | node_map | ||
) |
writes an node map; this is a vector of integers of length number of nodes
exoid | exodus file id |
map_id | node map id |
node_map | node map |
int ex_put_node_num_map | ( | int | exoid, |
const void_int * | node_map | ||
) |
The function ex_put_node_num_map() writes out the optional node number map to the database. See Section LocalNodeIds for a description of the node number map. The function ex_put_init() must be invoked before this call is made.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | node_map | The node number map. |
The following code generates a default node number map and outputs it to an open exodus file. This is a trivial case and included just for illustration. Since this map is optional, it should be written out only if it contains something other than the default map.
int error, exoid; int *node_map = (int *)calloc(num_nodes, sizeof(int)); for (i=1; i <= num_nodes; i++) node_map[i-1] = i; error = ex_put_node_num_map(exoid, node_map); \comment{Equivalent using non-deprecated function} error = ex_put_id_map(exoid, EX_NODE_MAP, node_map);
int ex_put_node_set | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
const void_int * | node_set_node_list | ||
) |
The function ex_put_node_set() writes the node list for a single node set. The function ex_put_node_set_param() must be called before this routine is invoked.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | node_set_id | The node set ID. |
[in] | node_set_node_list | Array containing the node list for the node set. Internal node IDs are used in this list (See Section LocalNodeIds). |
Refer to the description of ex_put_node_set_param() for a sample code segment to write out a node set.
int ex_put_node_set_dist_fact | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
const void * | node_set_dist_fact | ||
) |
The function ex_put_node_set_dist_fact() writes node set distribution factors for a single node set. The function ex_put_node_set_param() must be called before this routine is invoked.
Because the distribution factors are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | node_set_id | The node set ID. |
[in] | node_set_dist_fact | Array containing the distribution factors in the node set. |
Refer to the description of ex_put_node_set_param() for a sample code segment to write out the distribution factors for a node set.
int ex_put_node_set_param | ( | int | exoid, |
ex_entity_id | node_set_id, | ||
int64_t | num_nodes_in_set, | ||
int64_t | num_dist_in_set | ||
) |
The function ex_put_node_set_param() writes the node set ID, the number of nodes which describe a single node set, and the number of node set distribution factors for the node set.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | node_set_id | The node set ID. |
[in] | num_nodes_in_set | The number of nodes in the node set. |
[in] | num_dist_in_set | The number of distribution factors in the node set. This should be either 0 (zero) for no factors, or should equal num_nodes_in_set . |
The following code segment will write out a node set to an open exodus file :
int id, num_nodes_in_set, num_dist_in_set, error, exoid, *node_list; float *dist_fact; \comment{write node set parameters} id = 20; num_nodes_in_set = 5; num_dist_in_set = 5; error = ex_put_node_set_param(exoid, id, num_nodes_in_set, num_dist_in_set); \comment{write node set node list} node_list = (int *) calloc (num_nodes_in_set, sizeof(int)); node_list[0] = 100; node_list[1] = 101; node_list[2] = 102; node_list[3] = 103; node_list[4] = 104; error = ex_put_node_set(exoid, id, node_list); \comment{write node set distribution factors} dist_fact = (float *) calloc (num_dist_in_set, sizeof(float)); dist_fact[0] = 1.0; dist_fact[1] = 2.0; dist_fact[2] = 3.0; dist_fact[3] = 4.0; dist_fact[4] = 5.0; error = ex_put_node_set_dist_fact(exoid, id, dist_fact); \comment{Same result using non-deprecated functions} error = ex_put_set_param(exoid, EX_NODE_SET, id, num_nodes_in_set, num_dist_in_set); error = ex_put_set(exoid, EX_NODE_SET, id, node_list); error = ex_put_set_dist_fact(exoid, EX_NODE_SET, id, dist_fact);
int ex_put_ns_param_global | ( | int | exoid, |
void_int * | global_ids, | ||
void_int * | global_n_cnts, | ||
void_int * | global_df_cnts | ||
) |
int ex_put_nset_var | ( | int | exoid, |
int | time_step, | ||
int | nset_var_index, | ||
ex_entity_id | nset_id, | ||
int64_t | num_nodes_this_nset, | ||
const void * | nset_var_vals | ||
) |
writes the values of a single nodeset variable for one nodeset at one time step to the database; assume the first time step and nodeset variable index are 1
exoid | exodus file id |
time_step | time step number |
nset_var_index | nodeset variable index |
nset_id | nodeset id |
num_nodes_this_nset | number of nodes in this nodeset |
nset_var_vals | the values to be written |
int ex_put_nset_var_tab | ( | int | exoid, |
int | num_nset, | ||
int | num_nset_var, | ||
int * | nset_var_tab | ||
) |
writes the EXODUS II nodeset variable truth table to the database; also, creates netCDF variables in which to store EXODUS II nodeset variable values; although this table isn't required (because the netCDF variables can also be created in ex_put_nset_var), this call will save tremendous time because all of the variables are defined at once while the file is in define mode, rather than going in and out of define mode (causing the entire file to be copied over and over) which is what occurs when the nodeset variable values variables are defined in ex_put_nset_var
exoid | exodus file id |
num_nset | number of nodesets |
num_nset_var | number of nodeset variables |
nset_var_tab | nodeset variable truth table array |
int ex_put_num_map | ( | int | exoid, |
ex_entity_type | map_type, | ||
ex_entity_id | map_id, | ||
const void_int * | map | ||
) |
writes a map; this is a vector of integers of the same length as the number of entries in the source object (nodes, edges, faces, or elements in the file).
exoid | exodus file id |
map_type | type of map (node,edge,face,elem) |
map_id | id to associate with new map |
map | map set value array |
int ex_put_one_attr | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
int | attrib_index, | ||
const void * | attrib | ||
) |
writes the specified attribute for a block
exoid | exodus file id |
obj_type | object type (edge, face, elem block) |
obj_id | object id (edge, face, elem block ID) |
attrib_index | index of attribute to write |
attrib | array of attributes |
int ex_put_one_elem_attr | ( | int | exoid, |
ex_entity_id | elem_blk_id, | ||
int | attrib_index, | ||
const void * | attrib | ||
) |
writes the specified attribute for an element block
exoid | exodus file id |
elem_blk_id | element block id |
attrib_index | index of attribute to write |
attrib | array of attributes |
int ex_put_partial_elem_map | ( | int | exoid, |
ex_entity_id | map_id, | ||
int64_t | ent_start, | ||
int64_t | ent_count, | ||
const void_int * | elem_map | ||
) |
writes an element map; this is a vector of integers of length number of elements
int ex_put_partial_id_map | ( | int | exoid, |
ex_entity_type | map_type, | ||
int64_t | start_entity_num, | ||
int64_t | num_entities, | ||
const void_int * | map | ||
) |
writes out a portion of the entity numbering map to the database; this allows the entity numbers to be non-contiguous. This map is used for mapping between local and global entity ids.
exoid | exodus file id |
map_type | |
start_entity_num | |
num_entities | |
map | element numbering map array |
int ex_put_partial_num_map | ( | int | exoid, |
ex_entity_type | map_type, | ||
ex_entity_id | map_id, | ||
int64_t | ent_start, | ||
int64_t | ent_count, | ||
const void_int * | map | ||
) |
writes a map; this is a vector of integers of length number of mesh objects of that type (element, node, face, edge)
int ex_put_partial_set_dist_fact | ( | int | exoid, |
ex_entity_type | set_type, | ||
ex_entity_id | set_id, | ||
int64_t | offset, | ||
int64_t | num_to_put, | ||
const void * | set_dist_fact | ||
) |
writes the partial distribution factors for a single set
exoid | exodus file id |
set_type | set type |
set_id | set id |
offset | index (1-based) of first dist factor to write |
num_to_put | number of dist factors to write. |
*set_dist_fact | array of dist factors for set |
int ex_put_processor_elem_maps | ( | int | exoid, |
void_int * | elem_mapi, | ||
void_int * | elem_mapb, | ||
int | processor | ||
) |
int ex_put_processor_node_maps | ( | int | exoid, |
void_int * | node_mapi, | ||
void_int * | node_mapb, | ||
void_int * | node_mape, | ||
int | processor | ||
) |
int ex_put_prop | ( | int | exoid, |
ex_entity_type | obj_type, | ||
ex_entity_id | obj_id, | ||
const char * | prop_name, | ||
ex_entity_id | value | ||
) |
The function ex_put_prop() stores an integer object property value to a single element block, node set, or side set. Although it is not necessary to invoke ex_put_prop_names(), since ex_put_prop() will allocate space within the data file if it hasn't been previously allocated, it is more efficient to use ex_put_prop_names() if there is more than one property to store.
It should be noted that the interpretation of the values of the integers stored as properties is left to the application code. In general, a zero (0) means the object does not have the specified property (or is not in the specified group); a nonzero value means the object does have the specified property. When space is allocated for the properties using ex_put_prop_names() or ex_put_prop(), the properties are initialized to zero (0).
Because the ID of an element block, node set, or side set is just another property (named ID), this routine can be used to change the value of an ID. This feature must be used with caution, though, because changing the ID of an object to the ID of another object of the same type (element block, node set, or side set) would cause two objects to have the same ID, and thus only the first would be accessible. Therefore, ex_put_prop() issues a warning if a user attempts to give two objects the same ID.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Type of object; use one of the options in the table below. |
[in] | obj_id | The element block, node set, or side set ID. |
[in] | prop_name | The name of the property for which the value will be stored. Maximum length of this string is MAX_STR_LENGTH . |
[in] | value | The value of the property. |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
EX_ELEM_MAP | Element Map entity type |
EX_NODE_MAP | Node Map entity type |
EX_EDGE_MAP | Edge Map entity type |
EX_FACE_MAP | Face Map entity type |
For an example of code to write out an object property, refer to the description for ex_put_prop_names().
int ex_put_prop_array | ( | int | exoid, |
ex_entity_type | obj_type, | ||
const char * | prop_name, | ||
const void_int * | values | ||
) |
The function ex_put_prop_array() stores an array of ({num_elem_blk}, num_node_sets
, or num_side_sets
) integer property values for all element blocks, node sets, or side sets. The order of the values in the array must correspond to the order in which the element blocks, node sets, or side sets were introduced into the file. For instance, if the parameters for element block with ID 20 were written to a file (via ex_put_elem_block()), and then parameters for element block with ID 10, followed by the parameters for element block with ID 30, the first, second, and third elements in the property array would correspond to element block 20, element block 10, and element block 30, respectively.
One should note that this same functionality (writing properties to multiple objects) can be accomplished with multiple calls to ex_put_prop().
Although it is not necessary to invoke ex_put_prop_names(), since ex_put_prop_array() will allocate space within the data file if it hasn't been previously allocated, it is more efficient to use ex_put_prop_names() if there is more than one property to store.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Type of object; use one of the options in the table below. |
[in] | prop_name | The name of the property for which the values will be stored. Maximum length of this string is MAX_STR_LENGTH . |
[in] | values | An array of property values. |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
EX_ELEM_MAP | Element Map entity type |
EX_NODE_MAP | Node Map entity type |
EX_EDGE_MAP | Edge Map entity type |
EX_FACE_MAP | Face Map entity type |
For an example of code to write an array of object properties, refer to the description for ex_put_prop_names().
int ex_put_prop_names | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | num_props, | ||
char ** | prop_names | ||
) |
The function ex_put_prop_names() writes object property names and allocates space for object property arrays used to assign integer properties to element blocks, node sets, or side sets. The property arrays are initialized to zero (0). Although this function is optional, since ex_put_prop() will allocate space within the data file if it hasn't been previously allocated, it is more efficient to use ex_put_prop_names() if there is more than one property to store.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Type of object; use one of the options in the table below. |
[in] | num_props | The number of integer properties to be assigned to all of the objects of the type specified (element blocks, node sets, or side sets). |
[in] | prop_names | Array containing num_props names (of maximum length of MAX_STR_LENGTH ) of properties to be stored. |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
EX_ELEM_MAP | Element Map entity type |
EX_NODE_MAP | Node Map entity type |
EX_EDGE_MAP | Edge Map entity type |
EX_FACE_MAP | Face Map entity type |
For instance, suppose a user wanted to assign the 1st, 3rd, and 5th element blocks (those element blocks stored 1st, 3rd, and 5th, regardless of their ID) to a group (property) called TOP, and the 2nd, 3rd, and 4th element blocks to a group called LSIDE. This could be accomplished with the following code:
#include "exodusII.h"; char* prop_names[2]; int top_part[] = {1,0,1,0,1}; int lside_part[] = {0,1,1,1,0}; int id[] = {10, 20, 30, 40, 50}; prop_names[0] = "TOP"; prop_names[1] = "LSIDE"; \comment{This call to ex_put_prop_names is optional, but more efficient} ex_put_prop_names (exoid, EX_ELEM_BLOCK, 2, prop_names); \comment{The property values can be output individually thus} for (i=0; i < 5; i++) { ex_put_prop (exoid, EX_ELEM_BLOCK, id[i], prop_names[0], top_part[i]); ex_put_prop (exoid, EX_ELEM_BLOCK, id[i], prop_names[1], lside_part[i]); } \comment{Alternatively, the values can be output as an array} ex_put_prop_array (exoid, EX_ELEM_BLOCK, prop_names[0], top_part); ex_put_prop_array (exoid, EX_ELEM_BLOCK, prop_names[1], lside_part);
int ex_put_qa | ( | int | exoid, |
int | num_qa_records, | ||
char * | qa_record[][4] | ||
) |
The function ex_put_qa() writes the QA records to the database. Each QA record contains four MAX_STR_LENGTH-byte
character strings. The character strings are:
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | num_qa_records | The number of QA records. |
[in] | qa_record | Array containing the QA records. |
The following code segment will write out two QA records:
#include "exodusII.h" int num_qa_rec, error, exoid; char *qa_record[2][4]; \comment{write QA records} num_qa_rec = 2; qa_record[0][0] = "TESTWT1"; qa_record[0][1] = "testwt1"; qa_record[0][2] = "07/07/93"; qa_record[0][3] = "15:41:33"; qa_record[1][0] = "FASTQ"; qa_record[1][1] = "fastq"; qa_record[1][2] = "07/07/93"; qa_record[1][3] = "16:41:33"; error = ex_put_qa (exoid, num_qa_rec, qa_record);
int ex_put_set | ( | int | exoid, |
ex_entity_type | set_type, | ||
ex_entity_id | set_id, | ||
const void_int * | set_entry_list, | ||
const void_int * | set_extra_list | ||
) |
writes the set entry list and set extra list for a single set
exoid | exodus file id |
set_type | set type |
set_id | set id |
*set_entry_list | array of entries in set. Set to NULL to not write. |
*set_extra_list | array of extras in set. Set to NULL to not write. |
int ex_put_set_dist_fact | ( | int | exoid, |
ex_entity_type | set_type, | ||
ex_entity_id | set_id, | ||
const void * | set_dist_fact | ||
) |
writes the distribution factors for a single set
exoid | exodus file id |
set_type | set type |
set_id | set id |
*set_dist_fact | array of dist factors for set |
int ex_put_set_param | ( | int | exoid, |
ex_entity_type | set_type, | ||
ex_entity_id | set_id, | ||
int64_t | num_entries_in_set, | ||
int64_t | num_dist_fact_in_set | ||
) |
writes the set id and the number of entries which describe a single set
exoid | exodus file id |
set_type | the type of set |
set_id | set id |
num_entries_in_set | number of entries in the set |
num_dist_fact_in_set | number of distribution factors in the set |
int ex_put_sets | ( | int | exoid, |
size_t | set_count, | ||
const struct ex_set * | sets | ||
) |
writes the set parameters and optionally set data for 1 or more sets
exoid | exodus file id |
set_count | number of sets to write |
*sets | array of ex_set structures |
int ex_put_side_set | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
const void_int * | side_set_elem_list, | ||
const void_int * | side_set_side_list | ||
) |
writes the side set element list and side set side list for a single side set
exoid | exodus file id |
side_set_id | side set id |
*side_set_elem_list | array of elements in side set |
*side_set_side_list | array of sides in side set |
int ex_put_side_set_dist_fact | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
const void * | side_set_dist_fact | ||
) |
writes the distribution factors for a single side set
exoid | exodus file id |
side_set_id | side set id |
*side_set_dist_fact | array of dist factors for side set |
int ex_put_side_set_param | ( | int | exoid, |
ex_entity_id | side_set_id, | ||
int64_t | num_side_in_set, | ||
int64_t | num_dist_fact_in_set | ||
) |
writes the side set id and the number of sides (edges or faces) which describe a single side set
exoid | exodus file id |
side_set_id | side set id |
num_side_in_set | number of sides in the side set |
num_dist_fact_in_set | number of distribution factors in the side set |
int ex_put_ss_param_global | ( | int | exoid, |
void_int * | global_ids, | ||
void_int * | global_el_cnts, | ||
void_int * | global_df_cnts | ||
) |
int ex_put_sset_var | ( | int | exoid, |
int | time_step, | ||
int | sset_var_index, | ||
ex_entity_id | sset_id, | ||
int64_t | num_faces_this_sset, | ||
const void * | sset_var_vals | ||
) |
writes the values of a single sideset variable for one sideset at one time step to the database; assume the first time step and sideset variable index are 1
exoid | exodus file id |
time_step | time step number |
sset_var_index | sideset variable index |
sset_id | sideset id |
num_faces_this_sset | number of faces in this sideset |
sset_var_vals | the variable values to be written |
int ex_put_sset_var_tab | ( | int | exoid, |
int | num_sset, | ||
int | num_sset_var, | ||
int * | sset_var_tab | ||
) |
writes the EXODUS II sideset variable truth table to the database; also, creates netCDF variables in which to store EXODUS II sideset variable values; although this table isn't required (because the netCDF variables can also be created in ex_put_sset_var), this call will save tremendous time because all of the variables are defined at once while the file is in define mode, rather than going in and out of define mode (causing the entire file to be copied over and over) which is what occurs when the sideset variable values variables are defined in ex_put_sset_var
exoid | exodus file id |
num_sset | number of sidesets |
num_sset_var | number of sideset variables |
*sset_var_tab | sideset variable truth table array |
int ex_put_time | ( | int | exoid, |
int | time_step, | ||
const void * | time_value | ||
) |
The function ex_put_time() writes the time value for a specified time step.
Because time values are floating point values, the application code must declare the array passed to be the appropriate type (float
or double
) to match the compute word size passed in ex_create() or ex_open().
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | time_step | The time step number. This is essentially a counter that is incremented only when results variables are output to the data file. The first time step is 1. |
[in] | time_value | The time at the specified time step. |
The following code segment will write out the simulation time value at simulation time step n:
int error, exoid, n; float time_value; \comment{write time value} error = ex_put_time (exoid, n, &time_value);
int ex_put_truth_table | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | num_blk, | ||
int | num_var, | ||
int * | var_tab | ||
) |
writes the EXODUS II variable truth table to the database; also, creates netCDF variables in which to store EXODUS II variable values; although this table isn't required (because the netCDF variables can also be created in ex_put_var), this call will save tremendous time because all of the variables are defined at once while the file is in define mode, rather than going in and out of define mode (causing the entire file to be copied over and over) which is what occurs when the variables are defined in ex_put_var
exoid | exodus file id |
obj_type | object type |
num_blk | number of blocks |
num_var | number of variables |
*var_tab | variable truth table array |
int ex_put_var | ( | int | exoid, |
int | time_step, | ||
ex_entity_type | var_type, | ||
int | var_index, | ||
ex_entity_id | obj_id, | ||
int64_t | num_entries_this_obj, | ||
const void * | var_vals | ||
) |
writes the values of a single variable for one entity at one time step to the database; assume the first time step and variable index are 1
exoid | exodus file id |
time_step | time step number |
var_type | type (edge block, face block, edge set, ... ) |
var_index | variable index |
obj_id | entity block id |
num_entries_this_obj | number of entries in this block/set |
var_vals | the values to be written |
int ex_put_var_name | ( | int | exoid, |
const char * | var_type, | ||
int | var_num, | ||
const char * | var_name | ||
) |
writes the name of a particular results variable to the database
exoid | exodus file id |
*var_type | variable type: G,N, or E |
var_num | variable number name to write 1..num_var |
*var_name | ptr of variable name |
int ex_put_var_names | ( | int | exoid, |
const char * | var_type, | ||
int | num_vars, | ||
char * | var_names[] | ||
) |
writes the names of the results variables to the database
exoid | exodus file id |
*var_type | variable type: G,N, or E |
num_vars | # of variables to read |
*var_names | ptr array of variable names |
int ex_put_var_param | ( | int | exoid, |
const char * | var_type, | ||
int | num_vars | ||
) |
writes the number and names of global, nodal, or element variables that will be written to the database
exoid | exodus file id |
var_type | variable type G,N, or E |
num_vars | number of variables in database |
int ex_put_var_tab | ( | int | exoid, |
const char * | var_type, | ||
int | num_blk, | ||
int | num_var, | ||
int * | var_tab | ||
) |
writes the EXODUS II variable truth table to the database; also, creates netCDF variables in which to store EXODUS II variable values; although this table isn't required (because the netCDF variables can also be created in ex_put_var), this call will save tremendous time because all of the variables are defined at once while the file is in define mode, rather than going in and out of define mode (causing the entire file to be copied over and over) which is what occurs when the variables are defined in ex_put_var
exoid | exodus file id |
*var_type | 'e', 'm', 's' element, nodeset, sideset |
num_blk | number of blocks |
num_var | number of variables |
*var_tab | variable truth table array |
int ex_put_variable_name | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | var_num, | ||
const char * | var_name | ||
) |
writes the name of a particular results variable to the database
exoid | exodus file id |
obj_type | variable type |
var_num | variable number name to write 1..num_var |
*var_name | ptr of variable name |
int ex_put_variable_names | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | num_vars, | ||
char * | var_names[] | ||
) |
The function ex_put_variable_names() writes the names of the results variables to the database. The names are MAX_STR_LENGTH
-characters in length. The function ex_put_variable_param() must be called before this function is invoked.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Variable indicating the type of variable which is described. Use one of the options in the table below. |
[in] | num_vars | The number of var_type variables that will be written to the database. |
[in] | var_names | Array of pointers to num_vars variable names. |
EX_GLOBAL} | Global entity type |
EX_NODAL} | Nodal entity type |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
The following coding will write out the names associated with the nodal variables:
int num_nod_vars, error, exoid; char *var_names[2]; \comment{write results variables parameters and names} num_nod_vars = 2; var_names[0] = "disx"; var_names[1] = "disy"; error = ex_put_variable_param (exoid, EX_NODAL, num_nod_vars); error = ex_put_variable_names (exoid, EX_NODAL, num_nod_vars, var_names);
int ex_put_variable_param | ( | int | exoid, |
ex_entity_type | obj_type, | ||
int | num_vars | ||
) |
The function ex_put_variable_param() writes the number of global, nodal, nodeset, sideset, edge, face, or element variables that will be written to the database.
[in] | exoid | exodus file ID returned from a previous call to ex_create() or ex_open(). |
[in] | obj_type | Variable indicating the type of variable which is described. Use one of the ex_entity_type types specified in the table below. |
[in] | num_vars | The number of var_type variables that will be written to the database. |
EX_GLOBAL | Global entity type |
EX_NODAL | Nodal entity type |
EX_NODE_SET | Node Set entity type |
EX_EDGE_BLOCK | Edge Block entity type |
EX_EDGE_SET | Edge Set entity type |
EX_FACE_BLOCK | Face Block entity type |
EX_FACE_SET | Face Set entity type |
EX_ELEM_BLOCK | Element Block entity type |
EX_ELEM_SET | Element Set entity type |
EX_SIDE_SET | Side Set entity type |
For example, the following code segment initializes the data file to store global variables:
int num_glo_vars, error, exoid; \comment{write results variables parameters} num_glo_vars = 3; error = ex_put_variable_param (exoid, EX_GLOBAL, num_glo_vars);
int ex_set_int64_status | ( | int | exoid, |
int | mode | ||
) |
int ex_set_max_name_length | ( | int | exoid, |
int | length | ||
) |
Note that the max name length setting is global at this time; not specific to a particular database; however, the exoid option is passed to give flexibility in the future to implement this on a database-by-database basis.
int ex_set_option | ( | int | exoid, |
ex_option_type | option, | ||
int | option_value | ||
) |
int ex_update | ( | int | exoid | ) |
updates an opened EXODUS II file (or EXODUS II history file)
exoid | exodus file id |
ex_entity_type ex_var_type_to_ex_entity_type | ( | char | var_type | ) |
int exerrval |
shared error return value
int exoptval |
error reporting flag (default is quiet)