Exodus 8.24
Loading...
Searching...
No Matches
ex_put_elem_var.c File Reference
#include "exodusII.h"

Functions

int ex_put_elem_var (int exoid, int time_step, int elem_var_index, ex_entity_id elem_blk_id, int64_t num_elem_this_blk, const void *elem_var_vals)
 

Function Documentation

◆ ex_put_elem_var()

int ex_put_elem_var ( int exoid,
int time_step,
int elem_var_index,
ex_entity_id elem_blk_id,
int64_t num_elem_this_blk,
const void * elem_var_vals )
Deprecated
Use ex_put_var()(exoid, time_step, EX_ELEM_BLOCK, elem_var_index, elem_blk_id, num_elem_this_blk, elem_var_vals)

The function ex_put_elem_var() writes the values of a single element variable for one element block at one time step. It is recommended, but not required, to write the element variable truth table (with ex_put_elem_var_tab() before this function is invoked for better efficiency.

Because element variables are floating point values, the application code must declare the array passed to be the appropriate type (float or double) to match the compute word size passed in ex_create() or ex_open().

Returns
In case of an error, ex_put_elem_var() returns a negative number; a warning will return a positive number. Possible causes of errors include:
  • data file not properly opened with call to ex_create() or ex_open()
  • data file opened for read only.
  • data file not initialized properly with call to ex_put_init().
  • invalid element block ID.
  • ex_put_elem_block() not called previously to specify parameters for this element block.
  • ex_put_variable_param() not called previously specifying the number of element variables.
  • an element variable truth table was stored in the file but contains a zero (indicating no valid element variable) for the specified element block and element variable.
Parameters
[in]exoidexodus file ID returned from a previous call to ex_create() or ex_open().
[in]time_stepThe time step number, as described under ex_put_time(). This is essentially a counter that is incremented only when results variables are output. The first time step is 1.
[in]elem_var_indexThe index of the element variable. The first variable has an index of 1.
[in]elem_blk_idThe element block ID.
[in]num_elem_this_blkThe number of elements in the given element block.
[in]elem_var_valsArray of num_elem_this_blk values of the elem_var_index-th element variable for the element block with ID of elem_blk_id at the time_step-th time step.

The following coding will write out all of the element variables for a single time step n to an open exodus file :

int num_ele_vars, num_elem_blk, *num_elem_in_block,error,
exoid, n, *ebids;
float *elem_var_vals;
\comment{write element variables}
for (k=1; k <= num_ele_vars; k++) {
for (j=0; j < num_elem_blk; j++) {
elem_var_vals = (float *)
calloc(num_elem_in_block[j], sizeof(float));
for (m=0; m < num_elem_in_block[j]; m++) {
\comment{simulation code fills this in}
elem_var_vals[m] = 10.0;
}
error = ex_put_elem_var (exoid, n, k, ebids[j],
num_elem_in_block[j], elem_var_vals);
\comment{Using non-deprecated function:}
error = ex_put_var (exoid, n, EX_ELEM_BLOCK, k, ebids[j],
num_elem_in_block[j], elem_var_vals);
free (elem_var_vals);
}
}
@ EX_ELEM_BLOCK
Definition exodusII.h:267
SEACAS_DEPRECATED int ex_put_elem_var(int exoid, int time_step, int elem_var_index, ex_entity_id elem_blk_id, int64_t num_elem_this_blk, const void *elem_var_vals)
Definition ex_put_elem_var.c:114
int ex_put_var(int exoid, int time_step, ex_entity_type var_type, int var_index, ex_entity_id obj_id, int64_t num_entries_this_obj, const void *var_vals)
Definition ex_put_var.c:77