exodusII.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2005 Sandia Corporation. Under the terms of Contract
3  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Governement
4  * retains certain rights in this software.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * * Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * * Redistributions in binary form must reproduce the above
14  * copyright notice, this list of conditions and the following
15  * disclaimer in the documentation and/or other materials provided
16  * with the distribution.
17  *
18  * * Neither the name of Sandia Corporation nor the names of its
19  * contributors may be used to endorse or promote products derived
20  * from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
33  * OF THE POSSIBILITY OF SUCH DAMAGE.
34  *
35  */
36 
37 /*****************************************************************************
38  *
39  * exodusII.h - Exodus II API include file
40  *
41  *****************************************************************************/
42 
43 #ifndef EXODUS_II_HDR
44 #define EXODUS_II_HDR
45 
46 #include "netcdf.h"
47 #include <stddef.h>
48 #include <stdlib.h>
49 #include <stdint.h>
50 
51 #ifndef NC_INT64
52 #error "NetCDF version 4.1.2 or later is required."
53 #endif
54 
55 /* EXODUS II version number */
56 #define EX_API_VERS 5.22f
57 #define EX_API_VERS_NODOT 522
58 #define EX_VERS EX_API_VERS
59 #define NEMESIS_API_VERSION EX_API_VERS
60 #define NEMESIS_API_VERSION_NODOT EX_API_VERS_NODOT
61 #define NEMESIS_FILE_VERSION 2.6
62 
63 /*
64  * need following extern if this include file is used in a C++
65  * program, to keep the C++ compiler from mangling the function names.
66  */
67 #ifdef __cplusplus
68 extern "C" {
69 #endif
70 
71  /*
72  * The following are miscellaneous constants used in the EXODUS II
73  * API. They should already be defined, but are left over from the
74  * old days...
75  */
76 #ifndef TRUE
77 #define TRUE -1
78 #endif
79 
80 #ifndef FALSE
81 #define FALSE 0
82 #endif
83 
88  /* Modes for ex_open */
89 #define EX_READ 0x0000
90 #define EX_WRITE 0x0001
92 #define EX_NOCLOBBER 0x0004
93 #define EX_CLOBBER 0x0008
94 #define EX_NORMAL_MODEL 0x0010
95 #define EX_LARGE_MODEL 0x0020
96 #define EX_NETCDF4 0x0040
97 #define EX_NOSHARE 0x0080
98 #define EX_SHARE 0x0100
99 #define EX_NOCLASSIC 0x0200
101  /* Need to distinguish between storage on database (DB in name) and
102  passed through the API functions (API in name).
103  */
104 #define EX_MAPS_INT64_DB 0x0400
105 #define EX_IDS_INT64_DB 0x0800
106 #define EX_BULK_INT64_DB 0x1000
107 #define EX_ALL_INT64_DB (EX_MAPS_INT64_DB|EX_IDS_INT64_DB|EX_BULK_INT64_DB)
109 #define EX_MAPS_INT64_API 0x2000
110 #define EX_IDS_INT64_API 0x4000
111 #define EX_BULK_INT64_API 0x8000
112 #define EX_INQ_INT64_API 0x10000
113 #define EX_ALL_INT64_API (EX_MAPS_INT64_API|EX_IDS_INT64_API|EX_BULK_INT64_API|EX_INQ_INT64_API)
116 
117 
118  enum ex_inquiry {
132  EX_INQ_QA = 14,
133  EX_INQ_INFO = 15,
134  EX_INQ_TIME = 16,
145  EX_INQ_EDGE = 27,
152  EX_INQ_FACE = 34,
170 
171  typedef enum ex_inquiry ex_inquiry;
172 
173  /* Options */
178  /* Modes for ex_open */
182  EX_OPT_COMPRESSION_TYPE, /* Currently not used. GZip by default */
183  EX_OPT_COMPRESSION_LEVEL, /* 0 (disabled/fastest) ... 9 (best/slowest) */
184  EX_OPT_COMPRESSION_SHUFFLE, /* 0 (disabled); 1 (enabled) */
185  EX_OPT_INTEGER_SIZE_API, /* See *_INT64_* values above */
186  EX_OPT_INTEGER_SIZE_DB /* (query only) */
187  };
192  EX_NODAL = 14,
200  EX_ELEM_SET = 10,
206  EX_EDGE_MAP = 11,
207  EX_FACE_MAP = 12,
209  EX_GLOBAL = 13,
211  EX_INVALID = -1};
213 
217  enum ex_options {
220  EX_DEBUG = 2,
221  EX_ABORT = 4
222  };
223  typedef enum ex_options ex_options;
224 
228 #define EX_INVALID_ID -1
229 
236 #define MAX_STR_LENGTH 32L
237 
238 #define MAX_NAME_LENGTH MAX_STR_LENGTH
239 
241 #define MAX_LINE_LENGTH 80L
242 
243 #define MAX_ERR_LENGTH 256
244  /* @} */
245 
247  typedef int64_t ex_entity_id;
248 
254  typedef void void_int;
255 
260  typedef struct ex_init_params {
261  char title[MAX_LINE_LENGTH + 1];
262  int64_t num_dim;
263  int64_t num_nodes;
264  int64_t num_edge;
265  int64_t num_edge_blk;
266  int64_t num_face;
267  int64_t num_face_blk;
268  int64_t num_elem;
269  int64_t num_elem_blk;
270  int64_t num_node_sets;
271  int64_t num_edge_sets;
272  int64_t num_face_sets;
273  int64_t num_side_sets;
274  int64_t num_elem_sets;
275  int64_t num_node_maps;
276  int64_t num_edge_maps;
277  int64_t num_face_maps;
278  int64_t num_elem_maps;
279  } ex_init_params;
280 
281  typedef struct ex_block {
282  int64_t id;
283  ex_entity_type type;
284  char topology[MAX_STR_LENGTH+1];
285  int64_t num_entry;
289  int64_t num_attribute;
290  } ex_block;
291 
292  typedef struct ex_set {
293  int64_t id;
294  ex_entity_type type;
295  int64_t num_entry;
297  void_int* entry_list;
298  void_int* extra_list;
300  } ex_set;
301 
302  typedef struct ex_block_params {
303  void_int* edge_blk_id;
304  char** edge_type;
308  void_int* face_blk_id;
309  char** face_type;
313  void_int* elem_blk_id;
314  char** elem_type;
321  } ex_block_params;
322 
323  typedef struct ex_set_specs {
324  void_int* sets_ids;
326  void_int* num_dist_per_set;
327  void_int* sets_entry_index;
328  void_int* sets_dist_index;
329  void_int* sets_entry_list;
330  void_int* sets_extra_list;
332  } ex_set_specs;
333 
334  typedef struct ex_var_params {
335  int num_glob;
336  int num_node;
337  int num_edge;
339  int num_face;
341  int num_elem;
343  int num_nset;
345  int num_eset;
347  int num_fset;
349  int num_sset;
353  } ex_var_params;
354  /* @} */
355 
356 #ifndef EXODUS_EXPORT
357 #define EXODUS_EXPORT extern
358 #endif /* EXODUS_EXPORT */
359 
360  /* routines for file initialization i/o */
361  EXODUS_EXPORT int ex_close (int exoid);
362 
363  EXODUS_EXPORT int ex_copy (int in_exoid, int out_exoid);
364 
365 #define ex_create(path, mode, comp_ws, io_ws) ex_create_int(path, mode, comp_ws, io_ws, EX_API_VERS_NODOT)
366 
367  EXODUS_EXPORT int ex_create_int (const char *path, int cmode, int *comp_ws, int *io_ws, int my_version);
368 
369  EXODUS_EXPORT int ex_get_all_times (int exoid,
370  void *time_values);
371 
372  EXODUS_EXPORT int ex_get_coord_names (int exoid,
373  char **coord_names);
374 
375  EXODUS_EXPORT int ex_get_coord (int exoid,
376  void *x_coor,
377  void *y_coor,
378  void *z_coor);
379 
380  EXODUS_EXPORT int ex_get_n_coord (int exoid,
381  int64_t start_node_num,
382  int64_t num_nodes,
383  void *x_coor,
384  void *y_coor,
385  void *z_coor);
386 
387  EXODUS_EXPORT int ex_get_ids (int exoid,
388  ex_entity_type obj_type,
389  void_int *ids);
390 
391  EXODUS_EXPORT int ex_get_coordinate_frames(int exoid,
392  int *nframes,
393  void_int *cf_ids,
394  void* pt_coordinates,
395  char* tags);
396 
397  EXODUS_EXPORT int ex_get_glob_vars (int exoid,
398  int time_step,
399  int num_glob_vars,
400  void *glob_var_vals);
401 
402  EXODUS_EXPORT int ex_get_glob_var_time (int exoid,
403  int glob_var_index,
404  int beg_time_step,
405  int end_time_step,
406  void *glob_var_vals);
407 
408  EXODUS_EXPORT int ex_get_info (int exoid, char **info);
409 
410  EXODUS_EXPORT int ex_put_init_ext (int exoid, const ex_init_params *param);
411 
412  EXODUS_EXPORT int ex_get_init_ext (int exoid, ex_init_params *param);
413 
414  EXODUS_EXPORT int ex_get_init (int exoid,
415  char *title,
416  void_int *num_dim,
417  void_int *num_nodes,
418  void_int *num_elem,
419  void_int *num_elem_blk,
420  void_int *num_node_sets,
421  void_int *num_side_sets);
422 
423  EXODUS_EXPORT int ex_put_init (int exoid,
424  const char *title,
425  int64_t num_dim,
426  int64_t num_nodes,
427  int64_t num_elem,
428  int64_t num_elem_blk,
429  int64_t num_node_sets,
430  int64_t num_side_sets);
431 
432  EXODUS_EXPORT int ex_get_map_param (int exoid,
433  int *num_node_maps,
434  int *num_elem_maps);
435 
436  EXODUS_EXPORT int ex_get_name (int exoid,
437  ex_entity_type obj_type,
438  ex_entity_id entity_id,
439  char *name);
440 
441  EXODUS_EXPORT int ex_get_names (int exoid,
442  ex_entity_type obj_type,
443  char **names);
444 
445  EXODUS_EXPORT int ex_get_nset_var_tab (int exoid,
446  int num_nodesets,
447  int num_nset_var,
448  int *nset_var_tab);
449 
450  EXODUS_EXPORT int ex_get_n_nodal_var (int exoid,
451  int time_step,
452  int nodal_var_index,
453  int64_t start_node,
454  int64_t num_nodes,
455  void *nodal_var_vals);
456 
457 
458  EXODUS_EXPORT int ex_get_prop_array (int exoid,
459  ex_entity_type obj_type,
460  const char *prop_name,
461  void_int *values);
462 
463  EXODUS_EXPORT int ex_get_prop (int exoid,
464  ex_entity_type obj_type,
465  ex_entity_id obj_id,
466  const char *prop_name,
467  void_int *value);
468 
469  EXODUS_EXPORT int ex_get_partial_num_map (int exoid,
470  ex_entity_type map_type,
471  ex_entity_id map_id,
472  int64_t ent_start,
473  int64_t ent_count,
474  void_int *elem_map);
475 
476  EXODUS_EXPORT int ex_get_prop_names (int exoid,
477  ex_entity_type obj_type,
478  char **prop_names);
479 
480  EXODUS_EXPORT int ex_get_qa (int exoid,
481  char *qa_record[][4]);
482 
483  EXODUS_EXPORT int ex_get_time (int exoid,
484  int time_step,
485  void *time_value);
486 
487  EXODUS_EXPORT int ex_get_variable_names (int exoid,
488  ex_entity_type obj_type,
489  int num_vars,
490  char *var_names[]);
491  EXODUS_EXPORT int ex_get_variable_name (int exoid,
492  ex_entity_type obj_type,
493  int var_num,
494  char *var_name);
495 
496  EXODUS_EXPORT int ex_get_variable_param (int exoid,
497  ex_entity_type obj_type,
498  int *num_vars);
499 
500  EXODUS_EXPORT int ex_get_object_truth_vector (int exoid,
501  ex_entity_type var_type,
502  ex_entity_id object_id,
503  int num_var,
504  int *var_vector);
505 
506  EXODUS_EXPORT int ex_get_truth_table (int exoid,
507  ex_entity_type obj_type,
508  int num_blk,
509  int num_var,
510  int *var_tab);
511 
512 #define ex_open(path, mode, comp_ws, io_ws, version) ex_open_int(path, mode, comp_ws, io_ws, version, EX_API_VERS_NODOT)
513  EXODUS_EXPORT int ex_open_int (const char *path,
514  int mode,
515  int *comp_ws,
516  int *io_ws,
517  float *version, int my_version);
518 
519  EXODUS_EXPORT int ex_put_attr_param (int exoid,
520  ex_entity_type obj_type,
521  ex_entity_id obj_id,
522  int num_attrs);
523 
524  EXODUS_EXPORT int ex_get_attr_param (int exoid,
525  ex_entity_type obj_type,
526  ex_entity_id obj_id,
527  int *num_attrs);
528 
529  EXODUS_EXPORT int ex_put_all_var_param (int exoid,
530  int num_g, int num_n,
531  int num_e, int *elem_var_tab,
532  int num_m, int *nset_var_tab,
533  int num_s, int *sset_var_tab);
534 
535  EXODUS_EXPORT int ex_put_concat_elem_block (int exoid,
536  const void_int* elem_blk_id,
537  char *elem_type[],
538  const void_int* num_elem_this_blk,
539  const void_int* num_nodes_per_elem,
540  const void_int* num_attr,
541  int define_maps);
542 
543  EXODUS_EXPORT int ex_put_coord_names (int exoid,
544  char *coord_names[]);
545 
546  EXODUS_EXPORT int ex_put_coord (int exoid,
547  const void *x_coor,
548  const void *y_coor,
549  const void *z_coor);
550 
551  EXODUS_EXPORT int ex_put_n_coord (int exoid,
552  int64_t start_node_num,
553  int64_t num_nodes,
554  const void *x_coor,
555  const void *y_coor,
556  const void *z_coor);
557 
558  EXODUS_EXPORT int ex_put_id_map(int exoid,
559  ex_entity_type obj_type,
560  const void_int *map);
561 
562  EXODUS_EXPORT int ex_put_partial_id_map(int exoid,
563  ex_entity_type obj_type,
564  int64_t start_entity_num,
565  int64_t num_entities,
566  const void_int *map);
567 
568  EXODUS_EXPORT int ex_put_n_elem_num_map (int exoid,
569  int64_t start_ent,
570  int64_t num_ents,
571  const void_int *map);
572 
573  EXODUS_EXPORT int ex_put_n_node_num_map (int exoid,
574  int64_t start_ent,
575  int64_t num_ents,
576  const void_int *map);
577 
578  EXODUS_EXPORT int ex_get_id_map(int exoid,
579  ex_entity_type obj_type,
580  void_int *map);
581 
582  EXODUS_EXPORT int ex_put_coordinate_frames(int exoid,
583  int nframes,
584  const void_int *cf_ids,
585  void* pt_coordinates,
586  const char* tags);
587 
588  EXODUS_EXPORT int ex_put_info (int exoid,
589  int num_info,
590  char *info[]);
591 
592  EXODUS_EXPORT int ex_put_map_param (int exoid,
593  int num_node_maps,
594  int num_elem_maps);
595 
596  EXODUS_EXPORT int ex_put_name (int exoid,
597  ex_entity_type obj_type,
598  ex_entity_id entity_id,
599  const char *name);
600 
601  EXODUS_EXPORT int ex_put_names (int exoid,
602  ex_entity_type obj_type,
603  char *names[]);
604 
605  EXODUS_EXPORT int ex_put_n_one_attr( int exoid,
606  ex_entity_type obj_type,
607  ex_entity_id obj_id,
608  int64_t start_num,
609  int64_t num_ent,
610  int attrib_index,
611  const void *attrib );
612 
613  EXODUS_EXPORT int ex_put_prop (int exoid,
614  ex_entity_type obj_type,
615  ex_entity_id obj_id,
616  const char *prop_name,
617  ex_entity_id value);
618 
619  EXODUS_EXPORT int ex_put_prop_array (int exoid,
620  ex_entity_type obj_type,
621  const char *prop_name,
622  const void_int *values);
623 
624  EXODUS_EXPORT int ex_put_prop_names (int exoid,
625  ex_entity_type obj_type,
626  int num_props,
627  char **prop_names);
628 
629  EXODUS_EXPORT int ex_put_qa (int exoid,
630  int num_qa_records,
631  char* qa_record[][4]);
632 
633  EXODUS_EXPORT int ex_put_time (int exoid,
634  int time_step,
635  const void *time_value);
636 
637  EXODUS_EXPORT int ex_put_variable_name (int exoid,
638  ex_entity_type obj_type,
639  int var_num,
640  const char *var_name);
641 
642  EXODUS_EXPORT int ex_put_variable_names (int exoid,
643  ex_entity_type obj_type,
644  int num_vars,
645  char* var_names[]);
646 
647  EXODUS_EXPORT int ex_put_variable_param (int exoid,
648  ex_entity_type obj_type,
649  int num_vars);
650 
651  EXODUS_EXPORT int ex_put_truth_table (int exoid,
652  ex_entity_type obj_type,
653  int num_blk,
654  int num_var,
655  int *var_tab);
656 
657  EXODUS_EXPORT int ex_update (int exoid);
658  EXODUS_EXPORT int ex_get_num_props (int exoid, ex_entity_type obj_type);
659  EXODUS_EXPORT int ex_large_model(int exoid);
660  EXODUS_EXPORT size_t ex_header_size(int exoid);
661 
662  EXODUS_EXPORT void ex_err(const char *module_name, const char *message, int err_num);
663  EXODUS_EXPORT void ex_get_err(const char** msg, const char** func, int* errcode);
664  EXODUS_EXPORT void ex_opts(int options);
665  EXODUS_EXPORT int ex_inquire(int exoid, int inquiry, void_int*, float*, char*);
666  EXODUS_EXPORT int64_t ex_inquire_int(int exoid, int inquiry);
667  EXODUS_EXPORT int ex_int64_status(int exoid);
668  EXODUS_EXPORT int ex_set_int64_status(int exoid, int mode);
669 
674  EXODUS_EXPORT int ex_set_max_name_length(int exoid, int length);
675 
676  EXODUS_EXPORT int ex_set_option(int exoid, ex_option_type option, int option_value);
677 
678  /* Write Node Edge Face or Element Number Map */
679  EXODUS_EXPORT int ex_put_num_map(int exoid,
680  ex_entity_type map_type,
681  ex_entity_id map_id,
682  const void_int *map);
683 
684  /* Read Number Map */
685  EXODUS_EXPORT int ex_get_num_map(int exoid,
686  ex_entity_type map_type,
687  ex_entity_id map_id,
688  void_int *map);
689 
690  /* Write Edge Face or Element Block Parameters */
691  EXODUS_EXPORT int ex_put_block(int exoid,
692  ex_entity_type blk_type,
693  ex_entity_id blk_id,
694  const char *entry_descrip,
695  int64_t num_entries_this_blk,
696  int64_t num_nodes_per_entry,
697  int64_t num_edges_per_entry,
698  int64_t num_faces_per_entry,
699  int64_t num_attr_per_entry);
700 
701 
703  EXODUS_EXPORT int ex_get_block(int exoid,
704  ex_entity_type blk_type,
705  ex_entity_id blk_id,
706  char *elem_type,
707  void_int *num_entries_this_blk,
708  void_int *num_nodes_per_entry,
709  void_int *num_edges_per_entry,
710  void_int *num_faces_per_entry,
711  void_int *num_attr_per_entry);
712 
713  /* Read Edge Face or Element Block Parameters */
714  EXODUS_EXPORT int ex_get_block_param(int exoid,
715  ex_block *block);
716 
717  EXODUS_EXPORT int ex_put_block_param(int exoid,
718  const ex_block block);
719 
720  /* Write All Edge Face and Element Block Parameters */
721  EXODUS_EXPORT int ex_put_concat_all_blocks(int exoid,
722  const ex_block_params *param);
723 
724  EXODUS_EXPORT int ex_put_entity_count_per_polyhedra(int exoid,
725  ex_entity_type blk_type,
726  ex_entity_id blk_id,
727  const int *entity_counts);
728 
729  EXODUS_EXPORT int ex_get_entity_count_per_polyhedra(int exoid,
730  ex_entity_type blk_type,
731  ex_entity_id blk_id,
732  int *entity_counts);
733 
734  /* Write Edge Face or Element Block Connectivity */
735  EXODUS_EXPORT int ex_put_conn(int exoid,
736  ex_entity_type blk_type,
737  ex_entity_id blk_id,
738  const void_int *node_conn,
739  const void_int *elem_edge_conn,
740  const void_int *elem_face_conn);
741 
742  /* Read Edge Face or Element Block Connectivity */
743  EXODUS_EXPORT int ex_get_conn(int exoid,
744  ex_entity_type blk_type,
745  ex_entity_id blk_id,
746  void_int *nodeconn,
747  void_int *edgeconn,
748  void_int *faceconn);
749 
750  /* Read Partial Edge Face or Element Block Connectivity */
751  EXODUS_EXPORT int ex_get_n_conn(int exoid,
752  ex_entity_type blk_type,
753  ex_entity_id blk_id,
754  int64_t start_num,
755  int64_t num_ent,
756  void_int *nodeconn,
757  void_int *edgeconn,
758  void_int *faceconn);
759 
760  /* Write Edge Face or Element Block Attributes */
761  EXODUS_EXPORT int ex_put_attr(int exoid,
762  ex_entity_type blk_type,
763  ex_entity_id blk_id,
764  const void *attrib);
765 
766  /* Read Edge Face or Element Block Attributes */
767  EXODUS_EXPORT int ex_get_attr(int exoid,
768  ex_entity_type obj_type,
769  ex_entity_id obj_id,
770  void *attrib);
771 
772  /* Write One Edge Face or Element Block Attribute */
773  EXODUS_EXPORT int ex_put_one_attr(int exoid,
774  ex_entity_type obj_type,
775  ex_entity_id obj_id,
776  int attrib_index,
777  const void *attrib);
778 
779  /* Read One Edge Face or Element Block Attribute */
780  EXODUS_EXPORT int ex_get_one_attr(int exoid,
781  ex_entity_type obj_type,
782  ex_entity_id obj_id,
783  int attrib_index,
784  void *attrib);
785 
786  /* Read One Edge Face or Element Block Attribute */
787  EXODUS_EXPORT int ex_get_n_one_attr(int exoid,
788  ex_entity_type obj_type,
789  ex_entity_id obj_id,
790  int64_t start_num,
791  int64_t num_ent,
792  int attrib_index,
793  void *attrib);
794 
795  /* Write Edge Face or Element Block Attribute Names */
796  EXODUS_EXPORT int ex_put_attr_names(int exoid,
797  ex_entity_type blk_type,
798  ex_entity_id blk_id,
799  char **names);
800 
801  /* Read Edge Face or Element Block Attribute Names */
802  EXODUS_EXPORT int ex_get_attr_names(int exoid,
803  ex_entity_type obj_type,
804  ex_entity_id obj_id,
805  char **names);
806 
807  /* Write Node Edge Face or Side Set Parameters */
808  EXODUS_EXPORT int ex_put_set_param(int exoid,
809  ex_entity_type set_type,
810  ex_entity_id set_id,
811  int64_t num_entries_in_set,
812  int64_t num_dist_fact_in_set);
813 
814  /* Read Node Edge Face or Side Set Parameters */
815  EXODUS_EXPORT int ex_get_set_param(int exoid,
816  ex_entity_type set_type,
817  ex_entity_id set_id,
818  void_int *num_entry_in_set,
819  void_int *num_dist_fact_in_set);
820 
821  /* Write a Node Edge Face or Side Set */
822  EXODUS_EXPORT int ex_put_set(int exoid,
823  ex_entity_type set_type,
824  ex_entity_id set_id,
825  const void_int *set_entry_list,
826  const void_int *set_extra_list);
827 
828  /* Read a Node Edge Face or Side Set */
829  EXODUS_EXPORT int ex_get_set(int exoid,
830  ex_entity_type set_type,
831  ex_entity_id set_id,
832  void_int *set_entry_list,
833  void_int *set_extra_list);
834 
835  /* Write Node Edge Face or Side Set Distribution Factors */
836  EXODUS_EXPORT int ex_put_set_dist_fact(int exoid,
837  ex_entity_type set_type,
838  ex_entity_id set_id,
839  const void *set_dist_fact);
840 
841  /* Read Node Edge Face or Side Set Distribution Factors */
842  EXODUS_EXPORT int ex_get_set_dist_fact(int exoid,
843  ex_entity_type set_type,
844  ex_entity_id set_id,
845  void *set_dist_fact);
846 
847  /* Write Concatenated Node Edge Face or Side Sets */
848  EXODUS_EXPORT int ex_put_concat_sets(int exoid,
849  ex_entity_type set_type,
850  const struct ex_set_specs *set_specs);
851 
852  /* Read Concatenated Node Edge Face or Side Sets */
853  EXODUS_EXPORT int ex_get_concat_sets(int exoid,
854  ex_entity_type set_type,
855  struct ex_set_specs *set_specs);
856 
857  /* Write Concatenated Node Edge Face or Side Sets */
858  EXODUS_EXPORT int ex_put_sets(int exoid,
859  size_t set_count,
860  const struct ex_set *sets);
861 
862  /* Read Concatenated Node Edge Face or Side Sets */
863  EXODUS_EXPORT int ex_get_sets(int exoid,
864  size_t set_count,
865  struct ex_set *sets);
866 
867  /* (MODIFIED) Write All Results Variables Parameters */
868  EXODUS_EXPORT int ex_put_all_var_param_ext(int exoid,
869  const ex_var_params *vp);
870 
871  /* Write Edge Face or Element Variable Values on Blocks or Sets at a Time Step */
872  EXODUS_EXPORT int ex_put_var(int exoid,
873  int time_step,
874  ex_entity_type var_type,
875  int var_index,
876  ex_entity_id obj_id,
877  int64_t num_entries_this_obj,
878  const void *var_vals);
879 
880  /* Write Partial Edge Face or Element Variable Values on Blocks or Sets at a Time Step */
881  EXODUS_EXPORT int ex_put_n_var(int exoid,
882  int time_step,
883  ex_entity_type var_type,
884  int var_index,
885  ex_entity_id obj_id,
886  int64_t start_index,
887  int64_t num_entities,
888  const void *var_vals);
889 
890  /* Read Edge Face or Element Variable Values Defined On Blocks or Sets at a Time Step */
891  EXODUS_EXPORT int ex_get_var(int exoid,
892  int time_step,
893  ex_entity_type var_type,
894  int var_index,
895  ex_entity_id obj_id,
896  int64_t num_entry_this_obj,
897  void *var_vals);
898 
899  /* Read Partial Edge Face or Element Variable Values on Blocks or Sets at a Time Step */
900  EXODUS_EXPORT int ex_get_n_var(int exoid,
901  int time_step,
902  ex_entity_type var_type,
903  int var_index,
904  ex_entity_id obj_id,
905  int64_t start_index,
906  int64_t num_entities,
907  void *var_vals);
908 
909  EXODUS_EXPORT int ex_get_n_elem_var (int exoid,
910  int time_step,
911  int elem_var_index,
912  ex_entity_id elem_blk_id,
913  int64_t num_elem_this_blk,
914  int64_t start_elem_num,
915  int64_t num_elem,
916  void *elem_var_vals);
917 
918  /* Read Edge Face or Element Variable Values Defined On Blocks or Sets Through Time */
919  EXODUS_EXPORT int ex_get_var_time(int exoid,
920  ex_entity_type var_type,
921  int var_index,
922  int64_t id,
923  int beg_time_step,
924  int end_time_step,
925  void *var_vals);
926 
927  EXODUS_EXPORT int ex_cvt_nodes_to_sides(int exoid,
928  void_int *num_elem_per_set,
929  void_int *num_nodes_per_set,
930  void_int *side_sets_elem_index,
931  void_int *side_sets_node_index,
932  void_int *side_sets_elem_list,
933  void_int *side_sets_node_list,
934  void_int *side_sets_side_list);
935 
936  /* Can be replaced by ex_put_var ... */
937  EXODUS_EXPORT int ex_put_nodal_var (int exoid,
938  int time_step,
939  int nodal_var_index,
940  int64_t num_nodes,
941  const void *nodal_var_vals);
942 
943  EXODUS_EXPORT int ex_put_n_nodal_var (int exoid,
944  int time_step,
945  int nodal_var_index,
946  int64_t start_node,
947  int64_t num_nodes,
948  const void *nodal_var_vals);
949 
950  EXODUS_EXPORT int ex_get_partial_elem_map (int exoid,
951  ex_entity_id map_id,
952  int64_t ent_start,
953  int64_t ent_count,
954  void_int *elem_map);
955 
956  EXODUS_EXPORT int ex_put_partial_elem_map (int exoid,
957  ex_entity_id map_id,
958  int64_t ent_start,
959  int64_t ent_count,
960  const void_int *elem_map);
961 
962  EXODUS_EXPORT int ex_put_partial_num_map (int exoid,
963  ex_entity_type map_type,
964  ex_entity_id map_id,
965  int64_t ent_start,
966  int64_t ent_count,
967  const void_int *map);
968 
969  EXODUS_EXPORT int ex_put_partial_set_dist_fact (int exoid,
970  ex_entity_type set_type,
971  ex_entity_id set_id,
972  int64_t offset,
973  int64_t num_to_put,
974  const void *set_dist_fact);
975 
976  /* TODO */
977  EXODUS_EXPORT int ex_get_concat_side_set_node_count(int exoid,
978  int *side_set_node_cnt_list);
979 
980  /* TODO */
981  EXODUS_EXPORT int ex_get_side_set_node_list_len(int exoid,
982  ex_entity_id side_set_id,
983  void_int *side_set_node_list_len);
984 
985  /* TODO */
986  EXODUS_EXPORT int ex_get_side_set_node_count(int exoid,
987  ex_entity_id side_set_id,
988  int *side_set_node_cnt_list);
989 
990  /* TODO */
991  EXODUS_EXPORT int ex_get_side_set_node_list(int exoid,
992  ex_entity_id side_set_id,
993  void_int *side_set_node_cnt_list,
994  void_int *side_set_node_list);
995 
996  /* ========================================================================
997  Functions pulled from nemesis library and incorporated into exodus...
998  */
999 /*=============================================================================
1000  * Initial Information Routines
1001  *===========================================================================*/
1002 EXODUS_EXPORT int
1003 ex_get_init_info(int exoid, /* NemesisI file ID */
1004  int *num_proc, /* Number of processors */
1005  int *num_proc_in_f, /* Number of procs in this file */
1006  char *ftype
1007  );
1008 
1009 EXODUS_EXPORT int
1010 ex_put_init_info(int exoid, /* NemesisI file ID */
1011  int num_proc, /* Number of processors */
1012  int num_proc_in_f, /* Number of procs in this file */
1013  char *ftype
1014  );
1015 
1016 EXODUS_EXPORT int
1017 ex_get_init_global(int exoid, /* NemesisI file ID */
1018  void_int *num_nodes_g, /* Number of global FEM nodes */
1019  void_int *num_elems_g, /* Number of global FEM elements */
1020  void_int *num_elem_blks_g, /* Number of global elem blocks */
1021  void_int *num_node_sets_g, /* Number of global node sets */
1022  void_int *num_side_sets_g /* Number of global side sets */
1023  );
1024 EXODUS_EXPORT int
1025 ex_put_init_global(int exoid, /* NemesisI file ID */
1026  int64_t num_nodes_g, /* Number of global FEM nodes */
1027  int64_t num_elems_g, /* Number of global FEM elements */
1028  int64_t num_elem_blks_g, /* Number of global elem blocks */
1029  int64_t num_node_sets_g, /* Number of global node sets */
1030  int64_t num_side_sets_g /* Number of global side sets */
1031  );
1032 
1033 /*=============================================================================
1034  * Loadbalance Parameter Routines
1035  *===========================================================================*/
1036 EXODUS_EXPORT int
1037 ex_get_loadbal_param(int exoid, /* NetCDF/Exodus file ID */
1038  void_int *num_int_nodes, /* Number of internal FEM nodes */
1039  void_int *num_bor_nodes, /* Number of border FEM nodes */
1040  void_int *num_ext_nodes, /* Number of external FEM nodes */
1041  void_int *num_int_elems, /* Number of internal FEM elems */
1042  void_int *num_bor_elems, /* Number of border FEM elems */
1043  void_int *num_node_cmaps, /* Number of nodal comm maps */
1044  void_int *num_elem_cmaps, /* Number of elemental comm maps */
1045  int processor /* Processor ID */
1046  );
1047 
1048 EXODUS_EXPORT int
1049 ex_put_loadbal_param(int exoid, /* NemesisI file ID */
1050  int64_t num_int_nodes, /* Number of internal FEM nodes */
1051  int64_t num_bor_nodes, /* Number of border FEM nodes */
1052  int64_t num_ext_nodes, /* Number of external FEM nodes */
1053  int64_t num_int_elems, /* Number of internal FEM elems */
1054  int64_t num_bor_elems, /* Number of border FEM elems */
1055  int64_t num_node_cmaps,/* Number of nodal comm maps */
1056  int64_t num_elem_cmaps,/* Number of elemental comm maps */
1057  int processor /* Processor ID */
1058  );
1059 
1060 EXODUS_EXPORT int
1061 ex_put_loadbal_param_cc(int exoid, /* NetCDF/Exodus file ID */
1062  void_int *num_int_nodes, /* Number of internal node IDs */
1063  void_int *num_bor_nodes, /* Number of border node IDs */
1064  void_int *num_ext_nodes, /* Number of external node IDs */
1065  void_int *num_int_elems, /* Number of internal elem IDs */
1066  void_int *num_bor_elems, /* Number of border elem IDs */
1067  void_int *num_node_cmaps, /* Number of nodal comm maps */
1068  void_int *num_elem_cmaps /* Number of elem comm maps */
1069  );
1070 
1071 /*=============================================================================
1072  * NS, SS & EB Global Parameter Routines
1073  *===========================================================================*/
1074 EXODUS_EXPORT int
1075 ex_get_ns_param_global(int exoid, /* NetCDF/Exodus file ID */
1076  void_int *ns_ids_glob, /* Global IDs of node sets */
1077  void_int *ns_n_cnt_glob, /* Count of nodes in node sets */
1078  void_int *ns_df_cnt_glob /* Count of dist. factors in ns */
1079  );
1080 
1081 EXODUS_EXPORT int
1082 ex_put_ns_param_global(int exoid, /* NemesisI file ID */
1083  void_int *global_ids, /* Vector of global node-set IDs */
1084  void_int *global_n_cnts, /* Vector of node counts in node-sets */
1085  void_int *global_df_cnts /* Vector of dist factor counts in node-sets */
1086  );
1087 
1088 EXODUS_EXPORT int
1089 ex_get_ss_param_global(int exoid, /* NetCDF/Exodus file ID */
1090  void_int *ss_ids_glob, /* Global side-set IDs */
1091  void_int *ss_s_cnt_glob, /* Global side count */
1092  void_int *ss_df_cnt_glob /* Global dist. factor count */
1093  );
1094 
1095 EXODUS_EXPORT int
1096 ex_put_ss_param_global(int exoid, /* NemesisI file ID */
1097  void_int *global_ids, /* Vector of global side-set IDs */
1098  void_int *global_el_cnts, /* Vector of element/side */
1099  /* counts in each side set */
1100  void_int *global_df_cnts /* Vector of dist. factor */
1101  /* counts in each side set */
1102  );
1103 
1104 EXODUS_EXPORT int
1105 ex_get_eb_info_global(int exoid, /* NemesisI file ID */
1106  void_int *el_blk_ids, /* Vector of global element IDs */
1107  void_int *el_blk_cnts /* Vector of global element counts */
1108  );
1109 
1110 EXODUS_EXPORT int
1111 ex_put_eb_info_global(int exoid, /* NemesisI file ID */
1112  void_int *el_blk_ids, /* Vector of global element IDs */
1113  void_int *el_blk_cnts /* Vector of global element counts */
1114  );
1115 
1116 /*=============================================================================
1117  * NS, SS & EB Subset Routines
1118  *===========================================================================*/
1119 EXODUS_EXPORT int
1120 ex_get_n_side_set(int exoid, /* NetCDF/Exodus file ID */
1121  ex_entity_id side_set_id, /* Side-set ID to read */
1122  int64_t start_side_num, /* Starting element number */
1123  int64_t num_sides, /* Number of sides to read */
1124  void_int *side_set_elem_list, /* List of element IDs */
1125  void_int *side_set_side_list /* List of side IDs */
1126  );
1127 
1128 EXODUS_EXPORT int
1129 ex_put_n_side_set(int exoid, /* NetCDF/Exodus file ID */
1130  ex_entity_id side_set_id, /* Side-set ID to write */
1131  int64_t start_side_num, /* Starting element number */
1132  int64_t num_sides, /* Number of sides to write */
1133  const void_int *side_set_elem_list, /* List of element IDs */
1134  const void_int *side_set_side_list /* List of side IDs */
1135  );
1136 
1137 EXODUS_EXPORT int
1138 ex_get_n_side_set_df(int exoid, /* NetCDF/Exodus file ID */
1139  ex_entity_id side_set_id, /* Side-set ID */
1140  int64_t start_num, /* Starting df number */
1141  int64_t num_df_to_get, /* Number of df's to read */
1142  void *side_set_df /* Distribution factors */
1143  );
1144 
1145 EXODUS_EXPORT int
1146 ex_put_n_side_set_df(int exoid, /* NetCDF/Exodus file ID */
1147  ex_entity_id side_set_id, /* Side-set ID */
1148  int64_t start_num, /* Starting df number */
1149  int64_t num_df_to_get, /* Number of df's to write */
1150  void *side_set_df /* Distribution factors */
1151  );
1152 
1153 EXODUS_EXPORT int
1154 ex_get_n_node_set(int exoid, /* NetCDF/Exodus file ID */
1155  ex_entity_id node_set_id, /* Node set ID */
1156  int64_t start_node_num, /* Node index to start reading at */
1157  int64_t num_node, /* Number of nodes to read */
1158  void_int *node_set_node_list /* List of nodes in node set */
1159  );
1160 
1161 EXODUS_EXPORT int
1162 ex_put_n_node_set(int exoid, /* NetCDF/Exodus file ID */
1163  ex_entity_id node_set_id, /* Node set ID */
1164  int64_t start_node_num, /* Node index to start writing at */
1165  int64_t num_node, /* Number of nodes to write */
1166  const void_int *node_set_node_list /* List of nodes in node set */
1167  );
1168 
1169 EXODUS_EXPORT int
1170 ex_get_n_node_set_df(int exoid, /* NetCDF/Exodus file ID */
1171  ex_entity_id node_set_id, /* Node-set ID */
1172  int64_t start_num, /* Starting df number */
1173  int64_t num_df_to_get, /* Number of df's to read */
1174  void *node_set_df /* Distribution factors */
1175  );
1176 
1177 EXODUS_EXPORT int
1178 ex_put_n_node_set_df(int exoid, /* NetCDF/Exodus file ID */
1179  ex_entity_id node_set_id, /* Node-set ID */
1180  int64_t start_num, /* Starting df number */
1181  int64_t num_df_to_get, /* Number of df's to write */
1182  void *node_set_df /* Distribution factors */
1183  );
1184 
1185 EXODUS_EXPORT int
1186 ex_get_n_elem_conn (int exoid, /* NetCDF/Exodus file ID */
1187  ex_entity_id elem_blk_id, /* Element block ID */
1188  int64_t start_elem_num, /* Starting position to read from */
1189  int64_t num_elems, /* Number of elements to read */
1190  void_int *connect /* Connectivity vector */
1191  );
1192 
1193 EXODUS_EXPORT int
1194 ex_put_n_elem_conn (int exoid, /* NetCDF/Exodus file ID */
1195  ex_entity_id elem_blk_id, /* Element block ID */
1196  int64_t start_elem_num, /* Starting position to write to */
1197  int64_t num_elems, /* Number of elements to write */
1198  const void_int *connect /* Connectivity vector */
1199 );
1200 
1201 EXODUS_EXPORT int
1202 ex_get_n_elem_attr (int exoid, /* NetCDF/Exodus file ID */
1203  ex_entity_id elem_blk_id, /* Element block ID */
1204  int64_t start_elem_num, /* Starting position to read from */
1205  int64_t num_elems, /* Number of elements to read */
1206  void *attrib /* Attribute */
1207  );
1208 
1209 EXODUS_EXPORT int
1210 ex_put_n_elem_attr (int exoid, /* NetCDF/Exodus file ID */
1211  ex_entity_id elem_blk_id, /* Element block ID */
1212  int64_t start_elem_num, /* Starting position to write to */
1213  int64_t num_elems, /* Number of elements to write */
1214  void *attrib /* Attribute */
1215  );
1216 
1217 EXODUS_EXPORT int
1218 ex_get_elem_type(int exoid, /* NetCDF/Exodus file ID */
1219  ex_entity_id elem_blk_id, /* Element block ID */
1220  char *elem_type /* The name of the element type */
1221  );
1222 
1223 /*=============================================================================
1224  * Variable Routines
1225  *===========================================================================*/
1226 EXODUS_EXPORT int
1227 ex_put_elem_var_slab (int exoid, /* NetCDF/Exodus file ID */
1228  int time_step, /* time index */
1229  int elem_var_index, /* elemental variable index */
1230  ex_entity_id elem_blk_id, /* elemental block id */
1231  int64_t start_pos, /* Starting position to write to */
1232  int64_t num_vals, /* Number of elements to write */
1233  void *elem_var_vals /* variable values */
1234  );
1235 
1236 EXODUS_EXPORT int
1237 ex_put_nodal_var_slab(int exoid, /* NetCDF/Exodus file ID */
1238  int time_step, /* The time step index */
1239  int nodal_var_index, /* Nodal variable index */
1240  int64_t start_pos, /* Start position for write */
1241  int64_t num_vals, /* Number of nodal variables */
1242  void *nodal_var_vals /* Nodal variable values */
1243  );
1244 
1245 /*=============================================================================
1246  * Number Map Routines
1247  *===========================================================================*/
1248 EXODUS_EXPORT int
1249 ex_get_n_elem_num_map (int exoid, /* NetCDF/Exodus file ID */
1250  int64_t start_ent, /* Starting position to read from */
1251  int64_t num_ents, /* Number of elements to read */
1252  void_int *elem_map /* element map numbers */
1253  );
1254 
1255 EXODUS_EXPORT int
1256 ex_get_n_node_num_map(int exoid, /* NetCDF/Exodus file ID */
1257  int64_t start_ent, /* starting node number */
1258  int64_t num_ents, /* number of nodes to read */
1259  void_int *node_map /* vector for node map */
1260  );
1261 
1262 EXODUS_EXPORT int
1263 ex_get_processor_node_maps(int exoid, /* NetCDF/Exodus file ID */
1264  void_int *node_mapi, /* Internal FEM node IDs */
1265  void_int *node_mapb, /* Border FEM node IDs */
1266  void_int *node_mape, /* External FEM node IDs */
1267  int processor /* Processor IDs */
1268  );
1269 
1270 EXODUS_EXPORT int
1271 ex_put_processor_node_maps(int exoid, /* NetCDF/Exodus file ID */
1272  void_int *node_mapi, /* Internal FEM node IDs */
1273  void_int *node_mapb, /* Border FEM node IDs */
1274  void_int *node_mape, /* External FEM node IDs */
1275  int processor /* This processor ID */
1276  );
1277 
1278 EXODUS_EXPORT int
1279 ex_get_processor_elem_maps(int exoid, /* NetCDF/Exodus file ID */
1280  void_int *elem_mapi, /* Internal element IDs */
1281  void_int *elem_mapb, /* Border element IDs */
1282  int processor /* Processor ID */
1283  );
1284 
1285 EXODUS_EXPORT int
1286 ex_put_processor_elem_maps(int exoid, /* NetCDF/Exodus file ID */
1287  void_int *elem_mapi, /* Internal FEM element IDs */
1288  void_int *elem_mapb, /* Border FEM element IDs */
1289  int processor /* This processor ID */
1290  );
1291 
1292 
1293 /*=============================================================================
1294  * Communications Maps Routines
1295  *===========================================================================*/
1296 
1297 EXODUS_EXPORT int
1298 ex_get_cmap_params(int exoid, /* NetCDF/Exodus file ID */
1299  void_int *node_cmap_ids, /* Nodal comm. map IDs */
1300  void_int *node_cmap_node_cnts, /* Number of nodes in each map */
1301  void_int *elem_cmap_ids, /* Elemental comm. map IDs */
1302  void_int *elem_cmap_elem_cnts, /* Number of elems in each map */
1303  int processor /* This processor ID */
1304  );
1305 
1306 EXODUS_EXPORT int
1307 ex_put_cmap_params(int exoid, /* NetCDF/Exodus file ID */
1308  void_int *node_map_ids, /* Node map IDs */
1309  void_int *node_map_node_cnts,/* Nodes in nodal comm */
1310  void_int *elem_map_ids, /* Elem map IDs */
1311  void_int *elem_map_elem_cnts,/* Elems in elemental comm */
1312  int64_t processor /* This processor ID */
1313  );
1314 
1315 EXODUS_EXPORT int
1316 ex_put_cmap_params_cc(int exoid, /* NetCDF/Exodus file ID */
1317  void_int *node_map_ids, /* Node map IDs */
1318  void_int *node_map_node_cnts, /* Nodes in nodal comm */
1319  void_int *node_proc_ptrs, /* Pointer into array for */
1320  /* node maps */
1321  void_int *elem_map_ids, /* Elem map IDs */
1322  void_int *elem_map_elem_cnts, /* Elems in elemental comm */
1323  void_int *elem_proc_ptrs /* Pointer into array for */
1324  /* elem maps */
1325  );
1326 
1327 EXODUS_EXPORT int
1328 ex_get_node_cmap(int exoid, /* NetCDF/Exodus file ID */
1329  ex_entity_id map_id, /* Map ID */
1330  void_int *node_ids, /* FEM node IDs */
1331  void_int *proc_ids, /* Processor IDs */
1332  int processor /* This processor ID */
1333  );
1334 
1335 EXODUS_EXPORT int
1336 ex_put_node_cmap(int exoid, /* NetCDF/Exodus file ID */
1337  ex_entity_id map_id, /* Nodal comm map ID */
1338  void_int *node_ids, /* FEM node IDs */
1339  void_int *proc_ids, /* Processor IDs */
1340  int processor /* This processor ID */
1341  );
1342 
1343 EXODUS_EXPORT int
1344 ex_get_elem_cmap(int exoid, /* NetCDF/Exodus file ID */
1345  ex_entity_id map_id, /* Elemental comm map ID */
1346  void_int *elem_ids, /* Element IDs */
1347  void_int *side_ids, /* Element side IDs */
1348  void_int *proc_ids, /* Processor IDs */
1349  int processor /* This processor ID */
1350  );
1351 
1352 EXODUS_EXPORT int
1353 ex_put_elem_cmap(int exoid, /* NetCDF/Exodus file ID */
1354  ex_entity_id map_id, /* Elemental comm map ID */
1355  void_int *elem_ids, /* Vector of element IDs */
1356  void_int *side_ids, /* Vector of side IDs */
1357  void_int *proc_ids, /* Vector of processor IDs */
1358  int processor /* This processor ID */
1359  );
1360 
1361  /* ========================================================================
1362  * Deprecated functiona
1363  */
1364 
1365  EXODUS_EXPORT int ex_get_nodal_var (int exoid,
1366  int time_step,
1367  int nodal_var_index,
1368  int64_t num_nodes,
1369  void *nodal_var_vals);
1370 
1371  EXODUS_EXPORT int ex_get_nodal_var_time (int exoid,
1372  int nodal_var_index,
1373  int64_t node_number,
1374  int beg_time_step,
1375  int end_time_step,
1376  void *nodal_var_vals);
1377 
1378  /* Use ex_get_concat_sets() */
1379  EXODUS_EXPORT int ex_get_concat_node_sets (int exoid,
1380  void_int *node_set_ids,
1381  void_int *num_nodes_per_set,
1382  void_int *num_df_per_set,
1383  void_int *node_sets_node_index,
1384  void_int *node_sets_df_index,
1385  void_int *node_sets_node_list,
1386  void *node_sets_dist_fact);
1387 
1388 
1389  EXODUS_EXPORT int ex_get_concat_side_sets (int exoid,
1390  void_int *side_set_ids,
1391  void_int *num_elem_per_set,
1392  void_int *num_dist_per_set,
1393  void_int *side_sets_elem_index,
1394  void_int *side_sets_dist_index,
1395  void_int *side_sets_elem_list,
1396  void_int *side_sets_side_list,
1397  void *side_sets_dist_fact);
1398 
1399  EXODUS_EXPORT int ex_get_elem_attr (int exoid,
1400  ex_entity_id elem_blk_id,
1401  void *attrib);
1402 
1403  EXODUS_EXPORT int ex_get_elem_attr_names (int exoid,
1404  ex_entity_id elem_blk_id,
1405  char **names);
1406 
1407  EXODUS_EXPORT int ex_get_elem_blk_ids (int exoid,
1408  void_int *ids);
1409 
1410  EXODUS_EXPORT int ex_get_elem_block (int exoid,
1411  ex_entity_id elem_blk_id,
1412  char *elem_type,
1413  void_int *num_elem_this_blk,
1414  void_int *num_nodes_per_elem,
1415  void_int *num_attr);
1416 
1417  EXODUS_EXPORT int ex_get_elem_conn (int exoid,
1418  ex_entity_id elem_blk_id,
1419  void_int *connect);
1420 
1421  EXODUS_EXPORT int ex_get_elem_map (int exoid,
1422  ex_entity_id map_id,
1423  void_int *elem_map);
1424 
1425  EXODUS_EXPORT int ex_get_elem_num_map (int exoid,
1426  void_int *elem_map);
1427 
1428  EXODUS_EXPORT int ex_get_elem_var (int exoid,
1429  int time_step,
1430  int elem_var_index,
1431  ex_entity_id elem_blk_id,
1432  int64_t num_elem_this_blk,
1433  void *elem_var_vals);
1434 
1435  EXODUS_EXPORT int ex_get_elem_var_tab (int exoid,
1436  int num_elem_blk,
1437  int num_elem_var,
1438  int *elem_var_tab);
1439 
1440  EXODUS_EXPORT int ex_get_elem_var_time (int exoid,
1441  int elem_var_index,
1442  int64_t elem_number,
1443  int beg_time_step,
1444  int end_time_step,
1445  void *elem_var_vals);
1446 
1447  EXODUS_EXPORT int ex_get_map (int exoid, void_int *elem_map);
1448 
1449  EXODUS_EXPORT int ex_get_node_map (int exoid,
1450  ex_entity_id map_id,
1451  void_int *node_map);
1452 
1453  EXODUS_EXPORT int ex_get_node_num_map (int exoid,
1454  void_int *node_map);
1455 
1456  EXODUS_EXPORT int ex_get_node_set_param (int exoid,
1457  ex_entity_id node_set_id,
1458  void_int *num_nodes_in_set,
1459  void_int *num_df_in_set);
1460 
1461  EXODUS_EXPORT int ex_get_node_set (int exoid,
1462  ex_entity_id node_set_id,
1463  void_int *node_set_node_list);
1464 
1465  EXODUS_EXPORT int ex_get_node_set_dist_fact (int exoid,
1466  ex_entity_id node_set_id,
1467  void *node_set_dist_fact);
1468 
1469  EXODUS_EXPORT int ex_get_node_set_ids (int exoid,
1470  void_int *ids);
1471 
1472  EXODUS_EXPORT int ex_get_nset_var_tab (int exoid,
1473  int num_nodesets,
1474  int num_nset_var,
1475  int *nset_var_tab);
1476 
1477  EXODUS_EXPORT int ex_get_nset_var (int exoid,
1478  int time_step,
1479  int nset_var_index,
1480  ex_entity_id nset_id,
1481  int64_t num_node_this_nset,
1482  void *nset_var_vals);
1483 
1484  EXODUS_EXPORT int ex_get_one_elem_attr (int exoid,
1485  ex_entity_id elem_blk_id,
1486  int attrib_index,
1487  void *attrib);
1488 
1489  EXODUS_EXPORT int ex_get_side_set (int exoid,
1490  ex_entity_id side_set_id,
1491  void_int *side_set_elem_list,
1492  void_int *side_set_side_list);
1493 
1494  EXODUS_EXPORT int ex_get_side_set_dist_fact (int exoid,
1495  ex_entity_id side_set_id,
1496  void *side_set_dist_fact);
1497 
1498  EXODUS_EXPORT int ex_get_side_set_ids (int exoid,
1499  void_int *ids);
1500 
1501  EXODUS_EXPORT int ex_get_side_set_param (int exoid,
1502  ex_entity_id side_set_id,
1503  void_int *num_side_in_set,
1504  void_int *num_dist_fact_in_set);
1505 
1506  EXODUS_EXPORT int ex_get_sset_var (int exoid,
1507  int time_step,
1508  int sset_var_index,
1509  ex_entity_id sset_id,
1510  int64_t num_side_this_sset,
1511  void *sset_var_vals);
1512 
1513  EXODUS_EXPORT int ex_get_sset_var_tab (int exoid,
1514  int num_sidesets,
1515  int num_sset_var,
1516  int *sset_var_tab);
1517 
1518  EXODUS_EXPORT int ex_get_var_names (int exoid,
1519  const char *var_type,
1520  int num_vars,
1521  char *var_names[]);
1522 
1523  EXODUS_EXPORT int ex_get_var_name (int exoid,
1524  const char *var_type,
1525  int var_num,
1526  char *var_name);
1527 
1528  EXODUS_EXPORT int ex_get_var_param (int exoid,
1529  const char *var_type,
1530  int *num_vars);
1531 
1532  EXODUS_EXPORT int ex_get_var_tab (int exoid,
1533  const char *var_type,
1534  int num_blk,
1535  int num_var,
1536  int *var_tab);
1537 
1538  EXODUS_EXPORT int ex_put_concat_node_sets (int exoid,
1539  void_int *node_set_ids,
1540  void_int *num_nodes_per_set,
1541  void_int *num_dist_per_set,
1542  void_int *node_sets_node_index,
1543  void_int *node_sets_df_index,
1544  void_int *node_sets_node_list,
1545  void *node_sets_dist_fact);
1546 
1547  EXODUS_EXPORT int ex_put_concat_side_sets (int exoid,
1548  void_int *side_set_ids,
1549  void_int *num_elem_per_set,
1550  void_int *num_dist_per_set,
1551  void_int *side_sets_elem_index,
1552  void_int *side_sets_dist_index,
1553  void_int *side_sets_elem_list,
1554  void_int *side_sets_side_list,
1555  void *side_sets_dist_fact);
1556 
1557  EXODUS_EXPORT int ex_put_concat_var_param (int exoid, int num_g, int num_n,
1558  int num_e, int num_elem_blk, int *elem_var_tab);
1559 
1560  EXODUS_EXPORT int ex_put_elem_attr_names(int exoid,
1561  ex_entity_id elem_blk_id,
1562  char *names[]);
1563  EXODUS_EXPORT int ex_put_elem_attr (int exoid,
1564  ex_entity_id elem_blk_id,
1565  const void *attrib);
1566 
1567  EXODUS_EXPORT int ex_put_elem_block (int exoid,
1568  ex_entity_id elem_blk_id,
1569  const char *elem_type,
1570  int64_t num_elem_this_blk,
1571  int64_t num_nodes_per_elem,
1572  int64_t num_attr);
1573 
1574  EXODUS_EXPORT int ex_put_elem_conn (int exoid,
1575  ex_entity_id elem_blk_id,
1576  const void_int *connect);
1577 
1578  EXODUS_EXPORT int ex_put_elem_map (int exoid,
1579  ex_entity_id map_id,
1580  const void_int *elem_map);
1581 
1582  EXODUS_EXPORT int ex_put_elem_num_map (int exoid,
1583  const void_int *elem_map);
1584 
1585  EXODUS_EXPORT int ex_put_elem_var (int exoid,
1586  int time_step,
1587  int elem_var_index,
1588  ex_entity_id elem_blk_id,
1589  int64_t num_elem_this_blk,
1590  const void *elem_var_vals);
1591 
1592  EXODUS_EXPORT int ex_put_elem_var_tab (int exoid,
1593  int num_elem_blk,
1594  int num_elem_var,
1595  int *elem_var_tab);
1596 
1597  EXODUS_EXPORT int ex_put_glob_vars (int exoid,
1598  int time_step,
1599  int num_glob_vars,
1600  const void *glob_var_vals);
1601 
1602  EXODUS_EXPORT int ex_put_map (int exoid,
1603  const void_int *elem_map);
1604 
1605  EXODUS_EXPORT int ex_put_node_map (int exoid,
1606  ex_entity_id map_id,
1607  const void_int *node_map);
1608 
1609  EXODUS_EXPORT int ex_put_node_num_map (int exoid,
1610  const void_int *node_map);
1611 
1612  EXODUS_EXPORT int ex_put_node_set (int exoid,
1613  ex_entity_id node_set_id,
1614  const void_int *node_set_node_list);
1615 
1616  EXODUS_EXPORT int ex_put_node_set_dist_fact (int exoid,
1617  ex_entity_id node_set_id,
1618  const void *node_set_dist_fact);
1619 
1620  EXODUS_EXPORT int ex_put_node_set_param (int exoid,
1621  ex_entity_id node_set_id,
1622  int64_t num_nodes_in_set,
1623  int64_t num_dist_in_set);
1624 
1625  EXODUS_EXPORT int ex_put_nset_var (int exoid,
1626  int time_step,
1627  int nset_var_index,
1628  ex_entity_id nset_id,
1629  int64_t num_nodes_this_nset,
1630  const void *nset_var_vals);
1631 
1632  EXODUS_EXPORT int ex_put_nset_var_tab (int exoid,
1633  int num_nset,
1634  int num_nset_var,
1635  int *nset_var_tab);
1636 
1637  EXODUS_EXPORT int ex_put_one_elem_attr (int exoid,
1638  ex_entity_id elem_blk_id,
1639  int attrib_index,
1640  const void *attrib);
1641 
1642  EXODUS_EXPORT int ex_put_side_set (int exoid,
1643  ex_entity_id side_set_id,
1644  const void_int *side_set_elem_list,
1645  const void_int *side_set_side_list);
1646 
1647  EXODUS_EXPORT int ex_put_side_set_dist_fact (int exoid,
1648  ex_entity_id side_set_id,
1649  const void *side_set_dist_fact);
1650 
1651  EXODUS_EXPORT int ex_put_side_set_param (int exoid,
1652  ex_entity_id side_set_id,
1653  int64_t num_side_in_set,
1654  int64_t num_dist_fact_in_set);
1655 
1656  EXODUS_EXPORT int ex_put_sset_var (int exoid,
1657  int time_step,
1658  int sset_var_index,
1659  ex_entity_id sset_id,
1660  int64_t num_faces_this_sset,
1661  const void *sset_var_vals);
1662 
1663  EXODUS_EXPORT int ex_put_sset_var_tab (int exoid,
1664  int num_sset,
1665  int num_sset_var,
1666  int *sset_var_tab);
1667 
1668  EXODUS_EXPORT int ex_put_var_name (int exoid,
1669  const char *var_type,
1670  int var_num,
1671  const char *var_name);
1672 
1673  EXODUS_EXPORT int ex_put_var_names (int exoid,
1674  const char *var_type,
1675  int num_vars,
1676  char *var_names[]);
1677 
1678  EXODUS_EXPORT int ex_put_var_param (int exoid,
1679  const char *var_type,
1680  int num_vars);
1681 
1682  EXODUS_EXPORT int ex_put_var_tab (int exoid,
1683  const char *var_type,
1684  int num_blk,
1685  int num_var,
1686  int *var_tab);
1687 
1688  /* End of Deprecated functions and their replacements
1689  * ======================================================================== */
1690 
1691  /* ERROR CODE DEFINITIONS AND STORAGE */
1692  extern int exerrval;
1693  extern int exoptval;
1695  char* ex_name_of_object(ex_entity_type obj_type);
1696  ex_entity_type ex_var_type_to_ex_entity_type(char var_type);
1697 
1698  /* Should be internal use only, but was in external include file for
1699  nemesis and some codes are using the function
1700  */
1701  int ex_get_idx(int neid, /* NetCDF/Exodus file ID */
1702  const char *ne_var_name, /* Nemesis index variable name */
1703  int64_t *index, /* array of length 2 to hold results */
1704  int pos /* position of this proc/cmap in index */
1705  );
1706 
1707 
1708 #ifdef __cplusplus
1709 } /* close brackets on extern "C" declaration */
1710 #endif
1711 
1716 #define EX_MEMFAIL 1000
1717 #define EX_BADFILEMODE 1001
1718 #define EX_BADFILEID 1002
1719 #define EX_WRONGFILETYPE 1003
1720 #define EX_LOOKUPFAIL 1004
1721 #define EX_BADPARAM 1005
1722 #define EX_MSG -1000
1723 #define EX_PRTLASTMSG -1001
1724 #define EX_NULLENTITY -1006
1725 /* @} */
1726 
1727 #endif
1728 

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:04 UTC

Hosted By:
SourceForge.net Logo