Skip to content

Separate Transient

Greg Sjaardema edited this page Feb 6, 2019 · 6 revisions

Mesh Portion of file:

Assume double precision (64-bit) floats, 32-bit integers Assume Hex elements...

coordinates: 3 * number of nodes * 2
map:         1 * number of nodes 

connectivity 8 * number of elements
map:         1 * number of elements

7 * number of nodes + 9 * number of elements

If using 64-bit integers, then:
8 * number of nodes + 18 * number of elements

Transient Portion of File:

	     nvar * number of nodes * 2
	     evar * number of elements * 2

2 * nvar * number of nodes + 2 * evar * number of elements

Therefore, the mesh portion of the file is approximately equivalent to

  • about 4 nodal and 4 element variables with 32-bit integers or
  • about 4 nodal and 9 element variables with 64-bit integers

What is needed in file:

dimensions:
	len_name = 33  -- used for variable names
	time_step = UNLIMITED
	num_nodes = 125 ; -- used for nodal variable sizing
	num_el_blk = 8 ;  -- used to determine number of element blocks
	num_nod_var = 12 ; --
	num_elem_var = 9 ; -- 
	num_el_in_blk? = 8 ; -- for each block, how many values per block

variables:
	int eb_status(num_el_blk) ;  -- is the block active or not... Needed?
	int eb_prop1(num_el_blk) ;   -- block ids used in exodus API
	double time_whole(time_step) ; -- timestep
	double vals_nod_var?(time_step, num_nodes) ; -- for each nodal variable
	char name_nod_var(num_nod_var, len_name) ; -- name of nodal variables
	char name_elem_var(num_elem_var, len_name) ; -- names of element variables
	double vals_elem_var?eb?(time_step, num_el_in_blk?) ; -- for each element variable for each block
	int elem_var_tab(num_el_blk, num_elem_var) ; -- Truth table... Needed?