|
ExodusII 4.96
|
00001 /* 00002 * Copyright (c) 2005 Sandia Corporation. Under the terms of Contract 00003 * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Governement 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 #include "stddef.h" 00048 00049 /* EXODUS II version number */ 00050 #define EX_API_VERS 4.98 00051 #define EX_API_VERS_NODOT 498 00052 #define EX_VERS EX_API_VERS 00053 00054 00055 /* 00056 * need following extern if this include file is used in a C++ 00057 * program, to keep the C++ compiler from mangling the function names. 00058 */ 00059 #ifdef __cplusplus 00060 extern "C" { 00061 #endif 00062 00063 /* 00064 * The following are miscellaneous constants used in the EXODUS II 00065 * API. They should already be defined, but are left over from the 00066 * old days... 00067 */ 00068 #ifndef TRUE 00069 #define TRUE -1 00070 #endif 00071 00072 #ifndef FALSE 00073 #define FALSE 0 00074 #endif 00075 00076 /** 00077 * \defgroup FileVars Variables controlling the file creation mode. 00078 *@{ 00079 */ 00080 #define EX_NOCLOBBER 0 /**< Don't overwrite existing database, default */ 00081 #define EX_CLOBBER 1 /**< Overwrite existing database if it exists */ 00082 #define EX_NORMAL_MODEL 2 /**< disable mods that permit storage of larger models */ 00083 #define EX_LARGE_MODEL 4 /**< enable mods that permit storage of larger models */ 00084 #define EX_NETCDF4 8 /**< use the hdf5-based netcdf4 output */ 00085 #define EX_NOSHARE 16 /**< Do not open netcdf file in "share" mode */ 00086 #define EX_SHARE 32 /**< Do open netcdf file in "share" mode */ 00087 00088 #define EX_READ 0 00089 #define EX_WRITE 1 00090 /*@}*/ 00091 00092 /*! \sa ex_inquire() */ 00093 enum ex_inquiry { 00094 EX_INQ_FILE_TYPE = 1, /**< inquire EXODUS II file type*/ 00095 EX_INQ_API_VERS = 2, /**< inquire API version number */ 00096 EX_INQ_DB_VERS = 3, /**< inquire database version number */ 00097 EX_INQ_TITLE = 4, /**< inquire database title */ 00098 EX_INQ_DIM = 5, /**< inquire number of dimensions */ 00099 EX_INQ_NODES = 6, /**< inquire number of nodes */ 00100 EX_INQ_ELEM = 7, /**< inquire number of elements */ 00101 EX_INQ_ELEM_BLK = 8, /**< inquire number of element blocks */ 00102 EX_INQ_NODE_SETS = 9, /**< inquire number of node sets*/ 00103 EX_INQ_NS_NODE_LEN = 10, /**< inquire length of node set node list */ 00104 EX_INQ_SIDE_SETS = 11, /**< inquire number of side sets*/ 00105 EX_INQ_SS_NODE_LEN = 12, /**< inquire length of side set node list */ 00106 EX_INQ_SS_ELEM_LEN = 13, /**< inquire length of side set element list */ 00107 EX_INQ_QA = 14, /**< inquire number of QA records */ 00108 EX_INQ_INFO = 15, /**< inquire number of info records */ 00109 EX_INQ_TIME = 16, /**< inquire number of time steps in the database */ 00110 EX_INQ_EB_PROP = 17, /**< inquire number of element block properties */ 00111 EX_INQ_NS_PROP = 18, /**< inquire number of node set properties */ 00112 EX_INQ_SS_PROP = 19, /**< inquire number of side set properties */ 00113 EX_INQ_NS_DF_LEN = 20, /**< inquire length of node set distribution factor list*/ 00114 EX_INQ_SS_DF_LEN = 21, /**< inquire length of side set distribution factor list*/ 00115 EX_INQ_LIB_VERS = 22, /**< inquire API Lib vers number*/ 00116 EX_INQ_EM_PROP = 23, /**< inquire number of element map properties */ 00117 EX_INQ_NM_PROP = 24, /**< inquire number of node map properties */ 00118 EX_INQ_ELEM_MAP = 25, /**< inquire number of element maps */ 00119 EX_INQ_NODE_MAP = 26, /**< inquire number of node maps*/ 00120 EX_INQ_EDGE = 27, /**< inquire number of edges */ 00121 EX_INQ_EDGE_BLK = 28, /**< inquire number of edge blocks */ 00122 EX_INQ_EDGE_SETS = 29, /**< inquire number of edge sets */ 00123 EX_INQ_ES_LEN = 30, /**< inquire length of concat edge set edge list */ 00124 EX_INQ_ES_DF_LEN = 31, /**< inquire length of concat edge set dist factor list*/ 00125 EX_INQ_EDGE_PROP = 32, /**< inquire number of properties stored per edge block */ 00126 EX_INQ_ES_PROP = 33, /**< inquire number of properties stored per edge set */ 00127 EX_INQ_FACE = 34, /**< inquire number of faces */ 00128 EX_INQ_FACE_BLK = 35, /**< inquire number of face blocks */ 00129 EX_INQ_FACE_SETS = 36, /**< inquire number of face sets */ 00130 EX_INQ_FS_LEN = 37, /**< inquire length of concat face set face list */ 00131 EX_INQ_FS_DF_LEN = 38, /**< inquire length of concat face set dist factor list*/ 00132 EX_INQ_FACE_PROP = 39, /**< inquire number of properties stored per face block */ 00133 EX_INQ_FS_PROP = 40, /**< inquire number of properties stored per face set */ 00134 EX_INQ_ELEM_SETS = 41, /**< inquire number of element sets */ 00135 EX_INQ_ELS_LEN = 42, /**< inquire length of concat element set element list */ 00136 EX_INQ_ELS_DF_LEN = 43, /**< inquire length of concat element set dist factor list*/ 00137 EX_INQ_ELS_PROP = 44, /**< inquire number of properties stored per elem set */ 00138 EX_INQ_EDGE_MAP = 45, /**< inquire number of edge maps */ 00139 EX_INQ_FACE_MAP = 46, /**< inquire number of face maps */ 00140 EX_INQ_COORD_FRAMES = 47, /**< inquire number of coordinate frames */ 00141 EX_INQ_INVALID = -1}; 00142 00143 typedef enum ex_inquiry ex_inquiry; 00144 00145 /* properties */ 00146 enum ex_entity_type { 00147 EX_NODAL = 14, /**< nodal "block" for variables*/ 00148 EX_NODE_BLOCK = 14, /**< alias for EX_NODAL */ 00149 EX_NODE_SET = 2, /**< node set property code */ 00150 EX_EDGE_BLOCK = 6, /**< edge block property code */ 00151 EX_EDGE_SET = 7, /**< edge set property code */ 00152 EX_FACE_BLOCK = 8, /**< face block property code */ 00153 EX_FACE_SET = 9, /**< face set property code */ 00154 EX_ELEM_BLOCK = 1, /**< element block property code*/ 00155 EX_ELEM_SET = 10, /**< face set property code */ 00156 00157 EX_SIDE_SET = 3, /**< side set property code */ 00158 00159 EX_ELEM_MAP = 4, /**< element map property code */ 00160 EX_NODE_MAP = 5, /**< node map property code */ 00161 EX_EDGE_MAP = 11, /**< edge map property code */ 00162 EX_FACE_MAP = 12, /**< face map property code */ 00163 00164 EX_GLOBAL = 13, /**< global "block" for variables*/ 00165 EX_INVALID = -1}; 00166 typedef enum ex_entity_type ex_entity_type; 00167 00168 /** 00169 * ex_opts() function codes - codes are OR'ed into exopts 00170 */ 00171 enum ex_options { 00172 EX_DEFAULT = 0, 00173 EX_VERBOSE = 1, /**< verbose mode message flag */ 00174 EX_DEBUG = 2, /**< debug mode def */ 00175 EX_ABORT = 4 /**< abort mode flag def */ 00176 }; 00177 typedef enum ex_options ex_options; 00178 00179 /** 00180 * \defgroup StringLengths maximum string lengths; 00181 * constants that are used as netcdf dimensions must be of type long 00182 * @{ 00183 */ 00184 /** Maximum length of an entity name, attribute name, variable name, 00185 QA record, element type name */ 00186 #define MAX_STR_LENGTH 32L 00187 /** Maximum length of the database title or an information record */ 00188 #define MAX_LINE_LENGTH 80L 00189 /** Maximum length of an error message passed to ex_err() function. Typically, internal use only */ 00190 #define MAX_ERR_LENGTH 256 00191 /* @} */ 00192 00193 #ifndef EXODUS_EXPORT 00194 #define EXODUS_EXPORT extern 00195 #endif /* EXODUS_EXPORT */ 00196 00197 /* routines for file initialization i/o */ 00198 EXODUS_EXPORT int ex_close (int exoid); 00199 EXODUS_EXPORT int ex_cvt_nodes_to_sides(int exoid, int *num_elem_per_set, 00200 int *num_nodes_per_set, int *side_sets_elem_index, 00201 int *side_sets_node_index, int *side_sets_elem_list, 00202 int *side_sets_node_list, int *side_sets_side_list); 00203 EXODUS_EXPORT int ex_copy (int in_exoid, int out_exoid); 00204 #define ex_create(path, mode, comp_ws, io_ws) ex_create_int(path, mode, comp_ws, io_ws, EX_API_VERS_NODOT) 00205 EXODUS_EXPORT int ex_create_int (const char *path, int cmode, int *comp_ws, int *io_ws, int my_version); 00206 EXODUS_EXPORT int ex_get_all_times (int exoid, void *time_values); 00207 EXODUS_EXPORT int ex_get_concat_node_sets (int exoid, 00208 int *node_set_ids, 00209 int *num_nodes_per_set, 00210 int *num_df_per_set, 00211 int *node_sets_node_index, 00212 int *node_sets_df_index, 00213 int *node_sets_node_list, 00214 void *node_sets_dist_fact); 00215 EXODUS_EXPORT int ex_get_coord_names (int exoid, 00216 char **coord_names); 00217 EXODUS_EXPORT int ex_get_coord (int exoid, 00218 void *x_coor, 00219 void *y_coor, 00220 void *z_coor); 00221 EXODUS_EXPORT int ex_get_n_coord (int exoid, 00222 int start_node_num, 00223 int num_nodes, 00224 void *x_coor, 00225 void *y_coor, 00226 void *z_coor); 00227 EXODUS_EXPORT int ex_get_concat_side_sets (int exoid, 00228 int *side_set_ids, 00229 int *num_elem_per_set, 00230 int *num_dist_per_set, 00231 int *side_sets_elem_index, 00232 int *side_sets_dist_index, 00233 int *side_sets_elem_list, 00234 int *side_sets_side_list, 00235 void *side_sets_dist_fact); 00236 EXODUS_EXPORT int ex_get_elem_attr_names (int exoid, 00237 int elem_blk_id, 00238 char **names); 00239 EXODUS_EXPORT int ex_get_elem_attr (int exoid, 00240 int elem_blk_id, 00241 void *attrib); 00242 EXODUS_EXPORT int ex_get_ids (int exoid, ex_entity_type obj_type, int *ids); 00243 EXODUS_EXPORT int ex_get_elem_blk_ids (int exoid, int *ids); 00244 EXODUS_EXPORT int ex_get_elem_block (int exoid, 00245 int elem_blk_id, 00246 char *elem_type, 00247 int *num_elem_this_blk, 00248 int *num_nodes_per_elem, 00249 int *num_attr); 00250 00251 EXODUS_EXPORT int ex_get_elem_conn (int exoid, 00252 int elem_blk_id, 00253 int *connect); 00254 00255 EXODUS_EXPORT int ex_get_elem_map (int exoid, 00256 int map_id, 00257 int *elem_map); 00258 EXODUS_EXPORT int ex_get_elem_num_map (int exoid, 00259 int *elem_map); 00260 EXODUS_EXPORT int ex_get_elem_var (int exoid, 00261 int time_step, 00262 int elem_var_index, 00263 int elem_blk_id, 00264 int num_elem_this_blk, 00265 void *elem_var_vals); 00266 EXODUS_EXPORT int ex_get_elem_varid (int exoid, 00267 int *varid); 00268 EXODUS_EXPORT int ex_get_elem_var_time (int exoid, 00269 int elem_var_index, 00270 int elem_number, 00271 int beg_time_step, 00272 int end_time_step, 00273 void *elem_var_vals); 00274 EXODUS_EXPORT int ex_get_coordinate_frames(int exoid, int *nframes, int *cf_ids, 00275 void* pt_coordinates, char* tags); 00276 00277 EXODUS_EXPORT int ex_get_glob_vars (int exoid, 00278 int time_step, 00279 int num_glob_vars, 00280 void *glob_var_vals); 00281 00282 EXODUS_EXPORT int ex_get_glob_var_time (int exoid, 00283 int glob_var_index, 00284 int beg_time_step, 00285 int end_time_step, 00286 void *glob_var_vals); 00287 00288 EXODUS_EXPORT int ex_get_info (int exoid, char **info); 00289 00290 EXODUS_EXPORT int ex_get_init (int exoid, 00291 char *title, 00292 int *num_dim, 00293 int *num_nodes, 00294 int *num_elem, 00295 int *num_elem_blk, 00296 int *num_node_sets, 00297 int *num_side_sets); 00298 00299 EXODUS_EXPORT int ex_get_map (int exoid, int *elem_map); 00300 00301 EXODUS_EXPORT int ex_get_map_param (int exoid, 00302 int *num_node_maps, 00303 int *num_elem_maps); 00304 00305 EXODUS_EXPORT int ex_get_name (int exoid, 00306 ex_entity_type obj_type, 00307 int entity_id, 00308 char *name); 00309 00310 EXODUS_EXPORT int ex_get_names (int exoid, 00311 ex_entity_type obj_type, 00312 char **names); 00313 00314 EXODUS_EXPORT int ex_get_node_map (int exoid, 00315 int map_id, 00316 int *node_map); 00317 00318 EXODUS_EXPORT int ex_get_node_num_map (int exoid, 00319 int *node_map); 00320 00321 EXODUS_EXPORT int ex_get_node_set_param (int exoid, 00322 int node_set_id, 00323 int *num_nodes_in_set, 00324 int *num_df_in_set); 00325 00326 EXODUS_EXPORT int ex_get_node_set (int exoid, 00327 int node_set_id, 00328 int *node_set_node_list); 00329 00330 EXODUS_EXPORT int ex_get_node_set_dist_fact (int exoid, 00331 int node_set_id, 00332 void *node_set_dist_fact); 00333 00334 EXODUS_EXPORT int ex_get_node_set_ids (int exoid, 00335 int *ids); 00336 00337 EXODUS_EXPORT int ex_get_nset_var_tab (int exoid, 00338 int num_nodesets, 00339 int num_nset_var, 00340 int *nset_var_tab); 00341 00342 EXODUS_EXPORT int ex_get_nset_var (int exoid, 00343 int time_step, 00344 int nset_var_index, 00345 int nset_id, 00346 int num_node_this_nset, 00347 void *nset_var_vals); 00348 00349 EXODUS_EXPORT int ex_get_nset_varid (int exoid, 00350 int *varid); 00351 00352 EXODUS_EXPORT int ex_get_nodal_var (int exoid, 00353 int time_step, 00354 int nodal_var_index, 00355 int num_nodes, 00356 void *nodal_var_vals); 00357 00358 EXODUS_EXPORT int ex_get_n_nodal_var (int exoid, 00359 int time_step, 00360 int nodal_var_index, 00361 int start_node, 00362 int num_nodes, 00363 void *nodal_var_vals); 00364 00365 EXODUS_EXPORT int ex_get_nodal_varid(int exoid, int *varid); 00366 00367 EXODUS_EXPORT int ex_get_nodal_var_time (int exoid, 00368 int nodal_var_index, 00369 int node_number, 00370 int beg_time_step, 00371 int end_time_step, 00372 void *nodal_var_vals); 00373 00374 EXODUS_EXPORT int ex_get_nodal_varid_var(int exoid, 00375 int time_step, 00376 int nodal_var_index, 00377 int num_nodes, 00378 int varid, 00379 void *nodal_var_vals); 00380 00381 EXODUS_EXPORT int ex_get_one_elem_attr (int exoid, 00382 int elem_blk_id, 00383 int attrib_index, 00384 void *attrib); 00385 00386 EXODUS_EXPORT int ex_get_prop_array (int exoid, 00387 ex_entity_type obj_type, 00388 const char *prop_name, 00389 int *values); 00390 00391 EXODUS_EXPORT int ex_get_prop (int exoid, 00392 ex_entity_type obj_type, 00393 int obj_id, 00394 const char *prop_name, 00395 int *value); 00396 00397 EXODUS_EXPORT int ex_get_partial_elem_map (int exoid, 00398 int map_id, 00399 int ent_start, 00400 int ent_count, 00401 int *elem_map); 00402 00403 EXODUS_EXPORT int ex_get_prop_names (int exoid, 00404 ex_entity_type obj_type, 00405 char **prop_names); 00406 00407 EXODUS_EXPORT int ex_get_qa (int exoid, 00408 char *qa_record[][4]); 00409 EXODUS_EXPORT int ex_get_side_set_node_list_len(int exoid, 00410 int side_set_id, 00411 int *side_set_node_list_len); 00412 EXODUS_EXPORT int ex_get_side_set_param (int exoid, 00413 int side_set_id, 00414 int *num_side_in_set, 00415 int *num_dist_fact_in_set); 00416 EXODUS_EXPORT int ex_get_side_set (int exoid, 00417 int side_set_id, 00418 int *side_set_elem_list, 00419 int *side_set_side_list); 00420 EXODUS_EXPORT int ex_get_side_set_node_count(int exoid, 00421 int side_set_id, 00422 int *side_set_node_cnt_list); 00423 EXODUS_EXPORT int ex_get_concat_side_set_node_count(int exoid, 00424 int *side_set_node_cnt_list); 00425 EXODUS_EXPORT int ex_get_side_set_dist_fact (int exoid, 00426 int side_set_id, 00427 void *side_set_dist_fact); 00428 EXODUS_EXPORT int ex_get_side_set_ids (int exoid, 00429 int *ids); 00430 EXODUS_EXPORT int ex_get_side_set_node_list(int exoid, 00431 int side_set_id, 00432 int *side_set_node_cnt_list, 00433 int *side_set_node_list); 00434 EXODUS_EXPORT int ex_get_sset_var (int exoid, 00435 int time_step, 00436 int sset_var_index, 00437 int sset_id, 00438 int num_side_this_sset, 00439 void *sset_var_vals); 00440 00441 EXODUS_EXPORT int ex_get_sset_var_tab (int exoid, 00442 int num_sidesets, 00443 int num_sset_var, 00444 int *sset_var_tab); 00445 EXODUS_EXPORT int ex_get_sset_varid (int exoid, 00446 int *varid); 00447 EXODUS_EXPORT int ex_get_time (int exoid, 00448 int time_step, 00449 void *time_value); 00450 EXODUS_EXPORT int ex_get_variable_names (int exoid, 00451 ex_entity_type obj_type, 00452 int num_vars, 00453 char *var_names[]); 00454 EXODUS_EXPORT int ex_get_var_names (int exoid, 00455 const char *var_type, 00456 int num_vars, 00457 char *var_names[]); 00458 EXODUS_EXPORT int ex_get_varid (int exoid, ex_entity_type obj_type, 00459 int *varid_arr); 00460 EXODUS_EXPORT int ex_get_variable_name (int exoid, 00461 ex_entity_type obj_type, 00462 int var_num, 00463 char *var_name); 00464 EXODUS_EXPORT int ex_get_var_name (int exoid, 00465 const char *var_type, 00466 int var_num, 00467 char *var_name); 00468 EXODUS_EXPORT int ex_get_var_param (int exoid, 00469 const char *var_type, 00470 int *num_vars); 00471 EXODUS_EXPORT int ex_get_variable_param (int exoid, 00472 ex_entity_type obj_type, 00473 int *num_vars); 00474 00475 EXODUS_EXPORT int ex_get_object_truth_vector (int exoid, 00476 ex_entity_type var_type, 00477 int object_id, 00478 int num_var, 00479 int *var_vector); 00480 EXODUS_EXPORT int ex_get_truth_table (int exoid, 00481 ex_entity_type obj_type, 00482 int num_blk, 00483 int num_var, 00484 int *var_tab); 00485 EXODUS_EXPORT int ex_get_var_tab (int exoid, 00486 const char *var_type, 00487 int num_blk, 00488 int num_var, 00489 int *var_tab); 00490 00491 EXODUS_EXPORT int ex_get_elem_var_tab (int exoid, 00492 int num_elem_blk, 00493 int num_elem_var, 00494 int *elem_var_tab); 00495 00496 #define ex_open(path, mode, comp_ws, io_ws, version) ex_open_int(path, mode, comp_ws, io_ws, version, EX_API_VERS_NODOT) 00497 EXODUS_EXPORT int ex_open_int (const char *path, 00498 int mode, 00499 int *comp_ws, 00500 int *io_ws, 00501 float *version, int my_version); 00502 00503 EXODUS_EXPORT int ex_put_attr_param (int exoid, 00504 ex_entity_type obj_type, 00505 int obj_id, 00506 int num_attrs); 00507 00508 EXODUS_EXPORT int ex_get_attr_param (int exoid, 00509 ex_entity_type obj_type, 00510 int obj_id, 00511 int *num_attrs); 00512 00513 EXODUS_EXPORT int ex_put_all_var_param (int exoid, 00514 int num_g, int num_n, 00515 int num_e, int *elem_var_tab, 00516 int num_m, int *nset_var_tab, 00517 int num_s, int *sset_var_tab); 00518 00519 EXODUS_EXPORT int ex_put_concat_elem_block (int exoid, 00520 const int* elem_blk_id, 00521 char *elem_type[], 00522 const int* num_elem_this_blk, 00523 const int* num_nodes_per_elem, 00524 const int* num_attr, 00525 int define_maps); 00526 00527 EXODUS_EXPORT int ex_put_concat_node_sets (int exoid, 00528 int *node_set_ids, 00529 int *num_nodes_per_set, 00530 int *num_dist_per_set, 00531 int *node_sets_node_index, 00532 int *node_sets_df_index, 00533 int *node_sets_node_list, 00534 void *node_sets_dist_fact); 00535 00536 EXODUS_EXPORT int ex_put_concat_side_sets (int exoid, 00537 int *side_set_ids, 00538 int *num_elem_per_set, 00539 int *num_dist_per_set, 00540 int *side_sets_elem_index, 00541 int *side_sets_dist_index, 00542 int *side_sets_elem_list, 00543 int *side_sets_side_list, 00544 void *side_sets_dist_fact); 00545 00546 EXODUS_EXPORT int ex_put_concat_var_param (int exoid, int num_g, int num_n, 00547 int num_e, int num_elem_blk, int *elem_var_tab); 00548 00549 EXODUS_EXPORT int ex_put_coord_names (int exoid, 00550 char *coord_names[]); 00551 EXODUS_EXPORT int ex_put_coord (int exoid, 00552 const void *x_coor, 00553 const void *y_coor, 00554 const void *z_coor); 00555 EXODUS_EXPORT int ex_put_n_coord (int exoid, 00556 int start_node_num, 00557 int num_nodes, 00558 const void *x_coor, 00559 const void *y_coor, 00560 const void *z_coor); 00561 EXODUS_EXPORT int ex_put_elem_attr_names(int exoid, 00562 int elem_blk_id, 00563 char *names[]); 00564 EXODUS_EXPORT int ex_put_elem_attr (int exoid, 00565 int elem_blk_id, 00566 const void *attrib); 00567 EXODUS_EXPORT int ex_put_elem_block (int exoid, 00568 int elem_blk_id, 00569 const char *elem_type, 00570 int num_elem_this_blk, 00571 int num_nodes_per_elem, 00572 int num_attr); 00573 00574 EXODUS_EXPORT int ex_put_elem_conn (int exoid, 00575 int elem_blk_id, 00576 const int *connect); 00577 EXODUS_EXPORT int ex_put_elem_map (int exoid, 00578 int map_id, 00579 const int *elem_map); 00580 EXODUS_EXPORT int ex_put_id_map(int exoid, 00581 ex_entity_type obj_type, 00582 const int *map); 00583 00584 EXODUS_EXPORT int ex_get_id_map(int exoid, 00585 ex_entity_type obj_type, 00586 int *map); 00587 00588 EXODUS_EXPORT int ex_put_elem_num_map (int exoid, 00589 const int *elem_map); 00590 EXODUS_EXPORT int ex_put_elem_var (int exoid, 00591 int time_step, 00592 int elem_var_index, 00593 int elem_blk_id, 00594 int num_elem_this_blk, 00595 const void *elem_var_vals); 00596 00597 EXODUS_EXPORT int ex_put_coordinate_frames(int exoid, int nframes, const int cf_ids[], 00598 void* pt_coordinates, const char* tags); 00599 EXODUS_EXPORT int ex_put_glob_vars (int exoid, 00600 int time_step, 00601 int num_glob_vars, 00602 const void *glob_var_vals); 00603 EXODUS_EXPORT int ex_put_info (int exoid, 00604 int num_info, 00605 char *info[]); 00606 EXODUS_EXPORT int ex_put_init (int exoid, 00607 const char *title, 00608 int num_dim, 00609 int num_nodes, 00610 int num_elem, 00611 int num_elem_blk, 00612 int num_node_sets, 00613 int num_side_sets); 00614 00615 EXODUS_EXPORT int ex_put_map (int exoid, 00616 const int *elem_map); 00617 EXODUS_EXPORT int ex_put_map_param (int exoid, 00618 int num_node_maps, 00619 int num_elem_maps); 00620 EXODUS_EXPORT int ex_put_name (int exoid, 00621 ex_entity_type obj_type, 00622 int entity_id, 00623 const char *name); 00624 EXODUS_EXPORT int ex_put_names (int exoid, 00625 ex_entity_type obj_type, 00626 char *names[]); 00627 EXODUS_EXPORT int ex_put_nodal_var (int exoid, 00628 int time_step, 00629 int nodal_var_index, 00630 int num_nodes, 00631 const void *nodal_var_vals); 00632 00633 EXODUS_EXPORT int ex_put_n_nodal_var (int exoid, 00634 int time_step, 00635 int nodal_var_index, 00636 int start_node, 00637 int num_nodes, 00638 const void *nodal_var_vals); 00639 00640 EXODUS_EXPORT int ex_put_nodal_varid_var(int exoid, 00641 int time_step, 00642 int nodal_var_index, 00643 int num_nodes, 00644 int varid, 00645 const void *nodal_var_vals); 00646 00647 EXODUS_EXPORT int ex_put_node_map (int exoid, 00648 int map_id, 00649 const int *node_map); 00650 EXODUS_EXPORT int ex_put_node_num_map (int exoid, 00651 const int *node_map); 00652 EXODUS_EXPORT int ex_put_node_set_param (int exoid, 00653 int node_set_id, 00654 int num_nodes_in_set, 00655 int num_dist_in_set); 00656 EXODUS_EXPORT int ex_put_node_set (int exoid, 00657 int node_set_id, 00658 const int *node_set_node_list); 00659 EXODUS_EXPORT int ex_put_node_set_dist_fact (int exoid, 00660 int node_set_id, 00661 const void *node_set_dist_fact); 00662 EXODUS_EXPORT int ex_put_nset_var (int exoid, 00663 int time_step, 00664 int nset_var_index, 00665 int nset_id, 00666 int num_nodes_this_nset, 00667 const void *nset_var_vals); 00668 00669 EXODUS_EXPORT int ex_put_nset_var_tab (int exoid, 00670 int num_nset, 00671 int num_nset_var, 00672 int *nset_var_tab); 00673 EXODUS_EXPORT int ex_put_one_elem_attr (int exoid, 00674 int elem_blk_id, 00675 int attrib_index, 00676 const void *attrib); 00677 00678 EXODUS_EXPORT int ex_put_n_one_attr( int exoid, 00679 ex_entity_type obj_type, 00680 int obj_id, 00681 int start_num, 00682 int num_ent, 00683 int attrib_index, 00684 const void *attrib ); 00685 00686 EXODUS_EXPORT int ex_put_partial_elem_map (int exoid, 00687 int map_id, 00688 int ent_start, 00689 int ent_count, 00690 const int *elem_map); 00691 00692 EXODUS_EXPORT int ex_put_partial_set_dist_fact (int exoid, 00693 ex_entity_type set_type, 00694 int set_id, 00695 int offset, 00696 int num_to_put, 00697 const void *set_dist_fact); 00698 00699 EXODUS_EXPORT int ex_put_prop (int exoid, 00700 ex_entity_type obj_type, 00701 int obj_id, 00702 const char *prop_name, 00703 int value); 00704 00705 EXODUS_EXPORT int ex_put_prop_array (int exoid, 00706 ex_entity_type obj_type, 00707 const char *prop_name, 00708 const int *values); 00709 EXODUS_EXPORT int ex_put_prop_names (int exoid, 00710 ex_entity_type obj_type, 00711 int num_props, 00712 char **prop_names); 00713 EXODUS_EXPORT int ex_put_qa (int exoid, 00714 int num_qa_records, 00715 char* qa_record[][4]); 00716 EXODUS_EXPORT int ex_put_side_set_param (int exoid, 00717 int side_set_id, 00718 int num_side_in_set, 00719 int num_dist_fact_in_set); 00720 EXODUS_EXPORT int ex_put_side_set (int exoid, 00721 int side_set_id, 00722 const int *side_set_elem_list, 00723 const int *side_set_side_list); 00724 EXODUS_EXPORT int ex_put_side_set_dist_fact (int exoid, 00725 int side_set_id, 00726 const void *side_set_dist_fact); 00727 EXODUS_EXPORT int ex_put_sset_var (int exoid, 00728 int time_step, 00729 int sset_var_index, 00730 int sset_id, 00731 int num_faces_this_sset, 00732 const void *sset_var_vals); 00733 00734 EXODUS_EXPORT int ex_put_sset_var_tab (int exoid, 00735 int num_sset, 00736 int num_sset_var, 00737 int *sset_var_tab); 00738 EXODUS_EXPORT int ex_put_time (int exoid, 00739 int time_step, 00740 const void *time_value); 00741 EXODUS_EXPORT int ex_put_varid_var(int exoid, 00742 int time_step, 00743 int varid, 00744 int num_entity, 00745 const void *var_vals); 00746 00747 EXODUS_EXPORT int ex_put_var_names (int exoid, 00748 const char *var_type, 00749 int num_vars, 00750 char *var_names[]); 00751 EXODUS_EXPORT int ex_put_var_name (int exoid, 00752 const char *var_type, 00753 int var_num, 00754 const char *var_name); 00755 EXODUS_EXPORT int ex_put_var_param (int exoid, 00756 const char *var_type, 00757 int num_vars); 00758 EXODUS_EXPORT int ex_put_variable_names (int exoid, 00759 ex_entity_type obj_type, 00760 int num_vars, 00761 char* var_names[]); 00762 EXODUS_EXPORT int ex_put_variable_name (int exoid, 00763 ex_entity_type obj_type, 00764 int var_num, 00765 const char *var_name); 00766 EXODUS_EXPORT int ex_put_variable_param (int exoid, 00767 ex_entity_type obj_type, 00768 int num_vars); 00769 EXODUS_EXPORT int ex_put_truth_table (int exoid, 00770 ex_entity_type obj_type, 00771 int num_blk, 00772 int num_var, 00773 int *var_tab); 00774 EXODUS_EXPORT int ex_put_var_tab (int exoid, 00775 const char *var_type, 00776 int num_blk, 00777 int num_var, 00778 int *var_tab); 00779 00780 EXODUS_EXPORT int ex_put_elem_var_tab (int exoid, 00781 int num_elem_blk, 00782 int num_elem_var, 00783 int *elem_var_tab); 00784 EXODUS_EXPORT int ex_update (int exoid); 00785 EXODUS_EXPORT int ex_get_num_props (int exoid, ex_entity_type obj_type); 00786 EXODUS_EXPORT int ex_large_model(int exoid); 00787 EXODUS_EXPORT size_t ex_header_size(int exoid); 00788 00789 EXODUS_EXPORT void ex_err(const char*, const char*, int); 00790 EXODUS_EXPORT void ex_get_err(const char** msg, const char** func, int* errcode); 00791 EXODUS_EXPORT void ex_opts(int options); 00792 EXODUS_EXPORT int ex_inquire(int exoid, int inquiry, int*, void*, char*); 00793 EXODUS_EXPORT int ex_inquire_int(int exoid, int inquiry); 00794 00795 EXODUS_EXPORT int ex_get_varid_var(int exoid, 00796 int time_step, 00797 int varid, 00798 int num_entity, 00799 void *var_vals); 00800 00801 /* ERROR CODE DEFINITIONS AND STORAGE */ 00802 extern int exerrval; /**< shared error return value */ 00803 extern int exoptval; /**< error reporting flag (default is quiet) */ 00804 00805 char* ex_name_of_object(ex_entity_type obj_type); 00806 ex_entity_type ex_var_type_to_ex_entity_type(char var_type); 00807 00808 #ifdef __cplusplus 00809 } /* close brackets on extern "C" declaration */ 00810 #endif 00811 00812 /** 00813 * \defgroup ErrorReturnCodes Exodus error return codes - exerrval return values 00814 * @{ 00815 */ 00816 #define EX_MEMFAIL 1000 /**< memory allocation failure flag def */ 00817 #define EX_BADFILEMODE 1001 /**< bad file mode def */ 00818 #define EX_BADFILEID 1002 /**< bad file id def */ 00819 #define EX_WRONGFILETYPE 1003 /**< wrong file type for function */ 00820 #define EX_LOOKUPFAIL 1004 /**< id table lookup failed */ 00821 #define EX_BADPARAM 1005 /**< bad parameter passed */ 00822 #define EX_MSG -1000 /**< message print code - no error implied */ 00823 #define EX_PRTLASTMSG -1001 /**< print last error message msg code */ 00824 #define EX_NULLENTITY -1006 /**< null entity found */ 00825 /* @} */ 00826 00827 #include "exodusII_ext.h" 00828 #endif 00829