ExodusII
6.05
|
00001 /* 00002 * Copyright (c) 2005 Sandia Corporation. Under the terms of Contract 00003 * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government 00004 * retains certain rights in this software. 00005 * 00006 * Redistribution and use in source and binary forms, with or without 00007 * modification, are permitted provided that the following conditions 00008 * are met: 00009 * 00010 * * Redistributions of source code must retain the above copyright 00011 * notice, this list of conditions and the following disclaimer. 00012 * 00013 * * Redistributions in binary form must reproduce the above 00014 * copyright notice, this list of conditions and the following 00015 * disclaimer in the documentation and/or other materials provided 00016 * with the distribution. 00017 * 00018 * * Neither the name of Sandia Corporation nor the names of its 00019 * contributors may be used to endorse or promote products derived 00020 * from this software without specific prior written permission. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00023 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00024 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00025 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 00026 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00027 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00028 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00029 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00030 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 00031 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 00032 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 00033 * OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 */ 00036 00037 /***************************************************************************** 00038 * 00039 * exodusII.h - Exodus II API include file 00040 * 00041 *****************************************************************************/ 00042 00043 #ifndef EXODUS_II_HDR 00044 #define EXODUS_II_HDR 00045 00046 #include "netcdf.h" 00047 00048 #if defined(PARALLEL_AWARE_EXODUS) 00049 #include "netcdf_par.h" 00050 #endif 00051 00052 #include <stddef.h> 00053 #include <stdlib.h> 00054 #include <stdint.h> 00055 00056 #ifndef NC_INT64 00057 #error "NetCDF version 4.1.2 or later is required." 00058 #endif 00059 00060 /* EXODUS II version number */ 00061 #define EX_API_VERS 6.10f 00062 #define EX_API_VERS_NODOT 610 00063 #define EX_VERS EX_API_VERS 00064 #define NEMESIS_API_VERSION EX_API_VERS 00065 #define NEMESIS_API_VERSION_NODOT EX_API_VERS_NODOT 00066 #define NEMESIS_FILE_VERSION 2.6 00067 00068 /* 00069 * need following extern if this include file is used in a C++ 00070 * program, to keep the C++ compiler from mangling the function names. 00071 */ 00072 #ifdef __cplusplus 00073 extern "C" { 00074 #endif 00075 00076 /* 00077 * The following are miscellaneous constants used in the EXODUS II 00078 * API. They should already be defined, but are left over from the 00079 * old days... 00080 */ 00081 #ifndef EX_TRUE 00082 #define EX_TRUE -1 00083 #endif 00084 00085 #ifndef EX_FALSE 00086 #define EX_FALSE 0 00087 #endif 00088 00089 /** 00090 * \defgroup FileVars Variables controlling the file creation mode. 00091 *@{ 00092 */ 00093 /* Modes for ex_open */ 00094 #define EX_WRITE 0x0001 /**< ex_open(): open existing file for appending. */ 00095 #define EX_READ 0x0002 /**< ex_open(): open file for reading (default) */ 00096 00097 #define EX_NOCLOBBER 0x0004 /**< Don't overwrite existing database, default */ 00098 #define EX_CLOBBER 0x0008 /**< Overwrite existing database if it exists */ 00099 #define EX_NORMAL_MODEL 0x0010 /**< disable mods that permit storage of larger models */ 00100 #define EX_LARGE_MODEL 0x0020 /**< enable mods that permit storage of larger models */ 00101 #define EX_NETCDF4 0x0040 /**< use the hdf5-based netcdf4 output */ 00102 #define EX_NOSHARE 0x0080 /**< Do not open netcdf file in "share" mode */ 00103 #define EX_SHARE 0x0100 /**< Do open netcdf file in "share" mode */ 00104 #define EX_NOCLASSIC 0x0200 /**< Do not force netcdf to classic mode in netcdf4 mode */ 00105 00106 /* Need to distinguish between storage on database (DB in name) and 00107 passed through the API functions (API in name). 00108 */ 00109 #define EX_MAPS_INT64_DB 0x0400 /**< All maps (id, order, ...) store int64_t values */ 00110 #define EX_IDS_INT64_DB 0x0800 /**< All entity ids (sets, blocks, maps) are int64_t values */ 00111 #define EX_BULK_INT64_DB 0x1000 /**< All integer bulk data (local indices, counts, maps); not ids */ 00112 #define EX_ALL_INT64_DB (EX_MAPS_INT64_DB|EX_IDS_INT64_DB|EX_BULK_INT64_DB) /**< All of the above... */ 00113 00114 #define EX_MAPS_INT64_API 0x2000 /**< All maps (id, order, ...) store int64_t values */ 00115 #define EX_IDS_INT64_API 0x4000 /**< All entity ids (sets, blocks, maps) are int64_t values */ 00116 #define EX_BULK_INT64_API 0x8000 /**< All integer bulk data (local indices, counts, maps); not ids */ 00117 #define EX_INQ_INT64_API 0x10000 /**< Integers passed to/from ex_inquire are int64_t */ 00118 #define EX_ALL_INT64_API (EX_MAPS_INT64_API|EX_IDS_INT64_API|EX_BULK_INT64_API|EX_INQ_INT64_API) /**< All of the above... */ 00119 00120 /* Parallel IO mode flags... */ 00121 #define EX_MPIIO 0x20000 00122 #define EX_MPIPOSIX 0x40000 00123 #define EX_PNETCDF 0x80000 00124 00125 /*@}*/ 00126 00127 /*! \sa ex_inquire() */ 00128 enum ex_inquiry { 00129 EX_INQ_FILE_TYPE = 1, /**< inquire EXODUS II file type*/ 00130 EX_INQ_API_VERS = 2, /**< inquire API version number */ 00131 EX_INQ_DB_VERS = 3, /**< inquire database version number */ 00132 EX_INQ_TITLE = 4, /**< inquire database title */ 00133 EX_INQ_DIM = 5, /**< inquire number of dimensions */ 00134 EX_INQ_NODES = 6, /**< inquire number of nodes */ 00135 EX_INQ_ELEM = 7, /**< inquire number of elements */ 00136 EX_INQ_ELEM_BLK = 8, /**< inquire number of element blocks */ 00137 EX_INQ_NODE_SETS = 9, /**< inquire number of node sets*/ 00138 EX_INQ_NS_NODE_LEN = 10, /**< inquire length of node set node list */ 00139 EX_INQ_SIDE_SETS = 11, /**< inquire number of side sets*/ 00140 EX_INQ_SS_NODE_LEN = 12, /**< inquire length of side set node list */ 00141 EX_INQ_SS_ELEM_LEN = 13, /**< inquire length of side set element list */ 00142 EX_INQ_QA = 14, /**< inquire number of QA records */ 00143 EX_INQ_INFO = 15, /**< inquire number of info records */ 00144 EX_INQ_TIME = 16, /**< inquire number of time steps in the database */ 00145 EX_INQ_EB_PROP = 17, /**< inquire number of element block properties */ 00146 EX_INQ_NS_PROP = 18, /**< inquire number of node set properties */ 00147 EX_INQ_SS_PROP = 19, /**< inquire number of side set properties */ 00148 EX_INQ_NS_DF_LEN = 20, /**< inquire length of node set distribution factor list*/ 00149 EX_INQ_SS_DF_LEN = 21, /**< inquire length of side set distribution factor list*/ 00150 EX_INQ_LIB_VERS = 22, /**< inquire API Lib vers number*/ 00151 EX_INQ_EM_PROP = 23, /**< inquire number of element map properties */ 00152 EX_INQ_NM_PROP = 24, /**< inquire number of node map properties */ 00153 EX_INQ_ELEM_MAP = 25, /**< inquire number of element maps */ 00154 EX_INQ_NODE_MAP = 26, /**< inquire number of node maps*/ 00155 EX_INQ_EDGE = 27, /**< inquire number of edges */ 00156 EX_INQ_EDGE_BLK = 28, /**< inquire number of edge blocks */ 00157 EX_INQ_EDGE_SETS = 29, /**< inquire number of edge sets */ 00158 EX_INQ_ES_LEN = 30, /**< inquire length of concat edge set edge list */ 00159 EX_INQ_ES_DF_LEN = 31, /**< inquire length of concat edge set dist factor list*/ 00160 EX_INQ_EDGE_PROP = 32, /**< inquire number of properties stored per edge block */ 00161 EX_INQ_ES_PROP = 33, /**< inquire number of properties stored per edge set */ 00162 EX_INQ_FACE = 34, /**< inquire number of faces */ 00163 EX_INQ_FACE_BLK = 35, /**< inquire number of face blocks */ 00164 EX_INQ_FACE_SETS = 36, /**< inquire number of face sets */ 00165 EX_INQ_FS_LEN = 37, /**< inquire length of concat face set face list */ 00166 EX_INQ_FS_DF_LEN = 38, /**< inquire length of concat face set dist factor list*/ 00167 EX_INQ_FACE_PROP = 39, /**< inquire number of properties stored per face block */ 00168 EX_INQ_FS_PROP = 40, /**< inquire number of properties stored per face set */ 00169 EX_INQ_ELEM_SETS = 41, /**< inquire number of element sets */ 00170 EX_INQ_ELS_LEN = 42, /**< inquire length of concat element set element list */ 00171 EX_INQ_ELS_DF_LEN = 43, /**< inquire length of concat element set dist factor list*/ 00172 EX_INQ_ELS_PROP = 44, /**< inquire number of properties stored per elem set */ 00173 EX_INQ_EDGE_MAP = 45, /**< inquire number of edge maps */ 00174 EX_INQ_FACE_MAP = 46, /**< inquire number of face maps */ 00175 EX_INQ_COORD_FRAMES = 47, /**< inquire number of coordinate frames */ 00176 EX_INQ_DB_MAX_ALLOWED_NAME_LENGTH = 48, /**< inquire size of MAX_NAME_LENGTH dimension on database */ 00177 EX_INQ_DB_MAX_USED_NAME_LENGTH = 49, /**< inquire size of MAX_NAME_LENGTH dimension on database */ 00178 EX_INQ_MAX_READ_NAME_LENGTH = 50, /**< inquire client-specified max size of returned names */ 00179 00180 EX_INQ_DB_FLOAT_SIZE = 51, /**< inquire size of floating-point values stored on database */ 00181 EX_INQ_NUM_CHILD_GROUPS= 52, /**< inquire number of groups contained in this (exoid) group */ 00182 EX_INQ_GROUP_PARENT = 53, /**< inquire id of parent of this (exoid) group; returns exoid if at root */ 00183 EX_INQ_GROUP_ROOT = 54, /**< inquire id of root group "/" of this (exoid) group; returns exoid if at root */ 00184 EX_INQ_GROUP_NAME_LEN = 55, /**< inquire length of name of group exoid */ 00185 EX_INQ_GROUP_NAME = 56, /**< inquire name of group exoid. "/" returned for root group */ 00186 EX_INQ_FULL_GROUP_NAME_LEN = 57, /**< inquire length of full path name of this (exoid) group */ 00187 EX_INQ_FULL_GROUP_NAME = 58, /**< inquire full "/"-separated path name of this (exoid) group */ 00188 EX_INQ_INVALID = -1}; 00189 00190 typedef enum ex_inquiry ex_inquiry; 00191 00192 /* Options */ 00193 /** 00194 * \defgroup FileOptions Variables controlling the compression, name size, and integer size. 00195 *@{ 00196 */ 00197 /* Modes for ex_open */ 00198 /*! \sa ex_set_option() */ 00199 enum ex_option_type { 00200 EX_OPT_MAX_NAME_LENGTH = 1, 00201 EX_OPT_COMPRESSION_TYPE, /* Currently not used. GZip by default */ 00202 EX_OPT_COMPRESSION_LEVEL, /* 0 (disabled/fastest) ... 9 (best/slowest) */ 00203 EX_OPT_COMPRESSION_SHUFFLE, /* 0 (disabled); 1 (enabled) */ 00204 EX_OPT_INTEGER_SIZE_API, /* See *_INT64_* values above */ 00205 EX_OPT_INTEGER_SIZE_DB /* (query only) */ 00206 }; 00207 typedef enum ex_option_type ex_option_type; 00208 /*@}*/ 00209 00210 enum ex_entity_type { 00211 EX_NODAL = 14, /**< nodal "block" for variables*/ 00212 EX_NODE_BLOCK = 14, /**< alias for EX_NODAL */ 00213 EX_NODE_SET = 2, /**< node set property code */ 00214 EX_EDGE_BLOCK = 6, /**< edge block property code */ 00215 EX_EDGE_SET = 7, /**< edge set property code */ 00216 EX_FACE_BLOCK = 8, /**< face block property code */ 00217 EX_FACE_SET = 9, /**< face set property code */ 00218 EX_ELEM_BLOCK = 1, /**< element block property code*/ 00219 EX_ELEM_SET = 10, /**< face set property code */ 00220 00221 EX_SIDE_SET = 3, /**< side set property code */ 00222 00223 EX_ELEM_MAP = 4, /**< element map property code */ 00224 EX_NODE_MAP = 5, /**< node map property code */ 00225 EX_EDGE_MAP = 11, /**< edge map property code */ 00226 EX_FACE_MAP = 12, /**< face map property code */ 00227 00228 EX_GLOBAL = 13, /**< global "block" for variables*/ 00229 EX_COORDINATE = 15, /**< kluge so some internal wrapper functions work */ 00230 EX_INVALID = -1}; 00231 typedef enum ex_entity_type ex_entity_type; 00232 00233 /** 00234 * ex_opts() function codes - codes are OR'ed into exopts 00235 */ 00236 enum ex_options { 00237 EX_DEFAULT = 0, 00238 EX_VERBOSE = 1, /**< verbose mode message flag */ 00239 EX_DEBUG = 2, /**< debug mode def */ 00240 EX_ABORT = 4, /**< abort mode flag def */ 00241 EX_NULLVERBOSE = 8 /**< verbose mode for null entity detection warning */ 00242 }; 00243 typedef enum ex_options ex_options; 00244 00245 /** The value used to indicate that an entity (block, nset, sset) 00246 has not had its id set to a valid value 00247 */ 00248 #define EX_INVALID_ID -1 00249 00250 /** 00251 * \defgroup StringLengths maximum string lengths; 00252 * constants that are used as netcdf dimensions must be of type long 00253 * @{ 00254 */ 00255 /** Maximum length of QA record, element type name */ 00256 #define MAX_STR_LENGTH 32L 00257 /** Maximum length of an entity name, attribute name, variable name */ 00258 #define MAX_NAME_LENGTH MAX_STR_LENGTH 00259 00260 /** Maximum length of the database title or an information record */ 00261 #define MAX_LINE_LENGTH 80L 00262 /** Maximum length of an error message passed to ex_err() function. Typically, internal use only */ 00263 #define MAX_ERR_LENGTH 256 00264 /* @} */ 00265 00266 /** Specifies that this argument is the id of an entity: element block, nodeset, sideset, ... */ 00267 typedef int64_t ex_entity_id; 00268 00269 /** The mechanism for passing double/float and int/int64_t both use a 00270 void*; to avoid some confusion as to whether a function takes an 00271 integer or a float/double, the following typedef is used for the 00272 integer argument 00273 */ 00274 typedef void void_int; 00275 00276 /** 00277 * \defgroup APIStructs Structures used by external API functions. 00278 * @{ 00279 */ 00280 typedef struct ex_init_params { 00281 char title[MAX_LINE_LENGTH + 1]; 00282 int64_t num_dim; 00283 int64_t num_nodes; 00284 int64_t num_edge; 00285 int64_t num_edge_blk; 00286 int64_t num_face; 00287 int64_t num_face_blk; 00288 int64_t num_elem; 00289 int64_t num_elem_blk; 00290 int64_t num_node_sets; 00291 int64_t num_edge_sets; 00292 int64_t num_face_sets; 00293 int64_t num_side_sets; 00294 int64_t num_elem_sets; 00295 int64_t num_node_maps; 00296 int64_t num_edge_maps; 00297 int64_t num_face_maps; 00298 int64_t num_elem_maps; 00299 } ex_init_params; 00300 00301 typedef struct ex_block { 00302 int64_t id; 00303 ex_entity_type type; 00304 char topology[MAX_STR_LENGTH+1]; 00305 int64_t num_entry; 00306 int64_t num_nodes_per_entry; 00307 int64_t num_edges_per_entry; 00308 int64_t num_faces_per_entry; 00309 int64_t num_attribute; 00310 } ex_block; 00311 00312 typedef struct ex_set { 00313 int64_t id; 00314 ex_entity_type type; 00315 int64_t num_entry; 00316 int64_t num_distribution_factor; 00317 void_int* entry_list; 00318 void_int* extra_list; 00319 void* distribution_factor_list; 00320 } ex_set; 00321 00322 typedef struct ex_block_params { 00323 void_int* edge_blk_id; 00324 char** edge_type; 00325 int* num_edge_this_blk; 00326 int* num_nodes_per_edge; 00327 int* num_attr_edge; 00328 void_int* face_blk_id; 00329 char** face_type; 00330 int* num_face_this_blk; 00331 int* num_nodes_per_face; 00332 int* num_attr_face; 00333 void_int* elem_blk_id; 00334 char** elem_type; 00335 int* num_elem_this_blk; 00336 int* num_nodes_per_elem; 00337 int* num_edges_per_elem; 00338 int* num_faces_per_elem; 00339 int* num_attr_elem; 00340 int define_maps; 00341 } ex_block_params; 00342 00343 typedef struct ex_set_specs { 00344 void_int* sets_ids; 00345 void_int* num_entries_per_set; 00346 void_int* num_dist_per_set; 00347 void_int* sets_entry_index; 00348 void_int* sets_dist_index; 00349 void_int* sets_entry_list; 00350 void_int* sets_extra_list; 00351 void* sets_dist_fact; 00352 } ex_set_specs; 00353 00354 typedef struct ex_var_params { 00355 int num_glob; 00356 int num_node; 00357 int num_edge; 00358 int num_face; 00359 int num_elem; 00360 int num_nset; 00361 int num_eset; 00362 int num_fset; 00363 int num_sset; 00364 int num_elset; 00365 int* edge_var_tab; 00366 int* face_var_tab; 00367 int* elem_var_tab; 00368 int* nset_var_tab; 00369 int* eset_var_tab; 00370 int* fset_var_tab; 00371 int* sset_var_tab; 00372 int* elset_var_tab; 00373 } ex_var_params; 00374 /* @} */ 00375 00376 #ifndef EXODUS_EXPORT 00377 #define EXODUS_EXPORT extern 00378 #endif /* EXODUS_EXPORT */ 00379 00380 /* routines for file initialization i/o */ 00381 EXODUS_EXPORT int ex_close (int exoid); 00382 00383 EXODUS_EXPORT int ex_copy (int in_exoid, int out_exoid); 00384 00385 #define ex_create(path, mode, comp_ws, io_ws) ex_create_int(path, mode, comp_ws, io_ws, EX_API_VERS_NODOT) 00386 00387 EXODUS_EXPORT int ex_create_int (const char *path, int cmode, int *comp_ws, int *io_ws, int my_version); 00388 00389 EXODUS_EXPORT int ex_create_group (int parent_id, const char *group_name); 00390 00391 EXODUS_EXPORT int ex_get_group_id(int exoid, const char *group_name, int *group_id); 00392 00393 EXODUS_EXPORT int ex_get_group_ids(int exoid, int *num_children, int *child_ids); 00394 00395 EXODUS_EXPORT int ex_get_all_times (int exoid, 00396 void *time_values); 00397 00398 EXODUS_EXPORT int ex_get_coord_names (int exoid, 00399 char **coord_names); 00400 00401 EXODUS_EXPORT int ex_get_coord (int exoid, 00402 void *x_coor, 00403 void *y_coor, 00404 void *z_coor); 00405 00406 EXODUS_EXPORT int ex_get_n_coord (int exoid, 00407 int64_t start_node_num, 00408 int64_t num_nodes, 00409 void *x_coor, 00410 void *y_coor, 00411 void *z_coor); 00412 00413 EXODUS_EXPORT int ex_get_partial_coord (int exoid, 00414 int64_t start_node_num, 00415 int64_t num_nodes, 00416 void *x_coor, 00417 void *y_coor, 00418 void *z_coor); 00419 00420 EXODUS_EXPORT int ex_get_ids (int exoid, 00421 ex_entity_type obj_type, 00422 void_int *ids); 00423 00424 EXODUS_EXPORT int ex_get_coordinate_frames(int exoid, 00425 int *nframes, 00426 void_int *cf_ids, 00427 void* pt_coordinates, 00428 char* tags); 00429 00430 EXODUS_EXPORT int ex_get_glob_vars (int exoid, 00431 int time_step, 00432 int num_glob_vars, 00433 void *glob_var_vals); 00434 00435 EXODUS_EXPORT int ex_get_glob_var_time (int exoid, 00436 int glob_var_index, 00437 int beg_time_step, 00438 int end_time_step, 00439 void *glob_var_vals); 00440 00441 EXODUS_EXPORT int ex_get_info (int exoid, char **info); 00442 00443 EXODUS_EXPORT int ex_put_init_ext (int exoid, const ex_init_params *param); 00444 00445 EXODUS_EXPORT int ex_get_init_ext (int exoid, ex_init_params *param); 00446 00447 EXODUS_EXPORT int ex_get_init (int exoid, 00448 char *title, 00449 void_int *num_dim, 00450 void_int *num_nodes, 00451 void_int *num_elem, 00452 void_int *num_elem_blk, 00453 void_int *num_node_sets, 00454 void_int *num_side_sets); 00455 00456 EXODUS_EXPORT int ex_put_init (int exoid, 00457 const char *title, 00458 int64_t num_dim, 00459 int64_t num_nodes, 00460 int64_t num_elem, 00461 int64_t num_elem_blk, 00462 int64_t num_node_sets, 00463 int64_t num_side_sets); 00464 00465 EXODUS_EXPORT int ex_get_map_param (int exoid, 00466 int *num_node_maps, 00467 int *num_elem_maps); 00468 00469 EXODUS_EXPORT int ex_get_name (int exoid, 00470 ex_entity_type obj_type, 00471 ex_entity_id entity_id, 00472 char *name); 00473 00474 EXODUS_EXPORT int ex_get_names (int exoid, 00475 ex_entity_type obj_type, 00476 char **names); 00477 00478 EXODUS_EXPORT int ex_get_n_nodal_var (int exoid, 00479 int time_step, 00480 int nodal_var_index, 00481 int64_t start_node, 00482 int64_t num_nodes, 00483 void *nodal_var_vals); 00484 00485 EXODUS_EXPORT int ex_get_partial_nodal_var (int exoid, 00486 int time_step, 00487 int nodal_var_index, 00488 int64_t start_node, 00489 int64_t num_nodes, 00490 void *nodal_var_vals); 00491 00492 00493 EXODUS_EXPORT int ex_get_prop_array (int exoid, 00494 ex_entity_type obj_type, 00495 const char *prop_name, 00496 void_int *values); 00497 00498 EXODUS_EXPORT int ex_get_prop (int exoid, 00499 ex_entity_type obj_type, 00500 ex_entity_id obj_id, 00501 const char *prop_name, 00502 void_int *value); 00503 00504 EXODUS_EXPORT int ex_get_partial_num_map (int exoid, 00505 ex_entity_type map_type, 00506 ex_entity_id map_id, 00507 int64_t ent_start, 00508 int64_t ent_count, 00509 void_int *elem_map); 00510 00511 EXODUS_EXPORT int ex_get_prop_names (int exoid, 00512 ex_entity_type obj_type, 00513 char **prop_names); 00514 00515 EXODUS_EXPORT int ex_get_qa (int exoid, 00516 char *qa_record[][4]); 00517 00518 EXODUS_EXPORT int ex_get_time (int exoid, 00519 int time_step, 00520 void *time_value); 00521 00522 EXODUS_EXPORT int ex_get_variable_names (int exoid, 00523 ex_entity_type obj_type, 00524 int num_vars, 00525 char *var_names[]); 00526 EXODUS_EXPORT int ex_get_variable_name (int exoid, 00527 ex_entity_type obj_type, 00528 int var_num, 00529 char *var_name); 00530 00531 EXODUS_EXPORT int ex_get_variable_param (int exoid, 00532 ex_entity_type obj_type, 00533 int *num_vars); 00534 00535 EXODUS_EXPORT int ex_get_object_truth_vector (int exoid, 00536 ex_entity_type var_type, 00537 ex_entity_id object_id, 00538 int num_var, 00539 int *var_vector); 00540 00541 EXODUS_EXPORT int ex_get_truth_table (int exoid, 00542 ex_entity_type obj_type, 00543 int num_blk, 00544 int num_var, 00545 int *var_tab); 00546 00547 #define ex_open(path, mode, comp_ws, io_ws, version) ex_open_int(path, mode, comp_ws, io_ws, version, EX_API_VERS_NODOT) 00548 00549 EXODUS_EXPORT int ex_open_int (const char *path, 00550 int mode, 00551 int *comp_ws, 00552 int *io_ws, 00553 float *version, int my_version); 00554 00555 EXODUS_EXPORT int ex_add_attr(int exoid, 00556 ex_entity_type obj_type, 00557 ex_entity_id obj_id, 00558 int64_t num_attr_per_entry); 00559 00560 EXODUS_EXPORT int ex_put_attr_param (int exoid, 00561 ex_entity_type obj_type, 00562 ex_entity_id obj_id, 00563 int num_attrs); 00564 00565 EXODUS_EXPORT int ex_get_attr_param (int exoid, 00566 ex_entity_type obj_type, 00567 ex_entity_id obj_id, 00568 int *num_attrs); 00569 00570 EXODUS_EXPORT int ex_put_all_var_param (int exoid, 00571 int num_g, int num_n, 00572 int num_e, int *elem_var_tab, 00573 int num_m, int *nset_var_tab, 00574 int num_s, int *sset_var_tab); 00575 00576 EXODUS_EXPORT int ex_put_concat_elem_block (int exoid, 00577 const void_int* elem_blk_id, 00578 char *elem_type[], 00579 const void_int* num_elem_this_blk, 00580 const void_int* num_nodes_per_elem, 00581 const void_int* num_attr, 00582 int define_maps); 00583 00584 EXODUS_EXPORT int ex_put_coord_names (int exoid, 00585 char *coord_names[]); 00586 00587 EXODUS_EXPORT int ex_put_coord (int exoid, 00588 const void *x_coor, 00589 const void *y_coor, 00590 const void *z_coor); 00591 00592 EXODUS_EXPORT int ex_put_n_coord (int exoid, 00593 int64_t start_node_num, 00594 int64_t num_nodes, 00595 const void *x_coor, 00596 const void *y_coor, 00597 const void *z_coor); 00598 00599 EXODUS_EXPORT int ex_put_partial_coord (int exoid, 00600 int64_t start_node_num, 00601 int64_t num_nodes, 00602 const void *x_coor, 00603 const void *y_coor, 00604 const void *z_coor); 00605 00606 EXODUS_EXPORT int ex_put_id_map(int exoid, 00607 ex_entity_type obj_type, 00608 const void_int *map); 00609 00610 EXODUS_EXPORT int ex_put_partial_id_map(int exoid, 00611 ex_entity_type obj_type, 00612 int64_t start_entity_num, 00613 int64_t num_entities, 00614 const void_int *map); 00615 00616 EXODUS_EXPORT int ex_put_n_elem_num_map (int exoid, 00617 int64_t start_ent, 00618 int64_t num_ents, 00619 const void_int *map); 00620 00621 EXODUS_EXPORT int ex_put_n_node_num_map (int exoid, 00622 int64_t start_ent, 00623 int64_t num_ents, 00624 const void_int *map); 00625 00626 EXODUS_EXPORT int ex_put_partial_elem_num_map (int exoid, 00627 int64_t start_ent, 00628 int64_t num_ents, 00629 const void_int *map); 00630 00631 EXODUS_EXPORT int ex_put_partial_node_num_map (int exoid, 00632 int64_t start_ent, 00633 int64_t num_ents, 00634 const void_int *map); 00635 00636 EXODUS_EXPORT int ex_get_id_map(int exoid, 00637 ex_entity_type obj_type, 00638 void_int *map); 00639 00640 EXODUS_EXPORT int ex_get_partial_id_map (int exoid, 00641 ex_entity_type map_type, 00642 int64_t start_entity_num, 00643 int64_t num_entities, 00644 void_int* map); 00645 00646 EXODUS_EXPORT int ex_put_coordinate_frames(int exoid, 00647 int nframes, 00648 const void_int *cf_ids, 00649 void* pt_coordinates, 00650 const char* tags); 00651 00652 EXODUS_EXPORT int ex_put_info (int exoid, 00653 int num_info, 00654 char *info[]); 00655 00656 EXODUS_EXPORT int ex_put_map_param (int exoid, 00657 int num_node_maps, 00658 int num_elem_maps); 00659 00660 EXODUS_EXPORT int ex_put_name (int exoid, 00661 ex_entity_type obj_type, 00662 ex_entity_id entity_id, 00663 const char *name); 00664 00665 EXODUS_EXPORT int ex_put_names (int exoid, 00666 ex_entity_type obj_type, 00667 char *names[]); 00668 00669 EXODUS_EXPORT int ex_put_n_one_attr( int exoid, 00670 ex_entity_type obj_type, 00671 ex_entity_id obj_id, 00672 int64_t start_num, 00673 int64_t num_ent, 00674 int attrib_index, 00675 const void *attrib ); 00676 00677 EXODUS_EXPORT int ex_put_partial_one_attr( int exoid, 00678 ex_entity_type obj_type, 00679 ex_entity_id obj_id, 00680 int64_t start_num, 00681 int64_t num_ent, 00682 int attrib_index, 00683 const void *attrib ); 00684 00685 EXODUS_EXPORT int ex_put_prop (int exoid, 00686 ex_entity_type obj_type, 00687 ex_entity_id obj_id, 00688 const char *prop_name, 00689 ex_entity_id value); 00690 00691 EXODUS_EXPORT int ex_put_prop_array (int exoid, 00692 ex_entity_type obj_type, 00693 const char *prop_name, 00694 const void_int *values); 00695 00696 EXODUS_EXPORT int ex_put_prop_names (int exoid, 00697 ex_entity_type obj_type, 00698 int num_props, 00699 char **prop_names); 00700 00701 EXODUS_EXPORT int ex_put_qa (int exoid, 00702 int num_qa_records, 00703 char* qa_record[][4]); 00704 00705 EXODUS_EXPORT int ex_put_time (int exoid, 00706 int time_step, 00707 const void *time_value); 00708 00709 EXODUS_EXPORT int ex_put_variable_name (int exoid, 00710 ex_entity_type obj_type, 00711 int var_num, 00712 const char *var_name); 00713 00714 EXODUS_EXPORT int ex_put_variable_names (int exoid, 00715 ex_entity_type obj_type, 00716 int num_vars, 00717 char* var_names[]); 00718 00719 EXODUS_EXPORT int ex_put_variable_param (int exoid, 00720 ex_entity_type obj_type, 00721 int num_vars); 00722 00723 EXODUS_EXPORT int ex_put_truth_table (int exoid, 00724 ex_entity_type obj_type, 00725 int num_blk, 00726 int num_var, 00727 int *var_tab); 00728 00729 EXODUS_EXPORT int ex_update (int exoid); 00730 EXODUS_EXPORT int ex_get_num_props (int exoid, ex_entity_type obj_type); 00731 EXODUS_EXPORT int ex_large_model(int exoid); 00732 EXODUS_EXPORT size_t ex_header_size(int exoid); 00733 00734 EXODUS_EXPORT void ex_err(const char *module_name, const char *message, int err_num); 00735 EXODUS_EXPORT void ex_get_err(const char** msg, const char** func, int* errcode); 00736 EXODUS_EXPORT int ex_opts(int options); 00737 EXODUS_EXPORT int ex_inquire(int exoid, int inquiry, void_int*, float*, char*); 00738 EXODUS_EXPORT int64_t ex_inquire_int(int exoid, int inquiry); 00739 EXODUS_EXPORT int ex_int64_status(int exoid); 00740 EXODUS_EXPORT int ex_set_int64_status(int exoid, int mode); 00741 00742 /** Note that the max name length setting is global at this time; not specific 00743 * to a particular database; however, the exoid option is passed to give 00744 * flexibility in the future to implement this on a database-by-database basis. 00745 */ 00746 EXODUS_EXPORT int ex_set_max_name_length(int exoid, int length); 00747 00748 EXODUS_EXPORT int ex_set_option(int exoid, ex_option_type option, int option_value); 00749 00750 /* Write Node Edge Face or Element Number Map */ 00751 EXODUS_EXPORT int ex_put_num_map(int exoid, 00752 ex_entity_type map_type, 00753 ex_entity_id map_id, 00754 const void_int *map); 00755 00756 /* Read Number Map */ 00757 EXODUS_EXPORT int ex_get_num_map(int exoid, 00758 ex_entity_type map_type, 00759 ex_entity_id map_id, 00760 void_int *map); 00761 00762 /* Write Edge Face or Element Block Parameters */ 00763 EXODUS_EXPORT int ex_put_block(int exoid, 00764 ex_entity_type blk_type, 00765 ex_entity_id blk_id, 00766 const char *entry_descrip, 00767 int64_t num_entries_this_blk, 00768 int64_t num_nodes_per_entry, 00769 int64_t num_edges_per_entry, 00770 int64_t num_faces_per_entry, 00771 int64_t num_attr_per_entry); 00772 00773 00774 /*! \deprecated Use ex_get_block_param() */ 00775 EXODUS_EXPORT int ex_get_block(int exoid, 00776 ex_entity_type blk_type, 00777 ex_entity_id blk_id, 00778 char *elem_type, 00779 void_int *num_entries_this_blk, 00780 void_int *num_nodes_per_entry, 00781 void_int *num_edges_per_entry, 00782 void_int *num_faces_per_entry, 00783 void_int *num_attr_per_entry); 00784 00785 /* Read Edge Face or Element Block Parameters */ 00786 EXODUS_EXPORT int ex_get_block_param(int exoid, 00787 ex_block *block); 00788 00789 EXODUS_EXPORT int ex_put_block_param(int exoid, 00790 const ex_block block); 00791 00792 EXODUS_EXPORT int ex_get_block_params(int exoid, 00793 size_t block_count, 00794 struct ex_block **blocks); 00795 00796 EXODUS_EXPORT int ex_put_block_params(int exoid, 00797 size_t block_count, 00798 const struct ex_block *blocks); 00799 00800 /* Write All Edge Face and Element Block Parameters */ 00801 EXODUS_EXPORT int ex_put_concat_all_blocks(int exoid, 00802 const ex_block_params *param); 00803 00804 EXODUS_EXPORT int ex_put_entity_count_per_polyhedra(int exoid, 00805 ex_entity_type blk_type, 00806 ex_entity_id blk_id, 00807 const int *entity_counts); 00808 00809 EXODUS_EXPORT int ex_get_entity_count_per_polyhedra(int exoid, 00810 ex_entity_type blk_type, 00811 ex_entity_id blk_id, 00812 int *entity_counts); 00813 00814 /* Write Edge Face or Element Block Connectivity */ 00815 EXODUS_EXPORT int ex_put_conn(int exoid, 00816 ex_entity_type blk_type, 00817 ex_entity_id blk_id, 00818 const void_int *node_conn, 00819 const void_int *elem_edge_conn, 00820 const void_int *elem_face_conn); 00821 00822 /* Read Edge Face or Element Block Connectivity */ 00823 EXODUS_EXPORT int ex_get_conn(int exoid, 00824 ex_entity_type blk_type, 00825 ex_entity_id blk_id, 00826 void_int *nodeconn, 00827 void_int *edgeconn, 00828 void_int *faceconn); 00829 00830 /* Read Partial Edge Face or Element Block Connectivity */ 00831 EXODUS_EXPORT int ex_get_n_conn(int exoid, 00832 ex_entity_type blk_type, 00833 ex_entity_id blk_id, 00834 int64_t start_num, 00835 int64_t num_ent, 00836 void_int *nodeconn, 00837 void_int *edgeconn, 00838 void_int *faceconn); 00839 00840 EXODUS_EXPORT int ex_get_partial_conn(int exoid, 00841 ex_entity_type blk_type, 00842 ex_entity_id blk_id, 00843 int64_t start_num, 00844 int64_t num_ent, 00845 void_int *nodeconn, 00846 void_int *edgeconn, 00847 void_int *faceconn); 00848 00849 /* Write Edge Face or Element Block Attributes */ 00850 EXODUS_EXPORT int ex_put_attr(int exoid, 00851 ex_entity_type blk_type, 00852 ex_entity_id blk_id, 00853 const void *attrib); 00854 00855 EXODUS_EXPORT int ex_put_partial_attr (int exoid, 00856 ex_entity_type blk_type, 00857 ex_entity_id blk_id, 00858 int64_t start_entity, 00859 int64_t num_entity, 00860 const void *attrib); 00861 00862 /* Read Edge Face or Element Block Attributes */ 00863 EXODUS_EXPORT int ex_get_attr(int exoid, 00864 ex_entity_type obj_type, 00865 ex_entity_id obj_id, 00866 void *attrib); 00867 00868 EXODUS_EXPORT int ex_get_n_attr(int exoid, 00869 ex_entity_type obj_type, 00870 ex_entity_id obj_id, 00871 int64_t start_num, 00872 int64_t num_ent, 00873 void *attrib); 00874 00875 EXODUS_EXPORT int ex_get_partial_attr(int exoid, 00876 ex_entity_type obj_type, 00877 ex_entity_id obj_id, 00878 int64_t start_num, 00879 int64_t num_ent, 00880 void *attrib); 00881 00882 /* Write One Edge Face or Element Block Attribute */ 00883 EXODUS_EXPORT int ex_put_one_attr(int exoid, 00884 ex_entity_type obj_type, 00885 ex_entity_id obj_id, 00886 int attrib_index, 00887 const void *attrib); 00888 00889 /* Read One Edge Face or Element Block Attribute */ 00890 EXODUS_EXPORT int ex_get_one_attr(int exoid, 00891 ex_entity_type obj_type, 00892 ex_entity_id obj_id, 00893 int attrib_index, 00894 void *attrib); 00895 00896 /* Read One Edge Face or Element Block Attribute */ 00897 EXODUS_EXPORT int ex_get_n_one_attr(int exoid, 00898 ex_entity_type obj_type, 00899 ex_entity_id obj_id, 00900 int64_t start_num, 00901 int64_t num_ent, 00902 int attrib_index, 00903 void *attrib); 00904 00905 EXODUS_EXPORT int ex_get_partial_one_attr(int exoid, 00906 ex_entity_type obj_type, 00907 ex_entity_id obj_id, 00908 int64_t start_num, 00909 int64_t num_ent, 00910 int attrib_index, 00911 void *attrib); 00912 00913 /* Write Edge Face or Element Block Attribute Names */ 00914 EXODUS_EXPORT int ex_put_attr_names(int exoid, 00915 ex_entity_type blk_type, 00916 ex_entity_id blk_id, 00917 char **names); 00918 00919 /* Read Edge Face or Element Block Attribute Names */ 00920 EXODUS_EXPORT int ex_get_attr_names(int exoid, 00921 ex_entity_type obj_type, 00922 ex_entity_id obj_id, 00923 char **names); 00924 00925 /* Write Node Edge Face or Side Set Parameters */ 00926 EXODUS_EXPORT int ex_put_set_param(int exoid, 00927 ex_entity_type set_type, 00928 ex_entity_id set_id, 00929 int64_t num_entries_in_set, 00930 int64_t num_dist_fact_in_set); 00931 00932 /* Read Node Edge Face or Side Set Parameters */ 00933 EXODUS_EXPORT int ex_get_set_param(int exoid, 00934 ex_entity_type set_type, 00935 ex_entity_id set_id, 00936 void_int *num_entry_in_set, 00937 void_int *num_dist_fact_in_set); 00938 00939 /* Write a Node Edge Face or Side Set */ 00940 EXODUS_EXPORT int ex_put_set(int exoid, 00941 ex_entity_type set_type, 00942 ex_entity_id set_id, 00943 const void_int *set_entry_list, 00944 const void_int *set_extra_list); 00945 00946 EXODUS_EXPORT int ex_put_partial_set(int exoid, 00947 ex_entity_type set_type, 00948 ex_entity_id set_id, 00949 int64_t offset, 00950 int64_t count, 00951 const void_int *set_entry_list, 00952 const void_int *set_extra_list); 00953 00954 /* Read a Node Edge Face or Side Set */ 00955 EXODUS_EXPORT int ex_get_set(int exoid, 00956 ex_entity_type set_type, 00957 ex_entity_id set_id, 00958 void_int *set_entry_list, 00959 void_int *set_extra_list); 00960 00961 /* Write Node Edge Face or Side Set Distribution Factors */ 00962 EXODUS_EXPORT int ex_put_set_dist_fact(int exoid, 00963 ex_entity_type set_type, 00964 ex_entity_id set_id, 00965 const void *set_dist_fact); 00966 00967 /* Read Node Edge Face or Side Set Distribution Factors */ 00968 EXODUS_EXPORT int ex_get_set_dist_fact(int exoid, 00969 ex_entity_type set_type, 00970 ex_entity_id set_id, 00971 void *set_dist_fact); 00972 00973 EXODUS_EXPORT int ex_get_partial_set_dist_fact (int exoid, 00974 ex_entity_type set_type, 00975 ex_entity_id set_id, 00976 int64_t offset, 00977 int64_t num_to_put, 00978 void *set_dist_fact); 00979 00980 /* Write Concatenated Node Edge Face or Side Sets */ 00981 EXODUS_EXPORT int ex_put_concat_sets(int exoid, 00982 ex_entity_type set_type, 00983 const struct ex_set_specs *set_specs); 00984 00985 /* Read Concatenated Node Edge Face or Side Sets */ 00986 EXODUS_EXPORT int ex_get_concat_sets(int exoid, 00987 ex_entity_type set_type, 00988 struct ex_set_specs *set_specs); 00989 00990 /* Write Concatenated Node Edge Face or Side Sets */ 00991 EXODUS_EXPORT int ex_put_sets(int exoid, 00992 size_t set_count, 00993 const struct ex_set *sets); 00994 00995 /* Read Concatenated Node Edge Face or Side Sets */ 00996 EXODUS_EXPORT int ex_get_sets(int exoid, 00997 size_t set_count, 00998 struct ex_set *sets); 00999 01000 /* (MODIFIED) Write All Results Variables Parameters */ 01001 EXODUS_EXPORT int ex_put_all_var_param_ext(int exoid, 01002 const ex_var_params *vp); 01003 01004 /* Write Edge Face or Element Variable Values on Blocks or Sets at a Time Step */ 01005 EXODUS_EXPORT int ex_put_var(int exoid, 01006 int time_step, 01007 ex_entity_type var_type, 01008 int var_index, 01009 ex_entity_id obj_id, 01010 int64_t num_entries_this_obj, 01011 const void *var_vals); 01012 01013 /* Write Partial Edge Face or Element Variable Values on Blocks or Sets at a Time Step */ 01014 EXODUS_EXPORT int ex_put_n_var(int exoid, 01015 int time_step, 01016 ex_entity_type var_type, 01017 int var_index, 01018 ex_entity_id obj_id, 01019 int64_t start_index, 01020 int64_t num_entities, 01021 const void *var_vals); 01022 01023 EXODUS_EXPORT int ex_put_partial_var(int exoid, 01024 int time_step, 01025 ex_entity_type var_type, 01026 int var_index, 01027 ex_entity_id obj_id, 01028 int64_t start_index, 01029 int64_t num_entities, 01030 const void *var_vals); 01031 01032 /* Read Edge Face or Element Variable Values Defined On Blocks or Sets at a Time Step */ 01033 EXODUS_EXPORT int ex_get_var(int exoid, 01034 int time_step, 01035 ex_entity_type var_type, 01036 int var_index, 01037 ex_entity_id obj_id, 01038 int64_t num_entry_this_obj, 01039 void *var_vals); 01040 01041 /* Read Partial Edge Face or Element Variable Values on Blocks or Sets at a Time Step */ 01042 EXODUS_EXPORT int ex_get_n_var(int exoid, 01043 int time_step, 01044 ex_entity_type var_type, 01045 int var_index, 01046 ex_entity_id obj_id, 01047 int64_t start_index, 01048 int64_t num_entities, 01049 void *var_vals); 01050 01051 EXODUS_EXPORT int ex_get_n_elem_var (int exoid, 01052 int time_step, 01053 int elem_var_index, 01054 ex_entity_id elem_blk_id, 01055 int64_t num_elem_this_blk, 01056 int64_t start_elem_num, 01057 int64_t num_elem, 01058 void *elem_var_vals); 01059 01060 EXODUS_EXPORT int ex_get_partial_var(int exoid, 01061 int time_step, 01062 ex_entity_type var_type, 01063 int var_index, 01064 ex_entity_id obj_id, 01065 int64_t start_index, 01066 int64_t num_entities, 01067 void *var_vals); 01068 01069 EXODUS_EXPORT int ex_get_partial_elem_var (int exoid, 01070 int time_step, 01071 int elem_var_index, 01072 ex_entity_id elem_blk_id, 01073 int64_t num_elem_this_blk, 01074 int64_t start_elem_num, 01075 int64_t num_elem, 01076 void *elem_var_vals); 01077 01078 /* Read Edge Face or Element Variable Values Defined On Blocks or Sets Through Time */ 01079 EXODUS_EXPORT int ex_get_var_time(int exoid, 01080 ex_entity_type var_type, 01081 int var_index, 01082 int64_t id, 01083 int beg_time_step, 01084 int end_time_step, 01085 void *var_vals); 01086 01087 EXODUS_EXPORT int ex_cvt_nodes_to_sides(int exoid, 01088 void_int *num_elem_per_set, 01089 void_int *num_nodes_per_set, 01090 void_int *side_sets_elem_index, 01091 void_int *side_sets_node_index, 01092 void_int *side_sets_elem_list, 01093 void_int *side_sets_node_list, 01094 void_int *side_sets_side_list); 01095 01096 /* Can be replaced by ex_put_var ... */ 01097 EXODUS_EXPORT int ex_put_nodal_var (int exoid, 01098 int time_step, 01099 int nodal_var_index, 01100 int64_t num_nodes, 01101 const void *nodal_var_vals); 01102 01103 EXODUS_EXPORT int ex_put_n_nodal_var (int exoid, 01104 int time_step, 01105 int nodal_var_index, 01106 int64_t start_node, 01107 int64_t num_nodes, 01108 const void *nodal_var_vals); 01109 01110 EXODUS_EXPORT int ex_put_partial_nodal_var (int exoid, 01111 int time_step, 01112 int nodal_var_index, 01113 int64_t start_node, 01114 int64_t num_nodes, 01115 const void *nodal_var_vals); 01116 01117 EXODUS_EXPORT int ex_get_partial_elem_map (int exoid, 01118 ex_entity_id map_id, 01119 int64_t ent_start, 01120 int64_t ent_count, 01121 void_int *elem_map); 01122 01123 EXODUS_EXPORT int ex_put_partial_elem_map (int exoid, 01124 ex_entity_id map_id, 01125 int64_t ent_start, 01126 int64_t ent_count, 01127 const void_int *elem_map); 01128 01129 EXODUS_EXPORT int ex_put_partial_num_map (int exoid, 01130 ex_entity_type map_type, 01131 ex_entity_id map_id, 01132 int64_t ent_start, 01133 int64_t ent_count, 01134 const void_int *map); 01135 01136 EXODUS_EXPORT int ex_put_partial_set_dist_fact (int exoid, 01137 ex_entity_type set_type, 01138 ex_entity_id set_id, 01139 int64_t offset, 01140 int64_t num_to_put, 01141 const void *set_dist_fact); 01142 01143 /* TODO */ 01144 EXODUS_EXPORT int ex_get_concat_side_set_node_count(int exoid, 01145 int *side_set_node_cnt_list); 01146 01147 /* TODO */ 01148 EXODUS_EXPORT int ex_get_side_set_node_list_len(int exoid, 01149 ex_entity_id side_set_id, 01150 void_int *side_set_node_list_len); 01151 01152 /* TODO */ 01153 EXODUS_EXPORT int ex_get_side_set_node_count(int exoid, 01154 ex_entity_id side_set_id, 01155 int *side_set_node_cnt_list); 01156 01157 /* TODO */ 01158 EXODUS_EXPORT int ex_get_side_set_node_list(int exoid, 01159 ex_entity_id side_set_id, 01160 void_int *side_set_node_cnt_list, 01161 void_int *side_set_node_list); 01162 01163 /* ======================================================================== 01164 Functions pulled from nemesis library and incorporated into exodus... 01165 */ 01166 /*============================================================================= 01167 * Initial Information Routines 01168 *===========================================================================*/ 01169 EXODUS_EXPORT int 01170 ex_get_init_info(int exoid, /* NemesisI file ID */ 01171 int *num_proc, /* Number of processors */ 01172 int *num_proc_in_f, /* Number of procs in this file */ 01173 char *ftype 01174 ); 01175 01176 EXODUS_EXPORT int 01177 ex_put_init_info(int exoid, /* NemesisI file ID */ 01178 int num_proc, /* Number of processors */ 01179 int num_proc_in_f, /* Number of procs in this file */ 01180 char *ftype 01181 ); 01182 01183 EXODUS_EXPORT int 01184 ex_get_init_global(int exoid, /* NemesisI file ID */ 01185 void_int *num_nodes_g, /* Number of global FEM nodes */ 01186 void_int *num_elems_g, /* Number of global FEM elements */ 01187 void_int *num_elem_blks_g, /* Number of global elem blocks */ 01188 void_int *num_node_sets_g, /* Number of global node sets */ 01189 void_int *num_side_sets_g /* Number of global side sets */ 01190 ); 01191 EXODUS_EXPORT int 01192 ex_put_init_global(int exoid, /* NemesisI file ID */ 01193 int64_t num_nodes_g, /* Number of global FEM nodes */ 01194 int64_t num_elems_g, /* Number of global FEM elements */ 01195 int64_t num_elem_blks_g, /* Number of global elem blocks */ 01196 int64_t num_node_sets_g, /* Number of global node sets */ 01197 int64_t num_side_sets_g /* Number of global side sets */ 01198 ); 01199 01200 /*============================================================================= 01201 * Loadbalance Parameter Routines 01202 *===========================================================================*/ 01203 EXODUS_EXPORT int 01204 ex_get_loadbal_param(int exoid, /* NetCDF/Exodus file ID */ 01205 void_int *num_int_nodes, /* Number of internal FEM nodes */ 01206 void_int *num_bor_nodes, /* Number of border FEM nodes */ 01207 void_int *num_ext_nodes, /* Number of external FEM nodes */ 01208 void_int *num_int_elems, /* Number of internal FEM elems */ 01209 void_int *num_bor_elems, /* Number of border FEM elems */ 01210 void_int *num_node_cmaps, /* Number of nodal comm maps */ 01211 void_int *num_elem_cmaps, /* Number of elemental comm maps */ 01212 int processor /* Processor ID */ 01213 ); 01214 01215 EXODUS_EXPORT int 01216 ex_put_loadbal_param(int exoid, /* NemesisI file ID */ 01217 int64_t num_int_nodes, /* Number of internal FEM nodes */ 01218 int64_t num_bor_nodes, /* Number of border FEM nodes */ 01219 int64_t num_ext_nodes, /* Number of external FEM nodes */ 01220 int64_t num_int_elems, /* Number of internal FEM elems */ 01221 int64_t num_bor_elems, /* Number of border FEM elems */ 01222 int64_t num_node_cmaps,/* Number of nodal comm maps */ 01223 int64_t num_elem_cmaps,/* Number of elemental comm maps */ 01224 int processor /* Processor ID */ 01225 ); 01226 01227 EXODUS_EXPORT int 01228 ex_put_loadbal_param_cc(int exoid, /* NetCDF/Exodus file ID */ 01229 void_int *num_int_nodes, /* Number of internal node IDs */ 01230 void_int *num_bor_nodes, /* Number of border node IDs */ 01231 void_int *num_ext_nodes, /* Number of external node IDs */ 01232 void_int *num_int_elems, /* Number of internal elem IDs */ 01233 void_int *num_bor_elems, /* Number of border elem IDs */ 01234 void_int *num_node_cmaps, /* Number of nodal comm maps */ 01235 void_int *num_elem_cmaps /* Number of elem comm maps */ 01236 ); 01237 01238 /*============================================================================= 01239 * NS, SS & EB Global Parameter Routines 01240 *===========================================================================*/ 01241 EXODUS_EXPORT int 01242 ex_get_ns_param_global(int exoid, /* NetCDF/Exodus file ID */ 01243 void_int *ns_ids_glob, /* Global IDs of node sets */ 01244 void_int *ns_n_cnt_glob, /* Count of nodes in node sets */ 01245 void_int *ns_df_cnt_glob /* Count of dist. factors in ns */ 01246 ); 01247 01248 EXODUS_EXPORT int 01249 ex_put_ns_param_global(int exoid, /* NemesisI file ID */ 01250 void_int *global_ids, /* Vector of global node-set IDs */ 01251 void_int *global_n_cnts, /* Vector of node counts in node-sets */ 01252 void_int *global_df_cnts /* Vector of dist factor counts in node-sets */ 01253 ); 01254 01255 EXODUS_EXPORT int 01256 ex_get_ss_param_global(int exoid, /* NetCDF/Exodus file ID */ 01257 void_int *ss_ids_glob, /* Global side-set IDs */ 01258 void_int *ss_s_cnt_glob, /* Global side count */ 01259 void_int *ss_df_cnt_glob /* Global dist. factor count */ 01260 ); 01261 01262 EXODUS_EXPORT int 01263 ex_put_ss_param_global(int exoid, /* NemesisI file ID */ 01264 void_int *global_ids, /* Vector of global side-set IDs */ 01265 void_int *global_el_cnts, /* Vector of element/side */ 01266 /* counts in each side set */ 01267 void_int *global_df_cnts /* Vector of dist. factor */ 01268 /* counts in each side set */ 01269 ); 01270 01271 EXODUS_EXPORT int 01272 ex_get_eb_info_global(int exoid, /* NemesisI file ID */ 01273 void_int *el_blk_ids, /* Vector of global element IDs */ 01274 void_int *el_blk_cnts /* Vector of global element counts */ 01275 ); 01276 01277 EXODUS_EXPORT int 01278 ex_put_eb_info_global(int exoid, /* NemesisI file ID */ 01279 void_int *el_blk_ids, /* Vector of global element IDs */ 01280 void_int *el_blk_cnts /* Vector of global element counts */ 01281 ); 01282 01283 /*============================================================================= 01284 * NS, SS & EB Subset Routines 01285 *===========================================================================*/ 01286 EXODUS_EXPORT int 01287 ex_get_n_side_set(int exoid, /* NetCDF/Exodus file ID */ 01288 ex_entity_id side_set_id, /* Side-set ID to read */ 01289 int64_t start_side_num, /* Starting element number */ 01290 int64_t num_sides, /* Number of sides to read */ 01291 void_int *side_set_elem_list, /* List of element IDs */ 01292 void_int *side_set_side_list /* List of side IDs */ 01293 ); 01294 01295 EXODUS_EXPORT int 01296 ex_put_n_side_set(int exoid, /* NetCDF/Exodus file ID */ 01297 ex_entity_id side_set_id, /* Side-set ID to write */ 01298 int64_t start_side_num, /* Starting element number */ 01299 int64_t num_sides, /* Number of sides to write */ 01300 const void_int *side_set_elem_list, /* List of element IDs */ 01301 const void_int *side_set_side_list /* List of side IDs */ 01302 ); 01303 01304 EXODUS_EXPORT int 01305 ex_get_n_side_set_df(int exoid, /* NetCDF/Exodus file ID */ 01306 ex_entity_id side_set_id, /* Side-set ID */ 01307 int64_t start_num, /* Starting df number */ 01308 int64_t num_df_to_get, /* Number of df's to read */ 01309 void *side_set_df /* Distribution factors */ 01310 ); 01311 01312 EXODUS_EXPORT int 01313 ex_put_n_side_set_df(int exoid, /* NetCDF/Exodus file ID */ 01314 ex_entity_id side_set_id, /* Side-set ID */ 01315 int64_t start_num, /* Starting df number */ 01316 int64_t num_df_to_get, /* Number of df's to write */ 01317 void *side_set_df /* Distribution factors */ 01318 ); 01319 01320 EXODUS_EXPORT int 01321 ex_get_n_node_set(int exoid, /* NetCDF/Exodus file ID */ 01322 ex_entity_id node_set_id, /* Node set ID */ 01323 int64_t start_node_num, /* Node index to start reading at */ 01324 int64_t num_node, /* Number of nodes to read */ 01325 void_int *node_set_node_list /* List of nodes in node set */ 01326 ); 01327 01328 EXODUS_EXPORT int 01329 ex_put_n_node_set(int exoid, /* NetCDF/Exodus file ID */ 01330 ex_entity_id node_set_id, /* Node set ID */ 01331 int64_t start_node_num, /* Node index to start writing at */ 01332 int64_t num_node, /* Number of nodes to write */ 01333 const void_int *node_set_node_list /* List of nodes in node set */ 01334 ); 01335 01336 EXODUS_EXPORT int 01337 ex_get_n_node_set_df(int exoid, /* NetCDF/Exodus file ID */ 01338 ex_entity_id node_set_id, /* Node-set ID */ 01339 int64_t start_num, /* Starting df number */ 01340 int64_t num_df_to_get, /* Number of df's to read */ 01341 void *node_set_df /* Distribution factors */ 01342 ); 01343 01344 EXODUS_EXPORT int 01345 ex_put_n_node_set_df(int exoid, /* NetCDF/Exodus file ID */ 01346 ex_entity_id node_set_id, /* Node-set ID */ 01347 int64_t start_num, /* Starting df number */ 01348 int64_t num_df_to_get, /* Number of df's to write */ 01349 void *node_set_df /* Distribution factors */ 01350 ); 01351 01352 EXODUS_EXPORT int 01353 ex_get_n_elem_conn (int exoid, /* NetCDF/Exodus file ID */ 01354 ex_entity_id elem_blk_id, /* Element block ID */ 01355 int64_t start_elem_num, /* Starting position to read from */ 01356 int64_t num_elems, /* Number of elements to read */ 01357 void_int *connect /* Connectivity vector */ 01358 ); 01359 01360 EXODUS_EXPORT int 01361 ex_put_n_elem_conn (int exoid, /* NetCDF/Exodus file ID */ 01362 ex_entity_id elem_blk_id, /* Element block ID */ 01363 int64_t start_elem_num, /* Starting position to write to */ 01364 int64_t num_elems, /* Number of elements to write */ 01365 const void_int *connect /* Connectivity vector */ 01366 ); 01367 01368 EXODUS_EXPORT int 01369 ex_get_n_elem_attr (int exoid, /* NetCDF/Exodus file ID */ 01370 ex_entity_id elem_blk_id, /* Element block ID */ 01371 int64_t start_elem_num, /* Starting position to read from */ 01372 int64_t num_elems, /* Number of elements to read */ 01373 void *attrib /* Attribute */ 01374 ); 01375 01376 EXODUS_EXPORT int 01377 ex_put_n_elem_attr (int exoid, /* NetCDF/Exodus file ID */ 01378 ex_entity_id elem_blk_id, /* Element block ID */ 01379 int64_t start_elem_num, /* Starting position to write to */ 01380 int64_t num_elems, /* Number of elements to write */ 01381 void *attrib /* Attribute */ 01382 ); 01383 EXODUS_EXPORT int 01384 ex_get_partial_side_set(int exoid, /* NetCDF/Exodus file ID */ 01385 ex_entity_id side_set_id, /* Side-set ID to read */ 01386 int64_t start_side_num, /* Starting element number */ 01387 int64_t num_sides, /* Number of sides to read */ 01388 void_int *side_set_elem_list, /* List of element IDs */ 01389 void_int *side_set_side_list /* List of side IDs */ 01390 ); 01391 01392 EXODUS_EXPORT int 01393 ex_put_partial_side_set(int exoid, /* NetCDF/Exodus file ID */ 01394 ex_entity_id side_set_id, /* Side-set ID to write */ 01395 int64_t start_side_num, /* Starting element number */ 01396 int64_t num_sides, /* Number of sides to write */ 01397 const void_int *side_set_elem_list, /* List of element IDs */ 01398 const void_int *side_set_side_list /* List of side IDs */ 01399 ); 01400 01401 EXODUS_EXPORT int 01402 ex_get_partial_side_set_df(int exoid, /* NetCDF/Exodus file ID */ 01403 ex_entity_id side_set_id, /* Side-set ID */ 01404 int64_t start_num, /* Starting df number */ 01405 int64_t num_df_to_get, /* Number of df's to read */ 01406 void *side_set_df /* Distribution factors */ 01407 ); 01408 01409 EXODUS_EXPORT int 01410 ex_put_partial_side_set_df(int exoid, /* NetCDF/Exodus file ID */ 01411 ex_entity_id side_set_id, /* Side-set ID */ 01412 int64_t start_num, /* Starting df number */ 01413 int64_t num_df_to_get, /* Number of df's to write */ 01414 void *side_set_df /* Distribution factors */ 01415 ); 01416 01417 EXODUS_EXPORT int 01418 ex_get_partial_node_set(int exoid, /* NetCDF/Exodus file ID */ 01419 ex_entity_id node_set_id, /* Node set ID */ 01420 int64_t start_node_num, /* Node index to start reading at */ 01421 int64_t num_node, /* Number of nodes to read */ 01422 void_int *node_set_node_list /* List of nodes in node set */ 01423 ); 01424 01425 EXODUS_EXPORT int 01426 ex_put_partial_node_set(int exoid, /* NetCDF/Exodus file ID */ 01427 ex_entity_id node_set_id, /* Node set ID */ 01428 int64_t start_node_num, /* Node index to start writing at */ 01429 int64_t num_node, /* Number of nodes to write */ 01430 const void_int *node_set_node_list /* List of nodes in node set */ 01431 ); 01432 01433 EXODUS_EXPORT int 01434 ex_get_partial_node_set_df(int exoid, /* NetCDF/Exodus file ID */ 01435 ex_entity_id node_set_id, /* Node-set ID */ 01436 int64_t start_num, /* Starting df number */ 01437 int64_t num_df_to_get, /* Number of df's to read */ 01438 void *node_set_df /* Distribution factors */ 01439 ); 01440 01441 EXODUS_EXPORT int 01442 ex_put_partial_node_set_df(int exoid, /* NetCDF/Exodus file ID */ 01443 ex_entity_id node_set_id, /* Node-set ID */ 01444 int64_t start_num, /* Starting df number */ 01445 int64_t num_df_to_get, /* Number of df's to write */ 01446 void *node_set_df /* Distribution factors */ 01447 ); 01448 01449 EXODUS_EXPORT int 01450 ex_get_partial_elem_conn (int exoid, /* NetCDF/Exodus file ID */ 01451 ex_entity_id elem_blk_id, /* Element block ID */ 01452 int64_t start_elem_num, /* Starting position to read from */ 01453 int64_t num_elems, /* Number of elements to read */ 01454 void_int *connect /* Connectivity vector */ 01455 ); 01456 01457 EXODUS_EXPORT int 01458 ex_put_partial_elem_conn (int exoid, /* NetCDF/Exodus file ID */ 01459 ex_entity_id elem_blk_id, /* Element block ID */ 01460 int64_t start_elem_num, /* Starting position to write to */ 01461 int64_t num_elems, /* Number of elements to write */ 01462 const void_int *connect /* Connectivity vector */ 01463 ); 01464 01465 EXODUS_EXPORT int 01466 ex_get_partial_elem_attr (int exoid, /* NetCDF/Exodus file ID */ 01467 ex_entity_id elem_blk_id, /* Element block ID */ 01468 int64_t start_elem_num, /* Starting position to read from */ 01469 int64_t num_elems, /* Number of elements to read */ 01470 void *attrib /* Attribute */ 01471 ); 01472 01473 EXODUS_EXPORT int 01474 ex_put_partial_elem_attr (int exoid, /* NetCDF/Exodus file ID */ 01475 ex_entity_id elem_blk_id, /* Element block ID */ 01476 int64_t start_elem_num, /* Starting position to write to */ 01477 int64_t num_elems, /* Number of elements to write */ 01478 void *attrib /* Attribute */ 01479 ); 01480 01481 EXODUS_EXPORT int 01482 ex_get_elem_type(int exoid, /* NetCDF/Exodus file ID */ 01483 ex_entity_id elem_blk_id, /* Element block ID */ 01484 char *elem_type /* The name of the element type */ 01485 ); 01486 01487 /*============================================================================= 01488 * Variable Routines 01489 *===========================================================================*/ 01490 EXODUS_EXPORT int 01491 ex_put_elem_var_slab (int exoid, /* NetCDF/Exodus file ID */ 01492 int time_step, /* time index */ 01493 int elem_var_index, /* elemental variable index */ 01494 ex_entity_id elem_blk_id, /* elemental block id */ 01495 int64_t start_pos, /* Starting position to write to */ 01496 int64_t num_vals, /* Number of elements to write */ 01497 void *elem_var_vals /* variable values */ 01498 ); 01499 01500 EXODUS_EXPORT int 01501 ex_put_nodal_var_slab(int exoid, /* NetCDF/Exodus file ID */ 01502 int time_step, /* The time step index */ 01503 int nodal_var_index, /* Nodal variable index */ 01504 int64_t start_pos, /* Start position for write */ 01505 int64_t num_vals, /* Number of nodal variables */ 01506 void *nodal_var_vals /* Nodal variable values */ 01507 ); 01508 01509 /*============================================================================= 01510 * Number Map Routines 01511 *===========================================================================*/ 01512 EXODUS_EXPORT int 01513 ex_get_n_elem_num_map (int exoid, /* NetCDF/Exodus file ID */ 01514 int64_t start_ent, /* Starting position to read from */ 01515 int64_t num_ents, /* Number of elements to read */ 01516 void_int *elem_map /* element map numbers */ 01517 ); 01518 01519 EXODUS_EXPORT int 01520 ex_get_n_node_num_map(int exoid, /* NetCDF/Exodus file ID */ 01521 int64_t start_ent, /* starting node number */ 01522 int64_t num_ents, /* number of nodes to read */ 01523 void_int *node_map /* vector for node map */ 01524 ); 01525 01526 EXODUS_EXPORT int 01527 ex_get_partial_elem_num_map (int exoid, /* NetCDF/Exodus file ID */ 01528 int64_t start_ent, /* Starting position to read from */ 01529 int64_t num_ents, /* Number of elements to read */ 01530 void_int *elem_map /* element map numbers */ 01531 ); 01532 01533 EXODUS_EXPORT int 01534 ex_get_partial_node_num_map(int exoid, /* NetCDF/Exodus file ID */ 01535 int64_t start_ent, /* starting node number */ 01536 int64_t num_ents, /* number of nodes to read */ 01537 void_int *node_map /* vector for node map */ 01538 ); 01539 01540 EXODUS_EXPORT int 01541 ex_get_processor_node_maps(int exoid, /* NetCDF/Exodus file ID */ 01542 void_int *node_mapi, /* Internal FEM node IDs */ 01543 void_int *node_mapb, /* Border FEM node IDs */ 01544 void_int *node_mape, /* External FEM node IDs */ 01545 int processor /* Processor IDs */ 01546 ); 01547 01548 EXODUS_EXPORT int 01549 ex_put_processor_node_maps(int exoid, /* NetCDF/Exodus file ID */ 01550 void_int *node_mapi, /* Internal FEM node IDs */ 01551 void_int *node_mapb, /* Border FEM node IDs */ 01552 void_int *node_mape, /* External FEM node IDs */ 01553 int processor /* This processor ID */ 01554 ); 01555 01556 EXODUS_EXPORT int 01557 ex_get_processor_elem_maps(int exoid, /* NetCDF/Exodus file ID */ 01558 void_int *elem_mapi, /* Internal element IDs */ 01559 void_int *elem_mapb, /* Border element IDs */ 01560 int processor /* Processor ID */ 01561 ); 01562 01563 EXODUS_EXPORT int 01564 ex_put_processor_elem_maps(int exoid, /* NetCDF/Exodus file ID */ 01565 void_int *elem_mapi, /* Internal FEM element IDs */ 01566 void_int *elem_mapb, /* Border FEM element IDs */ 01567 int processor /* This processor ID */ 01568 ); 01569 01570 01571 /*============================================================================= 01572 * Communications Maps Routines 01573 *===========================================================================*/ 01574 01575 EXODUS_EXPORT int 01576 ex_get_cmap_params(int exoid, /* NetCDF/Exodus file ID */ 01577 void_int *node_cmap_ids, /* Nodal comm. map IDs */ 01578 void_int *node_cmap_node_cnts, /* Number of nodes in each map */ 01579 void_int *elem_cmap_ids, /* Elemental comm. map IDs */ 01580 void_int *elem_cmap_elem_cnts, /* Number of elems in each map */ 01581 int processor /* This processor ID */ 01582 ); 01583 01584 EXODUS_EXPORT int 01585 ex_put_cmap_params(int exoid, /* NetCDF/Exodus file ID */ 01586 void_int *node_map_ids, /* Node map IDs */ 01587 void_int *node_map_node_cnts,/* Nodes in nodal comm */ 01588 void_int *elem_map_ids, /* Elem map IDs */ 01589 void_int *elem_map_elem_cnts,/* Elems in elemental comm */ 01590 int64_t processor /* This processor ID */ 01591 ); 01592 01593 EXODUS_EXPORT int 01594 ex_put_cmap_params_cc(int exoid, /* NetCDF/Exodus file ID */ 01595 void_int *node_map_ids, /* Node map IDs */ 01596 void_int *node_map_node_cnts, /* Nodes in nodal comm */ 01597 void_int *node_proc_ptrs, /* Pointer into array for */ 01598 /* node maps */ 01599 void_int *elem_map_ids, /* Elem map IDs */ 01600 void_int *elem_map_elem_cnts, /* Elems in elemental comm */ 01601 void_int *elem_proc_ptrs /* Pointer into array for */ 01602 /* elem maps */ 01603 ); 01604 01605 EXODUS_EXPORT int 01606 ex_get_node_cmap(int exoid, /* NetCDF/Exodus file ID */ 01607 ex_entity_id map_id, /* Map ID */ 01608 void_int *node_ids, /* FEM node IDs */ 01609 void_int *proc_ids, /* Processor IDs */ 01610 int processor /* This processor ID */ 01611 ); 01612 01613 EXODUS_EXPORT int 01614 ex_put_node_cmap(int exoid, /* NetCDF/Exodus file ID */ 01615 ex_entity_id map_id, /* Nodal comm map ID */ 01616 void_int *node_ids, /* FEM node IDs */ 01617 void_int *proc_ids, /* Processor IDs */ 01618 int processor /* This processor ID */ 01619 ); 01620 01621 EXODUS_EXPORT int 01622 ex_get_elem_cmap(int exoid, /* NetCDF/Exodus file ID */ 01623 ex_entity_id map_id, /* Elemental comm map ID */ 01624 void_int *elem_ids, /* Element IDs */ 01625 void_int *side_ids, /* Element side IDs */ 01626 void_int *proc_ids, /* Processor IDs */ 01627 int processor /* This processor ID */ 01628 ); 01629 01630 EXODUS_EXPORT int 01631 ex_put_elem_cmap(int exoid, /* NetCDF/Exodus file ID */ 01632 ex_entity_id map_id, /* Elemental comm map ID */ 01633 void_int *elem_ids, /* Vector of element IDs */ 01634 void_int *side_ids, /* Vector of side IDs */ 01635 void_int *proc_ids, /* Vector of processor IDs */ 01636 int processor /* This processor ID */ 01637 ); 01638 01639 /* ======================================================================== 01640 * Deprecated functiona 01641 */ 01642 01643 EXODUS_EXPORT int ex_get_nodal_var (int exoid, 01644 int time_step, 01645 int nodal_var_index, 01646 int64_t num_nodes, 01647 void *nodal_var_vals); 01648 01649 EXODUS_EXPORT int ex_get_nodal_var_time (int exoid, 01650 int nodal_var_index, 01651 int64_t node_number, 01652 int beg_time_step, 01653 int end_time_step, 01654 void *nodal_var_vals); 01655 01656 /* Use ex_get_concat_sets() */ 01657 EXODUS_EXPORT int ex_get_concat_node_sets (int exoid, 01658 void_int *node_set_ids, 01659 void_int *num_nodes_per_set, 01660 void_int *num_df_per_set, 01661 void_int *node_sets_node_index, 01662 void_int *node_sets_df_index, 01663 void_int *node_sets_node_list, 01664 void *node_sets_dist_fact); 01665 01666 01667 EXODUS_EXPORT int ex_get_concat_side_sets (int exoid, 01668 void_int *side_set_ids, 01669 void_int *num_elem_per_set, 01670 void_int *num_dist_per_set, 01671 void_int *side_sets_elem_index, 01672 void_int *side_sets_dist_index, 01673 void_int *side_sets_elem_list, 01674 void_int *side_sets_side_list, 01675 void *side_sets_dist_fact); 01676 01677 EXODUS_EXPORT int ex_get_elem_attr (int exoid, 01678 ex_entity_id elem_blk_id, 01679 void *attrib); 01680 01681 EXODUS_EXPORT int ex_get_elem_attr_names (int exoid, 01682 ex_entity_id elem_blk_id, 01683 char **names); 01684 01685 EXODUS_EXPORT int ex_get_elem_blk_ids (int exoid, 01686 void_int *ids); 01687 01688 EXODUS_EXPORT int ex_get_elem_block (int exoid, 01689 ex_entity_id elem_blk_id, 01690 char *elem_type, 01691 void_int *num_elem_this_blk, 01692 void_int *num_nodes_per_elem, 01693 void_int *num_attr); 01694 01695 EXODUS_EXPORT int ex_get_elem_conn (int exoid, 01696 ex_entity_id elem_blk_id, 01697 void_int *connect); 01698 01699 EXODUS_EXPORT int ex_get_elem_map (int exoid, 01700 ex_entity_id map_id, 01701 void_int *elem_map); 01702 01703 EXODUS_EXPORT int ex_get_elem_num_map (int exoid, 01704 void_int *elem_map); 01705 01706 EXODUS_EXPORT int ex_get_elem_var (int exoid, 01707 int time_step, 01708 int elem_var_index, 01709 ex_entity_id elem_blk_id, 01710 int64_t num_elem_this_blk, 01711 void *elem_var_vals); 01712 01713 EXODUS_EXPORT int ex_get_elem_var_tab (int exoid, 01714 int num_elem_blk, 01715 int num_elem_var, 01716 int *elem_var_tab); 01717 01718 EXODUS_EXPORT int ex_get_elem_var_time (int exoid, 01719 int elem_var_index, 01720 int64_t elem_number, 01721 int beg_time_step, 01722 int end_time_step, 01723 void *elem_var_vals); 01724 01725 EXODUS_EXPORT int ex_get_map (int exoid, void_int *elem_map); 01726 01727 EXODUS_EXPORT int ex_get_node_map (int exoid, 01728 ex_entity_id map_id, 01729 void_int *node_map); 01730 01731 EXODUS_EXPORT int ex_get_node_num_map (int exoid, 01732 void_int *node_map); 01733 01734 EXODUS_EXPORT int ex_get_node_set_param (int exoid, 01735 ex_entity_id node_set_id, 01736 void_int *num_nodes_in_set, 01737 void_int *num_df_in_set); 01738 01739 EXODUS_EXPORT int ex_get_node_set (int exoid, 01740 ex_entity_id node_set_id, 01741 void_int *node_set_node_list); 01742 01743 EXODUS_EXPORT int ex_get_node_set_dist_fact (int exoid, 01744 ex_entity_id node_set_id, 01745 void *node_set_dist_fact); 01746 01747 EXODUS_EXPORT int ex_get_node_set_ids (int exoid, 01748 void_int *ids); 01749 01750 EXODUS_EXPORT int ex_get_nset_var_tab (int exoid, 01751 int num_nodesets, 01752 int num_nset_var, 01753 int *nset_var_tab); 01754 01755 EXODUS_EXPORT int ex_get_nset_var (int exoid, 01756 int time_step, 01757 int nset_var_index, 01758 ex_entity_id nset_id, 01759 int64_t num_node_this_nset, 01760 void *nset_var_vals); 01761 01762 EXODUS_EXPORT int ex_get_one_elem_attr (int exoid, 01763 ex_entity_id elem_blk_id, 01764 int attrib_index, 01765 void *attrib); 01766 01767 EXODUS_EXPORT int ex_get_side_set (int exoid, 01768 ex_entity_id side_set_id, 01769 void_int *side_set_elem_list, 01770 void_int *side_set_side_list); 01771 01772 EXODUS_EXPORT int ex_get_side_set_dist_fact (int exoid, 01773 ex_entity_id side_set_id, 01774 void *side_set_dist_fact); 01775 01776 EXODUS_EXPORT int ex_get_side_set_ids (int exoid, 01777 void_int *ids); 01778 01779 EXODUS_EXPORT int ex_get_side_set_param (int exoid, 01780 ex_entity_id side_set_id, 01781 void_int *num_side_in_set, 01782 void_int *num_dist_fact_in_set); 01783 01784 EXODUS_EXPORT int ex_get_sset_var (int exoid, 01785 int time_step, 01786 int sset_var_index, 01787 ex_entity_id sset_id, 01788 int64_t num_side_this_sset, 01789 void *sset_var_vals); 01790 01791 EXODUS_EXPORT int ex_get_sset_var_tab (int exoid, 01792 int num_sidesets, 01793 int num_sset_var, 01794 int *sset_var_tab); 01795 01796 EXODUS_EXPORT int ex_get_var_names (int exoid, 01797 const char *var_type, 01798 int num_vars, 01799 char *var_names[]); 01800 01801 EXODUS_EXPORT int ex_get_var_name (int exoid, 01802 const char *var_type, 01803 int var_num, 01804 char *var_name); 01805 01806 EXODUS_EXPORT int ex_get_var_param (int exoid, 01807 const char *var_type, 01808 int *num_vars); 01809 01810 EXODUS_EXPORT int ex_get_var_tab (int exoid, 01811 const char *var_type, 01812 int num_blk, 01813 int num_var, 01814 int *var_tab); 01815 01816 EXODUS_EXPORT int ex_put_concat_node_sets (int exoid, 01817 void_int *node_set_ids, 01818 void_int *num_nodes_per_set, 01819 void_int *num_dist_per_set, 01820 void_int *node_sets_node_index, 01821 void_int *node_sets_df_index, 01822 void_int *node_sets_node_list, 01823 void *node_sets_dist_fact); 01824 01825 EXODUS_EXPORT int ex_put_concat_side_sets (int exoid, 01826 void_int *side_set_ids, 01827 void_int *num_elem_per_set, 01828 void_int *num_dist_per_set, 01829 void_int *side_sets_elem_index, 01830 void_int *side_sets_dist_index, 01831 void_int *side_sets_elem_list, 01832 void_int *side_sets_side_list, 01833 void *side_sets_dist_fact); 01834 01835 EXODUS_EXPORT int ex_put_concat_var_param (int exoid, int num_g, int num_n, 01836 int num_e, int num_elem_blk, int *elem_var_tab); 01837 01838 EXODUS_EXPORT int ex_put_elem_attr_names(int exoid, 01839 ex_entity_id elem_blk_id, 01840 char *names[]); 01841 EXODUS_EXPORT int ex_put_elem_attr (int exoid, 01842 ex_entity_id elem_blk_id, 01843 const void *attrib); 01844 01845 EXODUS_EXPORT int ex_put_elem_block (int exoid, 01846 ex_entity_id elem_blk_id, 01847 const char *elem_type, 01848 int64_t num_elem_this_blk, 01849 int64_t num_nodes_per_elem, 01850 int64_t num_attr); 01851 01852 EXODUS_EXPORT int ex_put_elem_conn (int exoid, 01853 ex_entity_id elem_blk_id, 01854 const void_int *connect); 01855 01856 EXODUS_EXPORT int ex_put_elem_map (int exoid, 01857 ex_entity_id map_id, 01858 const void_int *elem_map); 01859 01860 EXODUS_EXPORT int ex_put_elem_num_map (int exoid, 01861 const void_int *elem_map); 01862 01863 EXODUS_EXPORT int ex_put_elem_var (int exoid, 01864 int time_step, 01865 int elem_var_index, 01866 ex_entity_id elem_blk_id, 01867 int64_t num_elem_this_blk, 01868 const void *elem_var_vals); 01869 01870 EXODUS_EXPORT int ex_put_elem_var_tab (int exoid, 01871 int num_elem_blk, 01872 int num_elem_var, 01873 int *elem_var_tab); 01874 01875 EXODUS_EXPORT int ex_put_glob_vars (int exoid, 01876 int time_step, 01877 int num_glob_vars, 01878 const void *glob_var_vals); 01879 01880 EXODUS_EXPORT int ex_put_map (int exoid, 01881 const void_int *elem_map); 01882 01883 EXODUS_EXPORT int ex_put_node_map (int exoid, 01884 ex_entity_id map_id, 01885 const void_int *node_map); 01886 01887 EXODUS_EXPORT int ex_put_node_num_map (int exoid, 01888 const void_int *node_map); 01889 01890 EXODUS_EXPORT int ex_put_node_set (int exoid, 01891 ex_entity_id node_set_id, 01892 const void_int *node_set_node_list); 01893 01894 EXODUS_EXPORT int ex_put_node_set_dist_fact (int exoid, 01895 ex_entity_id node_set_id, 01896 const void *node_set_dist_fact); 01897 01898 EXODUS_EXPORT int ex_put_node_set_param (int exoid, 01899 ex_entity_id node_set_id, 01900 int64_t num_nodes_in_set, 01901 int64_t num_dist_in_set); 01902 01903 EXODUS_EXPORT int ex_put_nset_var (int exoid, 01904 int time_step, 01905 int nset_var_index, 01906 ex_entity_id nset_id, 01907 int64_t num_nodes_this_nset, 01908 const void *nset_var_vals); 01909 01910 EXODUS_EXPORT int ex_put_nset_var_tab (int exoid, 01911 int num_nset, 01912 int num_nset_var, 01913 int *nset_var_tab); 01914 01915 EXODUS_EXPORT int ex_put_one_elem_attr (int exoid, 01916 ex_entity_id elem_blk_id, 01917 int attrib_index, 01918 const void *attrib); 01919 01920 EXODUS_EXPORT int ex_put_side_set (int exoid, 01921 ex_entity_id side_set_id, 01922 const void_int *side_set_elem_list, 01923 const void_int *side_set_side_list); 01924 01925 EXODUS_EXPORT int ex_put_side_set_dist_fact (int exoid, 01926 ex_entity_id side_set_id, 01927 const void *side_set_dist_fact); 01928 01929 EXODUS_EXPORT int ex_put_side_set_param (int exoid, 01930 ex_entity_id side_set_id, 01931 int64_t num_side_in_set, 01932 int64_t num_dist_fact_in_set); 01933 01934 EXODUS_EXPORT int ex_put_sset_var (int exoid, 01935 int time_step, 01936 int sset_var_index, 01937 ex_entity_id sset_id, 01938 int64_t num_faces_this_sset, 01939 const void *sset_var_vals); 01940 01941 EXODUS_EXPORT int ex_put_sset_var_tab (int exoid, 01942 int num_sset, 01943 int num_sset_var, 01944 int *sset_var_tab); 01945 01946 EXODUS_EXPORT int ex_put_var_name (int exoid, 01947 const char *var_type, 01948 int var_num, 01949 const char *var_name); 01950 01951 EXODUS_EXPORT int ex_put_var_names (int exoid, 01952 const char *var_type, 01953 int num_vars, 01954 char *var_names[]); 01955 01956 EXODUS_EXPORT int ex_put_var_param (int exoid, 01957 const char *var_type, 01958 int num_vars); 01959 01960 EXODUS_EXPORT int ex_put_var_tab (int exoid, 01961 const char *var_type, 01962 int num_blk, 01963 int num_var, 01964 int *var_tab); 01965 01966 /* End of Deprecated functions and their replacements 01967 * ======================================================================== */ 01968 01969 /* ERROR CODE DEFINITIONS AND STORAGE */ 01970 EXODUS_EXPORT int exerrval; /**< shared error return value */ 01971 EXODUS_EXPORT int exoptval; /**< error reporting flag (default is quiet) */ 01972 01973 EXODUS_EXPORT char* ex_name_of_object(ex_entity_type obj_type); 01974 EXODUS_EXPORT ex_entity_type ex_var_type_to_ex_entity_type(char var_type); 01975 01976 /* Should be internal use only, but was in external include file for 01977 nemesis and some codes are using the function 01978 */ 01979 EXODUS_EXPORT int ex_get_idx(int neid, /* NetCDF/Exodus file ID */ 01980 const char *ne_var_name, /* Nemesis index variable name */ 01981 int64_t *index, /* array of length 2 to hold results */ 01982 int pos /* position of this proc/cmap in index */ 01983 ); 01984 01985 01986 #ifdef __cplusplus 01987 } /* close brackets on extern "C" declaration */ 01988 #endif 01989 01990 /** 01991 * \defgroup ErrorReturnCodes Exodus error return codes - exerrval return values 01992 * @{ 01993 */ 01994 #define EX_MEMFAIL 1000 /**< memory allocation failure flag def */ 01995 #define EX_BADFILEMODE 1001 /**< bad file mode def */ 01996 #define EX_BADFILEID 1002 /**< bad file id def */ 01997 #define EX_WRONGFILETYPE 1003 /**< wrong file type for function */ 01998 #define EX_LOOKUPFAIL 1004 /**< id table lookup failed */ 01999 #define EX_BADPARAM 1005 /**< bad parameter passed */ 02000 #define EX_INTERNAL 1006 /**< internal logic error */ 02001 #define EX_MSG -1000 /**< message print code - no error implied */ 02002 #define EX_PRTLASTMSG -1001 /**< print last error message msg code */ 02003 #define EX_NOTROOTID -1002 /**< file id is not the root id; it is a subgroup id */ 02004 #define EX_NULLENTITY -1006 /**< null entity found */ 02005 /* @} */ 02006 02007 #endif 02008