mirror of
https://github.com/OpenFOAM/OpenFOAM-6.git
synced 2025-12-08 06:57:46 +00:00
Corrected spelling in comments
Resolves bug-report https://bugs.openfoam.org/view.php?id=2844
This commit is contained in:
@ -52,22 +52,22 @@ The process for producing a user defined reader is:
|
||||
Reads FlowScience "flsgrf" flow3d data.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/flow3d
|
||||
|
||||
Reads Tecplot "plt" files.
|
||||
Reads Tecplot "plt" files.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/tecplot
|
||||
|
||||
Reads Common File Format data.
|
||||
Reads Common File Format data.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/cff
|
||||
|
||||
Reads Cobalt grid and picture/restart file data.
|
||||
Reads Cobalt grid and picture/restart file data.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/cobalt
|
||||
|
||||
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -77,7 +77,7 @@ The process for producing a user defined reader is:
|
||||
for each machine type. Operating system level differences could cause
|
||||
you to have to modify these makefiles slightly, but the general
|
||||
process is very straightforward. Note that for the SGI environment you
|
||||
must compile with the following flags to ensure compatability with
|
||||
must compile with the following flags to ensure compatibility with
|
||||
the EnSight server: Irix_5.3 -mips1
|
||||
Irix_6.2 -mips2
|
||||
Irix_6.5_n32 -mips3
|
||||
@ -139,11 +139,11 @@ The process for producing a user defined reader is:
|
||||
You can use any of the other provided readers by changing this variable.
|
||||
For example, to use the dytran reader:
|
||||
|
||||
setenv ENSIGHT6_READER dytran
|
||||
setenv ENSIGHT6_READER dytran
|
||||
|
||||
Thus, you can use your reader in the same way. If you provided "mydata",
|
||||
change ENSIGHT6_READER to:
|
||||
|
||||
|
||||
setenv ENSIGHT6_READER mydata
|
||||
|
||||
|
||||
@ -187,7 +187,7 @@ Generally Needed for BLOCK data
|
||||
USERD_get_block_coords_by_component block coordinates
|
||||
USERD_get_block_iblanking block iblanking values
|
||||
USERD_get_block_scalar_values block scalar variables
|
||||
USERD_get_block_vector_values_by_component block vector variables
|
||||
USERD_get_block_vector_values_by_component block vector variables
|
||||
|
||||
|
||||
Generally needed for either or both kinds of data
|
||||
@ -223,7 +223,7 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
@ -254,7 +254,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_variable_info
|
||||
|
||||
|
||||
5. Part building (per part created)
|
||||
|
||||
USERD_set_time_step
|
||||
@ -269,12 +269,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
6. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_step
|
||||
USERD_get_constant_value
|
||||
|
||||
|
||||
scalars:
|
||||
-------
|
||||
USERD_get_description_lines
|
||||
@ -309,7 +309,7 @@ called is given.
|
||||
USERD_get_element_ids_for_part
|
||||
USERD_get_block_iblanking
|
||||
USERD_get_block_coords_by_component
|
||||
|
||||
|
||||
|
||||
|
||||
-----------------------
|
||||
@ -319,7 +319,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -514,7 +514,7 @@ USERD_get_block_scalar_values
|
||||
for each node or element.
|
||||
|
||||
Array will have been allocated:
|
||||
|
||||
|
||||
if Z_PER_NODE:
|
||||
i*j*k for the block long
|
||||
|
||||
@ -573,7 +573,7 @@ USERD_get_block_vector_values_by_component
|
||||
component value for each node or element.
|
||||
|
||||
Array will have been allocated:
|
||||
|
||||
|
||||
if Z_PER_NODE:
|
||||
i*j*k for the block long
|
||||
|
||||
@ -680,7 +680,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -783,7 +783,7 @@ USERD_get_element_connectivities_for_part
|
||||
conn_array[Z_TRI03][25][3]
|
||||
conn_array[Z_QUA04][100][4]
|
||||
conn_array[Z_HEX08][30][8]
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -818,7 +818,7 @@ USERD_get_element_connectivities_for_part
|
||||
|
||||
|
||||
And conn_array here as follows:
|
||||
|
||||
|
||||
Triangle Connectivity
|
||||
-------- ------------
|
||||
T1 conn_array[Z_TRI03][0][0] = 1
|
||||
@ -913,7 +913,7 @@ USERD_get_element_label_status
|
||||
on a part by part basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
|
||||
|
||||
@ -983,7 +983,7 @@ USERD_get_global_coords
|
||||
|
||||
And conn_array in USERD_get_element_connectivities_for_part
|
||||
as follows:
|
||||
|
||||
|
||||
Triangle Connectivity
|
||||
-------- ------------
|
||||
T1 conn_array[Z_TRI03][0][0] = 1
|
||||
@ -1037,7 +1037,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1050,8 +1050,8 @@ USERD_get_name_of_reader
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) *two_fields = FALSE if only one data field required
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -1305,7 +1305,7 @@ USERD_get_part_build_info
|
||||
The numbers provided here are the ones by
|
||||
which the parts will be referred to in any
|
||||
of the other routines which receive a part
|
||||
number or block number as an argument!!
|
||||
number or block number as an argument!!
|
||||
********************************************
|
||||
|
||||
(Array will have been allocated
|
||||
@ -1421,7 +1421,7 @@ USERD_get_scalar_values
|
||||
---------
|
||||
(IN) which_scalar = The variable number (of scalar type)
|
||||
|
||||
(IN) which_part
|
||||
(IN) which_part
|
||||
|
||||
if Z_PER_NODE: Not used
|
||||
|
||||
@ -1433,7 +1433,7 @@ USERD_get_scalar_values
|
||||
|
||||
if Z_PER_ELEM: = The element type
|
||||
|
||||
(OUT) scalar_array
|
||||
(OUT) scalar_array
|
||||
|
||||
if Z_PER_NODE: = 1D array containing scalar values
|
||||
for each node.
|
||||
@ -1443,7 +1443,7 @@ USERD_get_scalar_values
|
||||
|
||||
if Z_PER_ELEM: = 1d array containing scalar values for
|
||||
each element of a particular part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
number_of_elements[which_part][which_type]
|
||||
long. See USERD_get_part_build_info)
|
||||
@ -1590,7 +1590,7 @@ USERD_get_variable_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -1683,7 +1683,7 @@ USERD_get_vector_values
|
||||
---------
|
||||
(IN) which_vector = The variable number
|
||||
|
||||
(IN) which_part
|
||||
(IN) which_part
|
||||
|
||||
if Z_PER_NODE: Not used
|
||||
|
||||
@ -1695,7 +1695,7 @@ USERD_get_vector_values
|
||||
|
||||
if Z_PER_ELEM: = The element type
|
||||
|
||||
(OUT) vector_array
|
||||
(OUT) vector_array
|
||||
|
||||
if Z_PER_NODE: = 1D array containing vector values
|
||||
for each node.
|
||||
@ -1719,7 +1719,7 @@ USERD_get_vector_values
|
||||
|
||||
if Z_PER_ELEM: = 1d array containing vector values for
|
||||
each element of a particular part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
3 by number_of_elements[which_part][which_type]
|
||||
long. See USERD_get_part_build_info)
|
||||
@ -1776,8 +1776,8 @@ USERD_set_filenames
|
||||
field of the data dialog.
|
||||
(IN) filename_2 = the filename entered into the result
|
||||
field of the data dialog.
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
had the path prepended to them. This
|
||||
|
||||
@ -52,22 +52,22 @@ The process for producing a user defined reader is:
|
||||
Reads FlowScience "flsgrf" flow3d data.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/flow3d
|
||||
|
||||
Reads Tecplot "plt" files.
|
||||
Reads Tecplot "plt" files.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/tecplot
|
||||
|
||||
Reads Common File Format data.
|
||||
Reads Common File Format data.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/cff
|
||||
|
||||
Reads Cobalt grid and picture/restart file data.
|
||||
Reads Cobalt grid and picture/restart file data.
|
||||
$ENSIGHT6_HOME/ensight62/user_defined_src/readers/cobalt
|
||||
|
||||
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -77,7 +77,7 @@ The process for producing a user defined reader is:
|
||||
for each machine type. Operating system level differences could cause
|
||||
you to have to modify these makefiles slightly, but the general
|
||||
process is very straightforward. Note that for the SGI environment you
|
||||
must compile with the following flags to ensure compatability with
|
||||
must compile with the following flags to ensure compatibility with
|
||||
the EnSight server: Irix_5.3 -mips1
|
||||
Irix_6.2 -mips2
|
||||
Irix_6.5_n32 -mips3
|
||||
@ -139,11 +139,11 @@ The process for producing a user defined reader is:
|
||||
You can use any of the other provided readers by changing this variable.
|
||||
For example, to use the dytran reader:
|
||||
|
||||
setenv ENSIGHT6_READER dytran
|
||||
setenv ENSIGHT6_READER dytran
|
||||
|
||||
Thus, you can use your reader in the same way. If you provided "mydata",
|
||||
change ENSIGHT6_READER to:
|
||||
|
||||
|
||||
setenv ENSIGHT6_READER mydata
|
||||
|
||||
|
||||
@ -187,7 +187,7 @@ Generally Needed for BLOCK data
|
||||
USERD_get_block_coords_by_component block coordinates
|
||||
USERD_get_block_iblanking block iblanking values
|
||||
USERD_get_block_scalar_values block scalar variables
|
||||
USERD_get_block_vector_values_by_component block vector variables
|
||||
USERD_get_block_vector_values_by_component block vector variables
|
||||
|
||||
|
||||
Generally needed for either or both kinds of data
|
||||
@ -223,7 +223,7 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
@ -254,7 +254,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_variable_info
|
||||
|
||||
|
||||
5. Part building (per part created)
|
||||
|
||||
USERD_set_time_step
|
||||
@ -269,12 +269,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
6. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_step
|
||||
USERD_get_constant_value
|
||||
|
||||
|
||||
scalars:
|
||||
-------
|
||||
USERD_get_description_lines
|
||||
@ -309,7 +309,7 @@ called is given.
|
||||
USERD_get_element_ids_for_part
|
||||
USERD_get_block_iblanking
|
||||
USERD_get_block_coords_by_component
|
||||
|
||||
|
||||
|
||||
|
||||
-----------------------
|
||||
@ -319,7 +319,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -514,7 +514,7 @@ USERD_get_block_scalar_values
|
||||
for each node or element.
|
||||
|
||||
Array will have been allocated:
|
||||
|
||||
|
||||
if Z_PER_NODE:
|
||||
i*j*k for the block long
|
||||
|
||||
@ -573,7 +573,7 @@ USERD_get_block_vector_values_by_component
|
||||
component value for each node or element.
|
||||
|
||||
Array will have been allocated:
|
||||
|
||||
|
||||
if Z_PER_NODE:
|
||||
i*j*k for the block long
|
||||
|
||||
@ -680,7 +680,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -783,7 +783,7 @@ USERD_get_element_connectivities_for_part
|
||||
conn_array[Z_TRI03][25][3]
|
||||
conn_array[Z_QUA04][100][4]
|
||||
conn_array[Z_HEX08][30][8]
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -818,7 +818,7 @@ USERD_get_element_connectivities_for_part
|
||||
|
||||
|
||||
And conn_array here as follows:
|
||||
|
||||
|
||||
Triangle Connectivity
|
||||
-------- ------------
|
||||
T1 conn_array[Z_TRI03][0][0] = 1
|
||||
@ -913,7 +913,7 @@ USERD_get_element_label_status
|
||||
on a part by part basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
|
||||
|
||||
@ -983,7 +983,7 @@ USERD_get_global_coords
|
||||
|
||||
And conn_array in USERD_get_element_connectivities_for_part
|
||||
as follows:
|
||||
|
||||
|
||||
Triangle Connectivity
|
||||
-------- ------------
|
||||
T1 conn_array[Z_TRI03][0][0] = 1
|
||||
@ -1037,7 +1037,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1050,8 +1050,8 @@ USERD_get_name_of_reader
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) *two_fields = FALSE if only one data field required
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -1305,7 +1305,7 @@ USERD_get_part_build_info
|
||||
The numbers provided here are the ones by
|
||||
which the parts will be referred to in any
|
||||
of the other routines which receive a part
|
||||
number or block number as an argument!!
|
||||
number or block number as an argument!!
|
||||
********************************************
|
||||
|
||||
(Array will have been allocated
|
||||
@ -1421,7 +1421,7 @@ USERD_get_scalar_values
|
||||
---------
|
||||
(IN) which_scalar = The variable number (of scalar type)
|
||||
|
||||
(IN) which_part
|
||||
(IN) which_part
|
||||
|
||||
if Z_PER_NODE: Not used
|
||||
|
||||
@ -1433,7 +1433,7 @@ USERD_get_scalar_values
|
||||
|
||||
if Z_PER_ELEM: = The element type
|
||||
|
||||
(OUT) scalar_array
|
||||
(OUT) scalar_array
|
||||
|
||||
if Z_PER_NODE: = 1D array containing scalar values
|
||||
for each node.
|
||||
@ -1443,7 +1443,7 @@ USERD_get_scalar_values
|
||||
|
||||
if Z_PER_ELEM: = 1d array containing scalar values for
|
||||
each element of a particular part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
number_of_elements[which_part][which_type]
|
||||
long. See USERD_get_part_build_info)
|
||||
@ -1590,7 +1590,7 @@ USERD_get_variable_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -1683,7 +1683,7 @@ USERD_get_vector_values
|
||||
---------
|
||||
(IN) which_vector = The variable number
|
||||
|
||||
(IN) which_part
|
||||
(IN) which_part
|
||||
|
||||
if Z_PER_NODE: Not used
|
||||
|
||||
@ -1695,7 +1695,7 @@ USERD_get_vector_values
|
||||
|
||||
if Z_PER_ELEM: = The element type
|
||||
|
||||
(OUT) vector_array
|
||||
(OUT) vector_array
|
||||
|
||||
if Z_PER_NODE: = 1D array containing vector values
|
||||
for each node.
|
||||
@ -1719,7 +1719,7 @@ USERD_get_vector_values
|
||||
|
||||
if Z_PER_ELEM: = 1d array containing vector values for
|
||||
each element of a particular part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
3 by number_of_elements[which_part][which_type]
|
||||
long. See USERD_get_part_build_info)
|
||||
@ -1776,8 +1776,8 @@ USERD_set_filenames
|
||||
field of the data dialog.
|
||||
(IN) filename_2 = the filename entered into the result
|
||||
field of the data dialog.
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
had the path prepended to them. This
|
||||
|
||||
@ -14,7 +14,7 @@ You should consider it if:
|
||||
- you want to provide your own "border" elements (as opposed to EnSight's
|
||||
computation of them)
|
||||
|
||||
As an indication of the differences that might be realized in efficency,
|
||||
As an indication of the differences that might be realized in efficiency,
|
||||
consider the following comparison on an unstructured model consisting of:
|
||||
|
||||
1,639,058 nodes
|
||||
@ -95,7 +95,7 @@ EnSight must do a fair amount of work to get data provided in the manner
|
||||
described above into the form that it uses internally. There is mapping that
|
||||
has to be setup and maintained between the global arrays and the local part
|
||||
arrays so that updating over time can be accomplished efficiently. There is
|
||||
hashing that is required in order to deal efficently with node ids.
|
||||
hashing that is required in order to deal efficiently with node ids.
|
||||
|
||||
All of this leads to a considerable amount of temporary memory and processing,
|
||||
in order to get a model read into EnSight.
|
||||
@ -115,7 +115,7 @@ API 2.0 deals with:
|
||||
API 2.0 requires that the coordinates and corresponding nodal variables be
|
||||
provided per part. This eliminates the global to local mapping with all its
|
||||
associated temporary memory and processing time. The connectivity of the
|
||||
elements in each part reference the node indicies of its own (one-based) part
|
||||
elements in each part reference the node indices of its own (one-based) part
|
||||
coordinate array. The connectivity of the elements do not reference the nodes
|
||||
according to node ids. Node ids (and element ids for that matter) are purely
|
||||
labels for screen display and for query operations within EnSight. This
|
||||
@ -354,7 +354,7 @@ USERD_get_element_ids_for_part USERD_get_part_element_ids_by_type
|
||||
(Required) -> USERD_get_border_availability
|
||||
(Can be a dummy) -> USERD_get_border_elements_by_type
|
||||
|
||||
transient model allocation efficency:
|
||||
transient model allocation efficiency:
|
||||
(Can be a dummy) -> USERD_get_maxsize_info
|
||||
|
||||
Possible use with Server-of-Servers:
|
||||
|
||||
@ -49,7 +49,7 @@ type format.
|
||||
Some of its advantages are::
|
||||
|
||||
* Most intermediate temporary arrays have been eliminated, such that the user
|
||||
defined routines write directly into internal part structures. This is a
|
||||
defined routines write directly into internal part structures. This is a
|
||||
considerable improvement in memory use, and improves speed as well since
|
||||
far less memory need be allocated, initialized, etc.
|
||||
|
||||
@ -131,7 +131,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
Reads Cobalt grid and picture/restart file data
|
||||
$ENSIGHT7_HOME/user_defined_src/readers/cobalt
|
||||
|
||||
|
||||
Reads binary Nastran OP2 data base
|
||||
$ENSIGHT7_HOME/user_defined_src/readers/nastran
|
||||
|
||||
@ -156,10 +156,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -207,7 +207,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -301,7 +301,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -346,7 +346,7 @@ Generally Needed for BLOCK data
|
||||
USERD_get_block_coords_by_component block coordinates
|
||||
USERD_get_block_iblanking block iblanking values
|
||||
USERD_get_block_scalar_values block scalar variables
|
||||
USERD_get_block_vector_values_by_component block vector variables
|
||||
USERD_get_block_vector_values_by_component block vector variables
|
||||
|
||||
|
||||
Generally needed for either or both kinds of data
|
||||
@ -381,7 +381,7 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
@ -412,7 +412,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_variable_info
|
||||
|
||||
|
||||
5. Part building (per part created)
|
||||
|
||||
USERD_set_time_step
|
||||
@ -427,12 +427,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
6. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_step
|
||||
USERD_get_constant_value
|
||||
|
||||
|
||||
scalars:
|
||||
-------
|
||||
USERD_get_description_lines
|
||||
@ -467,7 +467,7 @@ called is given.
|
||||
USERD_get_element_ids_for_part
|
||||
USERD_get_block_iblanking
|
||||
USERD_get_block_coords_by_component
|
||||
|
||||
|
||||
8. Node or Element queries over time
|
||||
|
||||
USERD_get_variable_value_at_specific
|
||||
@ -675,7 +675,7 @@ USERD_get_block_scalar_values
|
||||
for each node or element.
|
||||
|
||||
Array will have been allocated:
|
||||
|
||||
|
||||
if Z_PER_NODE:
|
||||
i*j*k for the block long
|
||||
|
||||
@ -734,7 +734,7 @@ USERD_get_block_vector_values_by_component
|
||||
component value for each node or element.
|
||||
|
||||
Array will have been allocated:
|
||||
|
||||
|
||||
if Z_PER_NODE:
|
||||
i*j*k for the block long
|
||||
|
||||
@ -841,7 +841,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -944,7 +944,7 @@ USERD_get_element_connectivities_for_part
|
||||
conn_array[Z_TRI03][25][3]
|
||||
conn_array[Z_QUA04][100][4]
|
||||
conn_array[Z_HEX08][30][8]
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -979,7 +979,7 @@ USERD_get_element_connectivities_for_part
|
||||
|
||||
|
||||
And conn_array here as follows:
|
||||
|
||||
|
||||
Triangle Connectivity
|
||||
-------- ------------
|
||||
T1 conn_array[Z_TRI03][0][0] = 1
|
||||
@ -1074,7 +1074,7 @@ USERD_get_element_label_status
|
||||
on a part by part basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
|
||||
|
||||
@ -1144,7 +1144,7 @@ USERD_get_global_coords
|
||||
|
||||
And conn_array in USERD_get_element_connectivities_for_part
|
||||
as follows:
|
||||
|
||||
|
||||
Triangle Connectivity
|
||||
-------- ------------
|
||||
T1 conn_array[Z_TRI03][0][0] = 1
|
||||
@ -1198,7 +1198,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1211,8 +1211,8 @@ USERD_get_name_of_reader
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) *two_fields = FALSE if only one data field required
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -1466,7 +1466,7 @@ USERD_get_part_build_info
|
||||
The numbers provided here are the ones by
|
||||
which the parts will be referred to in any
|
||||
of the other routines which receive a part
|
||||
number or block number as an argument!!
|
||||
number or block number as an argument!!
|
||||
********************************************
|
||||
|
||||
(Array will have been allocated
|
||||
@ -1582,7 +1582,7 @@ USERD_get_scalar_values
|
||||
---------
|
||||
(IN) which_scalar = The variable number (of scalar type)
|
||||
|
||||
(IN) which_part
|
||||
(IN) which_part
|
||||
|
||||
if Z_PER_NODE: Not used
|
||||
|
||||
@ -1594,7 +1594,7 @@ USERD_get_scalar_values
|
||||
|
||||
if Z_PER_ELEM: = The element type
|
||||
|
||||
(OUT) scalar_array
|
||||
(OUT) scalar_array
|
||||
|
||||
if Z_PER_NODE: = 1D array containing scalar values
|
||||
for each node.
|
||||
@ -1604,7 +1604,7 @@ USERD_get_scalar_values
|
||||
|
||||
if Z_PER_ELEM: = 1d array containing scalar values for
|
||||
each element of a particular part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
number_of_elements[which_part][which_type]
|
||||
long. See USERD_get_part_build_info)
|
||||
@ -1751,7 +1751,7 @@ USERD_get_variable_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -1843,7 +1843,7 @@ USERD_get_vector_values
|
||||
---------
|
||||
(IN) which_vector = The variable number
|
||||
|
||||
(IN) which_part
|
||||
(IN) which_part
|
||||
|
||||
if Z_PER_NODE: Not used
|
||||
|
||||
@ -1855,7 +1855,7 @@ USERD_get_vector_values
|
||||
|
||||
if Z_PER_ELEM: = The element type
|
||||
|
||||
(OUT) vector_array
|
||||
(OUT) vector_array
|
||||
|
||||
if Z_PER_NODE: = 1D array containing vector values
|
||||
for each node.
|
||||
@ -1879,7 +1879,7 @@ USERD_get_vector_values
|
||||
|
||||
if Z_PER_ELEM: = 1D array containing vector values for
|
||||
each element of a particular part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
3 by number_of_elements[which_part][which_type]
|
||||
long. See USERD_get_part_build_info)
|
||||
@ -1936,8 +1936,8 @@ USERD_set_filenames
|
||||
field of the data dialog.
|
||||
(IN) filename_2 = the filename entered into the result
|
||||
field of the data dialog.
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
had the path prepended to them. This
|
||||
@ -2009,5 +2009,3 @@ USERD_stop_part_building
|
||||
|
||||
|
||||
---- end of doucment ----
|
||||
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ This file also contains guidance on necessary changes to modify an existing
|
||||
****************************************************************************
|
||||
Note: A default dummy_gold reader and an Ensight Gold example of this new 2.0
|
||||
user defined reader API has been included with your EnSight release.
|
||||
Also, the SILO reader included in the release utilizes the 2.0 API.
|
||||
Also, the SILO reader included in the release utilizes the 2.0 API.
|
||||
|
||||
And while not identical, the API 1.0 readers might be useful to
|
||||
examine as examples. Many of the routines are the same or similar.
|
||||
@ -115,10 +115,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -166,7 +166,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -260,7 +260,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -354,7 +354,7 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
@ -399,7 +399,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_gold_variable_info
|
||||
|
||||
|
||||
6. Part building (per part created)
|
||||
|
||||
USERD_set_time_set_and_step
|
||||
@ -417,12 +417,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
7. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_constant_val
|
||||
|
||||
|
||||
scalars/vectors/tensors:
|
||||
------------------------
|
||||
USERD_get_descrip_lines
|
||||
@ -457,7 +457,7 @@ called is given.
|
||||
USERD_get_border_availability (If border representation
|
||||
USERD_get_border_elements_by_type is selected)
|
||||
|
||||
|
||||
|
||||
9. Node or Element queries over time
|
||||
|
||||
USERD_get_var_value_at_specific
|
||||
@ -470,7 +470,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -594,9 +594,9 @@ USERD_get_block_coords_by_component
|
||||
---------
|
||||
(IN) block_number = The block part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -640,9 +640,9 @@ USERD_get_block_iblanking
|
||||
---------
|
||||
(IN) block_number = The block part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -694,9 +694,9 @@ USERD_get_border_availability
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -727,7 +727,7 @@ USERD_get_border_elements_by_type
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Provides border element connectivity and parent information.
|
||||
Provides border element connectivity and parent information.
|
||||
|
||||
Specification:
|
||||
-------------
|
||||
@ -746,9 +746,9 @@ USERD_get_border_elements_by_type
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -796,7 +796,7 @@ USERD_get_border_elements_by_type
|
||||
(Array will have been allocated
|
||||
num_of_elements of the type long)
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless USERD_get_border_availability returned Z_OK
|
||||
@ -898,7 +898,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -998,7 +998,7 @@ USERD_get_element_label_status
|
||||
on a per part, per type basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
@ -1014,7 +1014,7 @@ USERD_get_geom_timeset_number -
|
||||
|
||||
Returns:
|
||||
-------
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
For example, if USERD_get_number_of timesets
|
||||
returns 2, the valid timeset numbers would be
|
||||
1 or 2.
|
||||
@ -1056,30 +1056,30 @@ USERD_get_gold_part_build_info
|
||||
---------
|
||||
(OUT) part_id = Array containing the external part
|
||||
ids for each of the model parts.
|
||||
|
||||
|
||||
IMPORTANT:
|
||||
Parts numbers must be >= 1, because
|
||||
of the way they are used in the GUI
|
||||
|
||||
|
||||
*******************************************
|
||||
The ids provided here are the numbers by
|
||||
which the parts will be referred to in the
|
||||
GUI (if possible). They are basically
|
||||
labels as far as you are concerned.
|
||||
|
||||
|
||||
Note: The part numbers you pass to routines
|
||||
which receive a part_number or block_number
|
||||
or which_part as an argument are the 1-based
|
||||
table index of the parts!
|
||||
|
||||
|
||||
example: If Numparts_available = 3
|
||||
|
||||
|
||||
Table index part_id
|
||||
----------- -------
|
||||
1 13
|
||||
2 57
|
||||
3 125
|
||||
|
||||
|
||||
^ ^
|
||||
| |
|
||||
| These are placed in:
|
||||
@ -1091,7 +1091,7 @@ USERD_get_gold_part_build_info
|
||||
These implied table indices are the part_number,
|
||||
block_number, or which_part numbers that you would
|
||||
pass to routines like:
|
||||
|
||||
|
||||
USERD_get_part_coords(int part_number,...
|
||||
USERD_get_part_node_ids(int part_number,...
|
||||
USERD_get_part_elements_by_type(int part_number,...
|
||||
@ -1108,7 +1108,7 @@ USERD_get_gold_part_build_info
|
||||
int which_node_or_elem,
|
||||
int which_part,...
|
||||
********************************************
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1130,7 +1130,7 @@ USERD_get_gold_part_build_info
|
||||
long)
|
||||
|
||||
(OUT) number_of_nodes = Number of unstructured nodes in the part
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1263,23 +1263,23 @@ USERD_get_gold_variable_info
|
||||
Z_PER_ELEM
|
||||
|
||||
(OUT) var_complex = TRUE if complex, FALSE otherwise
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_ifilename = Variable imaginary filenames (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables by Z_BUFL long)
|
||||
|
||||
(OUT) var_freq = complex frequency (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_contran = TRUE if constant changes per time step
|
||||
FALSE if constant truly same at all time steps
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
@ -1353,7 +1353,7 @@ USERD_get_maxsize_info
|
||||
---------
|
||||
(OUT) max_number_of_nodes = Maximum number of unstructured nodes
|
||||
in the part (over all time).
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1462,7 +1462,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1475,8 +1475,8 @@ USERD_get_name_of_reader
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) *two_fields = FALSE if only one data field required
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -1650,37 +1650,37 @@ USERD_get_number_of_timesets
|
||||
|
||||
* If you have a static model, both geometry and variables, you should
|
||||
return a value of zero.
|
||||
|
||||
|
||||
* If you have a transient model, then you should return one or more.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
Geometry Variables No. of timesets
|
||||
--------- ------------------------------ ---------------
|
||||
static static 0
|
||||
static transient, all using same timeset 1
|
||||
|
||||
|
||||
transient transient, all using same timeset as geom 1
|
||||
|
||||
|
||||
static transient, using 3 different timesets 3
|
||||
|
||||
|
||||
transient transient, using 3 different timesets and
|
||||
none of them the same as the
|
||||
geometry timeset 4
|
||||
etc.
|
||||
|
||||
|
||||
NOTE: ALL GEOMETRY MUST USE THE SAME TIMESET!!! You will have to provide
|
||||
the timeset number to use
|
||||
for geometry in:
|
||||
USERD_get_geom_timeset_number
|
||||
|
||||
|
||||
Variables can use the same timeset as the geometry, or can use
|
||||
other timesets. More than one variable can use the same timeset.
|
||||
|
||||
|
||||
example: changing geometry at 5 steps, 0.0, 1.0, 2.0, 3.0, 4.0
|
||||
variable 1 provided at these same five steps
|
||||
variable 2 provided at 3 steps, 0.5, 1.25, 3.33
|
||||
|
||||
|
||||
This routine should return a value of 2, because only
|
||||
two different timesets are needed. Timeset 1 would be for the
|
||||
geometry and variable 1 (they both use it). Timeset 2 would
|
||||
@ -1742,9 +1742,9 @@ USERD_get_part_coords
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -1810,9 +1810,9 @@ USERD_get_part_element_ids_by_type
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -1885,9 +1885,9 @@ USERD_get_part_elements_by_type
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -1928,7 +1928,7 @@ USERD_get_part_elements_by_type
|
||||
conn_array[100][4] when called with Z_QUA04
|
||||
|
||||
conn_array[30][8] when called with Z_HEX08
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -1956,9 +1956,9 @@ USERD_get_part_node_ids
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
@ -2058,7 +2058,7 @@ USERD_get_sol_times
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Get the solution times associated with each time step for
|
||||
Get the solution times associated with each time step for
|
||||
desired timeset.
|
||||
|
||||
Specification:
|
||||
@ -2074,7 +2074,7 @@ USERD_get_sol_times
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -2110,7 +2110,7 @@ USERD_get_timeset_description -
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -2165,14 +2165,14 @@ USERD_get_var_by_component
|
||||
(IN) which_part Since EnSight Version 7.4
|
||||
-------------------------
|
||||
= The part number
|
||||
|
||||
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
|
||||
Prior to EnSight Version 7.4
|
||||
----------------------------
|
||||
= The part id This is the part_id label loaded
|
||||
@ -2207,22 +2207,22 @@ USERD_get_var_by_component
|
||||
|
||||
(IN) imag_data = TRUE if imag component
|
||||
FALSE if real component
|
||||
|
||||
|
||||
(IN) component = The component: (0 if Z_SCALAR)
|
||||
(0 - 2 if Z_VECTOR)
|
||||
(0 - 5 if Z_TENSOR)
|
||||
(0 - 8 if Z_TENSOR9)
|
||||
|
||||
* 6 Symmetric Indicies, 0:5 *
|
||||
|
||||
* 6 Symmetric Indices, 0:5 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
* T = | 22 23 | = | 1 5 | *
|
||||
* | | | | *
|
||||
* | 33 | | 2 | *
|
||||
|
||||
|
||||
* 9 General Indicies, 0:8 *
|
||||
|
||||
* 9 General Indices, 0:8 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
@ -2230,7 +2230,7 @@ USERD_get_var_by_component
|
||||
* | | | | *
|
||||
* | 31 32 33 | | 7 8 2 | *
|
||||
|
||||
(OUT) var_array
|
||||
(OUT) var_array
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
(IMPORTANT: this array is 1-based for both Z_PER_NODE and Z_PER_ELEM!!!)
|
||||
@ -2252,7 +2252,7 @@ USERD_get_var_by_component
|
||||
if Z_PER_ELEM: = 1D array containing variable component
|
||||
value for each element of a particular
|
||||
part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(number_of_elements[which_part][which_type] + 1)
|
||||
long. See USERD_get_gold_part_build_info)
|
||||
@ -2314,7 +2314,7 @@ USERD_get_var_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -2345,14 +2345,14 @@ USERD_get_var_value_at_specific
|
||||
(IN) which_part Since EnSight Version 7.4
|
||||
-------------------------
|
||||
= The part number
|
||||
|
||||
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
|
||||
Prior to EnSight Version 7.4
|
||||
----------------------------
|
||||
= The part id This is the part_id label loaded
|
||||
@ -2420,8 +2420,8 @@ USERD_set_filenames
|
||||
|
||||
(IN) filename_2 = the filename entered into the result
|
||||
field of the data dialog.
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
@ -2470,7 +2470,7 @@ USERD_set_server_number
|
||||
something that you can take advantage of. If your data is already
|
||||
partitioned in some manner, such that you can access the proper
|
||||
portions using this information.
|
||||
|
||||
|
||||
For all non-SOS uses, this will simply be 1 of 1
|
||||
|
||||
|
||||
@ -2496,7 +2496,7 @@ USERD_set_time_set_and_step
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number (1 based).
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid timeset_number's
|
||||
would be 1 and 2.
|
||||
|
||||
@ -57,7 +57,7 @@ Some of its advantages are::
|
||||
Note: A default dummy_gold reader and an Ensight Gold example of this new 2.01
|
||||
user defined reader API has been included with your EnSight release.
|
||||
Also, the SILO and ExodusII_gold reader included in the release
|
||||
utilizes the 2.01 API.
|
||||
utilizes the 2.01 API.
|
||||
****************************************************************************
|
||||
|
||||
|
||||
@ -87,10 +87,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -138,7 +138,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -232,7 +232,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -277,7 +277,7 @@ USERD_get_block_ghost_flags block ghost cell flags
|
||||
These routines, which formerly were only for unstructured data, will now
|
||||
also be called for structured data if you specify that ids will be given
|
||||
in the USERD_get_node_label_status and USERD_get_element_label_status rotuines
|
||||
------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------
|
||||
USERD_get_part_node_ids part's node ids
|
||||
USERD_get_part_element_ids_by_type part's element ids
|
||||
|
||||
@ -334,7 +334,7 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
@ -381,7 +381,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_gold_variable_info
|
||||
|
||||
|
||||
6. Part building (per part created)
|
||||
|
||||
both unstructured and structured:
|
||||
@ -412,12 +412,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
7. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_constant_val
|
||||
|
||||
|
||||
scalars/vectors/tensors:
|
||||
------------------------
|
||||
USERD_get_descrip_lines
|
||||
@ -457,7 +457,7 @@ called is given.
|
||||
USERD_get_border_availability (If border representation
|
||||
USERD_get_border_elements_by_type is selected)
|
||||
|
||||
|
||||
|
||||
9. Node or Element queries over time
|
||||
|
||||
USERD_get_var_value_at_specific
|
||||
@ -470,7 +470,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -711,24 +711,24 @@ USERD_get_block_ghost_flags
|
||||
|
||||
(OUT) ghost_flags = 1D array containing ghost flag value
|
||||
for each block cell.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(i-1)*(j-1)*(k-1) for the block long)
|
||||
|
||||
|
||||
possible values are: 0 = non-ghost cell (normal cell)
|
||||
>0 = ghost cell
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Only called for structured "block" parts that have some ghost cells
|
||||
as indicated by the USERD_get_ghost_in_block_flag. The model must
|
||||
of course also have been indicated to have some ghost cells in the
|
||||
USERD_get_ghost_in_model_flag routine.
|
||||
|
||||
|
||||
* It is sufficient to set the value to be 1 to flag as a ghost cell,
|
||||
but the value can be any non-zero value, so you could use it to
|
||||
indicate which block or which server (for Server-of-server use) the
|
||||
@ -796,7 +796,7 @@ USERD_get_border_elements_by_type
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Provides border element connectivity and parent information.
|
||||
Provides border element connectivity and parent information.
|
||||
|
||||
Specification:
|
||||
-------------
|
||||
@ -865,7 +865,7 @@ USERD_get_border_elements_by_type
|
||||
(Array will have been allocated
|
||||
num_of_elements of the type long)
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless USERD_get_border_availability returned Z_OK
|
||||
@ -967,7 +967,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -1074,7 +1074,7 @@ USERD_get_element_label_status
|
||||
on a per part, per type basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
* Starting at API 2.01:
|
||||
--------------------
|
||||
@ -1101,7 +1101,7 @@ USERD_get_geom_timeset_number -
|
||||
|
||||
Returns:
|
||||
-------
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
For example, if USERD_get_number_of timesets
|
||||
returns 2, the valid timeset numbers would be
|
||||
1 or 2.
|
||||
@ -1217,7 +1217,7 @@ USERD_get_gold_part_build_info
|
||||
long)
|
||||
|
||||
(OUT) number_of_nodes = Number of unstructured nodes in the part
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1366,23 +1366,23 @@ USERD_get_gold_variable_info
|
||||
Z_PER_ELEM
|
||||
|
||||
(OUT) var_complex = TRUE if complex, FALSE otherwise
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_ifilename = Variable imaginary filenames (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables by Z_BUFL long)
|
||||
|
||||
(OUT) var_freq = complex frequency (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_contran = TRUE if constant changes per time step
|
||||
FALSE if constant truly same at all time steps
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
@ -1456,7 +1456,7 @@ USERD_get_ghosts_in_block_flag
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Intended for structured parts only, value will be ignored for
|
||||
unstructured parts
|
||||
|
||||
@ -1495,7 +1495,7 @@ USERD_get_maxsize_info
|
||||
---------
|
||||
(OUT) max_number_of_nodes = Maximum number of unstructured nodes
|
||||
in the part (over all time).
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1591,7 +1591,7 @@ USERD_get_ghosts_in_model_flag
|
||||
|
||||
Arguments:
|
||||
---------
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
@ -1643,7 +1643,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1656,8 +1656,8 @@ USERD_get_name_of_reader
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) *two_fields = FALSE if only one data field required
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -1846,37 +1846,37 @@ USERD_get_number_of_timesets
|
||||
|
||||
* If you have a static model, both geometry and variables, you should
|
||||
return a value of zero.
|
||||
|
||||
|
||||
* If you have a transient model, then you should return one or more.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
Geometry Variables No. of timesets
|
||||
--------- ------------------------------ ---------------
|
||||
static static 0
|
||||
static transient, all using same timeset 1
|
||||
|
||||
|
||||
transient transient, all using same timeset as geom 1
|
||||
|
||||
|
||||
static transient, using 3 different timesets 3
|
||||
|
||||
|
||||
transient transient, using 3 different timesets and
|
||||
none of them the same as the
|
||||
geometry timeset 4
|
||||
etc.
|
||||
|
||||
|
||||
NOTE: ALL GEOMETRY MUST USE THE SAME TIMESET!!! You will have to provide
|
||||
the timeset number to use
|
||||
for geometry in:
|
||||
USERD_get_geom_timeset_number
|
||||
|
||||
|
||||
Variables can use the same timeset as the geometry, or can use
|
||||
other timesets. More than one variable can use the same timeset.
|
||||
|
||||
|
||||
example: changing geometry at 5 steps, 0.0, 1.0, 2.0, 3.0, 4.0
|
||||
variable 1 provided at these same five steps
|
||||
variable 2 provided at 3 steps, 0.5, 1.25, 3.33
|
||||
|
||||
|
||||
This routine should return a value of 2, because only
|
||||
two different timesets are needed. Timeset 1 would be for the
|
||||
geometry and variable 1 (they both use it). Timeset 2 would
|
||||
@ -2158,7 +2158,7 @@ USERD_get_part_elements_by_type
|
||||
conn_array[100][4] when called with Z_QUA04
|
||||
|
||||
conn_array[30][8] when called with Z_HEX08
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -2291,7 +2291,7 @@ USERD_get_sol_times
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Get the solution times associated with each time step for
|
||||
Get the solution times associated with each time step for
|
||||
desired timeset.
|
||||
|
||||
Specification:
|
||||
@ -2307,7 +2307,7 @@ USERD_get_sol_times
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -2343,7 +2343,7 @@ USERD_get_timeset_description -
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -2456,22 +2456,22 @@ USERD_get_var_by_component
|
||||
|
||||
(IN) imag_data = TRUE if imag component
|
||||
FALSE if real component
|
||||
|
||||
|
||||
(IN) component = The component: (0 if Z_SCALAR)
|
||||
(0 - 2 if Z_VECTOR)
|
||||
(0 - 5 if Z_TENSOR)
|
||||
(0 - 8 if Z_TENSOR9)
|
||||
|
||||
* 6 Symmetric Indicies, 0:5 *
|
||||
|
||||
* 6 Symmetric Indices, 0:5 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
* T = | 22 23 | = | 1 5 | *
|
||||
* | | | | *
|
||||
* | 33 | | 2 | *
|
||||
|
||||
|
||||
* 9 General Indicies, 0:8 *
|
||||
|
||||
* 9 General Indices, 0:8 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
@ -2479,7 +2479,7 @@ USERD_get_var_by_component
|
||||
* | | | | *
|
||||
* | 31 32 33 | | 7 8 2 | *
|
||||
|
||||
(OUT) var_array
|
||||
(OUT) var_array
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
(IMPORTANT: this array is 1-based for both Z_PER_NODE and Z_PER_ELEM!!!)
|
||||
@ -2501,7 +2501,7 @@ USERD_get_var_by_component
|
||||
if Z_PER_ELEM: = 1D array containing variable component
|
||||
value for each element of a particular
|
||||
part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(number_of_elements[which_part][which_type] + 1)
|
||||
long. See USERD_get_gold_part_build_info)
|
||||
@ -2563,7 +2563,7 @@ USERD_get_var_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -2670,8 +2670,8 @@ USERD_set_filenames
|
||||
|
||||
(IN) filename_2 = the filename entered into the result
|
||||
field of the data dialog.
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
@ -2720,7 +2720,7 @@ USERD_set_server_number
|
||||
something that you can take advantage of. If your data is already
|
||||
partitioned in some manner, such that you can access the proper
|
||||
portions using this information.
|
||||
|
||||
|
||||
For all non-SOS uses, this will simply be 1 of 1
|
||||
|
||||
|
||||
@ -2746,7 +2746,7 @@ USERD_set_time_set_and_step
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number (1 based).
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid timeset_number's
|
||||
would be 1 and 2.
|
||||
|
||||
@ -52,10 +52,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -103,7 +103,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -197,7 +197,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -242,7 +242,7 @@ USERD_get_block_ghost_flags block ghost cell flags
|
||||
These routines, which formerly were only for unstructured data, will now
|
||||
also be called for structured data if you specify that ids will be given
|
||||
in the USERD_get_node_label_status and USERD_get_element_label_status rotuines
|
||||
------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------
|
||||
USERD_get_part_node_ids part's node ids
|
||||
USERD_get_part_element_ids_by_type part's element ids
|
||||
|
||||
@ -323,7 +323,7 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
@ -370,7 +370,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_gold_variable_info
|
||||
|
||||
|
||||
6. Part building (per part created)
|
||||
|
||||
both unstructured and structured:
|
||||
@ -411,12 +411,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
7. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_constant_val
|
||||
|
||||
|
||||
scalars/vectors/tensors:
|
||||
------------------------
|
||||
USERD_get_descrip_lines
|
||||
@ -456,7 +456,7 @@ called is given.
|
||||
USERD_get_border_availability (If border representation
|
||||
USERD_get_border_elements_by_type is selected)
|
||||
|
||||
|
||||
|
||||
9. Node or Element queries over time
|
||||
|
||||
USERD_get_var_value_at_specific
|
||||
@ -489,7 +489,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -736,24 +736,24 @@ USERD_get_block_ghost_flags
|
||||
|
||||
(OUT) ghost_flags = 1D array containing ghost flag value
|
||||
for each block cell.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(i-1)*(j-1)*(k-1) for the block long)
|
||||
|
||||
|
||||
possible values are: 0 = non-ghost cell (normal cell)
|
||||
>0 = ghost cell
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Only called for structured "block" parts that have some ghost cells
|
||||
as indicated by the USERD_get_ghost_in_block_flag. The model must
|
||||
of course also have been indicated to have some ghost cells in the
|
||||
USERD_get_ghost_in_model_flag routine.
|
||||
|
||||
|
||||
* It is sufficient to set the value to be 1 to flag as a ghost cell,
|
||||
but the value can be any non-zero value, so you could use it to
|
||||
indicate which block or which server (for Server-of-server use) the
|
||||
@ -821,7 +821,7 @@ USERD_get_border_elements_by_type
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Provides border element connectivity and parent information.
|
||||
Provides border element connectivity and parent information.
|
||||
|
||||
Specification:
|
||||
-------------
|
||||
@ -890,7 +890,7 @@ USERD_get_border_elements_by_type
|
||||
(Array will have been allocated
|
||||
num_of_elements of the type long)
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless USERD_get_border_availability returned Z_OK
|
||||
@ -992,7 +992,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -1099,7 +1099,7 @@ USERD_get_element_label_status
|
||||
on a per part, per type basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
* Starting at API 2.01:
|
||||
--------------------
|
||||
@ -1126,7 +1126,7 @@ USERD_get_geom_timeset_number -
|
||||
|
||||
Returns:
|
||||
-------
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
For example, if USERD_get_number_of timesets
|
||||
returns 2, the valid timeset numbers would be
|
||||
1 or 2.
|
||||
@ -1242,7 +1242,7 @@ USERD_get_gold_part_build_info
|
||||
long)
|
||||
|
||||
(OUT) number_of_nodes = Number of unstructured nodes in the part
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1525,23 +1525,23 @@ USERD_get_gold_variable_info
|
||||
Z_PER_ELEM
|
||||
|
||||
(OUT) var_complex = TRUE if complex, FALSE otherwise
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_ifilename = Variable imaginary filenames (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables by Z_BUFL long)
|
||||
|
||||
(OUT) var_freq = complex frequency (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_contran = TRUE if constant changes per time step
|
||||
FALSE if constant truly same at all time steps
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
@ -1615,7 +1615,7 @@ USERD_get_ghosts_in_block_flag
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Intended for structured parts only, value will be ignored for
|
||||
unstructured parts
|
||||
|
||||
@ -1639,7 +1639,7 @@ USERD_get_ghosts_in_model_flag
|
||||
|
||||
Arguments:
|
||||
---------
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
@ -1754,7 +1754,7 @@ USERD_get_maxsize_info
|
||||
---------
|
||||
(OUT) max_number_of_nodes = Maximum number of unstructured nodes
|
||||
in the part (over all time).
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1877,7 +1877,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1890,8 +1890,8 @@ USERD_get_name_of_reader
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) *two_fields = FALSE if only one data field required
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
in the data dialog of EnSight.
|
||||
TRUE if two data fields required.
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -2709,37 +2709,37 @@ USERD_get_number_of_timesets
|
||||
|
||||
* If you have a static model, both geometry and variables, you should
|
||||
return a value of zero.
|
||||
|
||||
|
||||
* If you have a transient model, then you should return one or more.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
Geometry Variables No. of timesets
|
||||
--------- ------------------------------ ---------------
|
||||
static static 0
|
||||
static transient, all using same timeset 1
|
||||
|
||||
|
||||
transient transient, all using same timeset as geom 1
|
||||
|
||||
|
||||
static transient, using 3 different timesets 3
|
||||
|
||||
|
||||
transient transient, using 3 different timesets and
|
||||
none of them the same as the
|
||||
geometry timeset 4
|
||||
etc.
|
||||
|
||||
|
||||
NOTE: ALL GEOMETRY MUST USE THE SAME TIMESET!!! You will have to provide
|
||||
the timeset number to use
|
||||
for geometry in:
|
||||
USERD_get_geom_timeset_number
|
||||
|
||||
|
||||
Variables can use the same timeset as the geometry, or can use
|
||||
other timesets. More than one variable can use the same timeset.
|
||||
|
||||
|
||||
example: changing geometry at 5 steps, 0.0, 1.0, 2.0, 3.0, 4.0
|
||||
variable 1 provided at these same five steps
|
||||
variable 2 provided at 3 steps, 0.5, 1.25, 3.33
|
||||
|
||||
|
||||
This routine should return a value of 2, because only
|
||||
two different timesets are needed. Timeset 1 would be for the
|
||||
geometry and variable 1 (they both use it). Timeset 2 would
|
||||
@ -3021,7 +3021,7 @@ USERD_get_part_elements_by_type
|
||||
conn_array[100][4] when called with Z_QUA04
|
||||
|
||||
conn_array[30][8] when called with Z_HEX08
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -3155,7 +3155,7 @@ USERD_get_sol_times
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Get the solution times associated with each time step for
|
||||
Get the solution times associated with each time step for
|
||||
desired timeset.
|
||||
|
||||
Specification:
|
||||
@ -3171,7 +3171,7 @@ USERD_get_sol_times
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3207,7 +3207,7 @@ USERD_get_timeset_description -
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3320,22 +3320,22 @@ USERD_get_var_by_component
|
||||
|
||||
(IN) imag_data = TRUE if imag component
|
||||
FALSE if real component
|
||||
|
||||
|
||||
(IN) component = The component: (0 if Z_SCALAR)
|
||||
(0 - 2 if Z_VECTOR)
|
||||
(0 - 5 if Z_TENSOR)
|
||||
(0 - 8 if Z_TENSOR9)
|
||||
|
||||
* 6 Symmetric Indicies, 0:5 *
|
||||
|
||||
* 6 Symmetric Indices, 0:5 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
* T = | 22 23 | = | 1 5 | *
|
||||
* | | | | *
|
||||
* | 33 | | 2 | *
|
||||
|
||||
|
||||
* 9 General Indicies, 0:8 *
|
||||
|
||||
* 9 General Indices, 0:8 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
@ -3343,7 +3343,7 @@ USERD_get_var_by_component
|
||||
* | | | | *
|
||||
* | 31 32 33 | | 7 8 2 | *
|
||||
|
||||
(OUT) var_array
|
||||
(OUT) var_array
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
(IMPORTANT: this array is 1-based for both Z_PER_NODE and Z_PER_ELEM!!!)
|
||||
@ -3365,7 +3365,7 @@ USERD_get_var_by_component
|
||||
if Z_PER_ELEM: = 1D array containing variable component
|
||||
value for each element of a particular
|
||||
part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(number_of_elements[which_part][which_type] + 1)
|
||||
long. See USERD_get_gold_part_build_info)
|
||||
@ -3427,7 +3427,7 @@ USERD_get_var_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -3636,8 +3636,8 @@ USERD_set_filenames
|
||||
|
||||
(IN) filename_2 = the filename entered into the result
|
||||
field of the data dialog.
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
(If the two_fields flag in USERD_get_name_of_reader
|
||||
is FALSE, this will be null string)
|
||||
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
@ -3686,7 +3686,7 @@ USERD_set_server_number
|
||||
something that you can take advantage of. If your data is already
|
||||
partitioned in some manner, such that you can access the proper
|
||||
portions using this information.
|
||||
|
||||
|
||||
For all non-SOS uses, this will simply be 1 of 1
|
||||
|
||||
|
||||
@ -3712,7 +3712,7 @@ USERD_set_time_set_and_step
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number (1 based).
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid timeset_number's
|
||||
would be 1 and 2.
|
||||
|
||||
@ -40,10 +40,10 @@ reader itself. (Can actually be added to pre-2.05 readers)
|
||||
|
||||
|
||||
***>> API 2.04 additional capabilities (beyond API 2.03):
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
b.A second routine to return a matrix of flags indexed by part and
|
||||
element type indicating which parts and element types have failed
|
||||
elements at the current time step.
|
||||
@ -60,7 +60,7 @@ c.Finally a third routine to return an array of flags for a given
|
||||
|
||||
****************************************************************************
|
||||
Note: The dummy_gold reader, the Ensight Gold example reader, the
|
||||
ABAQUS_ODB reader and the LS-DYNA reader have been moved to
|
||||
ABAQUS_ODB reader and the LS-DYNA reader have been moved to
|
||||
this 2.04 API level.
|
||||
****************************************************************************
|
||||
|
||||
@ -91,10 +91,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -142,7 +142,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -236,7 +236,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -281,7 +281,7 @@ USERD_get_block_ghost_flags block ghost cell flags
|
||||
These routines, which formerly were only for unstructured data, will now
|
||||
also be called for structured data if you specify that ids will be given
|
||||
in the USERD_get_node_label_status and USERD_get_element_label_status rotuines
|
||||
------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------
|
||||
USERD_get_part_node_ids part's node ids
|
||||
USERD_get_part_element_ids_by_type part's element ids
|
||||
|
||||
@ -359,7 +359,7 @@ USERD_exit_routine cleanup upon exit routine
|
||||
---------------------------
|
||||
Optional Extra GUI Info
|
||||
Adds Toggle(s), Pulldown(s) Field(s)
|
||||
that can be used for additonal input
|
||||
that can be used for additional input
|
||||
---------------------------
|
||||
USERD_get_extra_gui_numbers Gets the number of toggles, pulldowns and fields
|
||||
USERD_get_extra_gui_defaults Gets the default values for the GUI members
|
||||
@ -379,7 +379,7 @@ New at 2.04
|
||||
|
||||
/* ----------------------------------------------------------
|
||||
*
|
||||
* Failure criteria in LS-DYNA
|
||||
* Failure criteria in LS-DYNA
|
||||
* if fail flag == threshold_val1 (0.0) then element fails
|
||||
* logic_criteria2 not used
|
||||
* threshold_val2 not used
|
||||
@ -412,7 +412,7 @@ int USERD_get_uns_failed_params(
|
||||
Z_EQUAL_TO */
|
||||
int *threshold_operator2, /* Z_GREATER_THAN, Z_LESS_THAN,
|
||||
Z_EQUAL_TO */
|
||||
int *logic_criteria2
|
||||
int *logic_criteria2
|
||||
|
||||
|
||||
-------------------------
|
||||
@ -421,14 +421,14 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
USERD_get_name_of_reader
|
||||
USERD_get_reader_descrip (optional)
|
||||
USERD_get_extra_gui_numbers (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
|
||||
2. Getting the reader version (also distinguishes between API's)
|
||||
|
||||
@ -437,7 +437,7 @@ called is given.
|
||||
3. Setting filenames and getting timeset and time info
|
||||
|
||||
USERD_set_server_number
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_filenames
|
||||
USERD_get_number_of_timesets
|
||||
USERD_get_geom_timeset_number
|
||||
@ -459,7 +459,7 @@ called is given.
|
||||
USERD_get_dataset_query_file_info
|
||||
USERD_get_descrip_lines (for geometry)
|
||||
USERD_get_number_of_model_parts
|
||||
USERD_get_uns_failed_model_flag
|
||||
USERD_get_uns_failed_model_flag
|
||||
USERD_get_gold_part_build_info
|
||||
USERD_get_uns_failed_etype_flags
|
||||
USERD_get_ghosts_in_model_flag
|
||||
@ -473,7 +473,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_gold_variable_info
|
||||
|
||||
|
||||
6. Part building (per part created)
|
||||
|
||||
both unstructured and structured:
|
||||
@ -515,12 +515,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
7. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_constant_val
|
||||
|
||||
|
||||
scalars/vectors/tensors:
|
||||
------------------------
|
||||
USERD_get_descrip_lines
|
||||
@ -534,9 +534,9 @@ called is given.
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_descrip_lines
|
||||
USERD_get_part_coords
|
||||
USERD_get_uns_failed_model_flag
|
||||
USERD_get_uns_failed_etype_flags
|
||||
USERD_get_uns_failed_elist_flags
|
||||
USERD_get_uns_failed_model_flag
|
||||
USERD_get_uns_failed_etype_flags
|
||||
USERD_get_uns_failed_elist_flags
|
||||
USERD_get_block_coords_by_component
|
||||
|
||||
changing connectivity (per part):
|
||||
@ -566,7 +566,7 @@ called is given.
|
||||
USERD_get_border_availability (If border representation
|
||||
USERD_get_border_elements_by_type is selected)
|
||||
|
||||
|
||||
|
||||
9. Node or Element queries over time
|
||||
|
||||
USERD_get_var_value_at_specific
|
||||
@ -606,7 +606,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -853,24 +853,24 @@ USERD_get_block_ghost_flags
|
||||
|
||||
(OUT) ghost_flags = 1D array containing ghost flag value
|
||||
for each block cell.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(i-1)*(j-1)*(k-1) for the block long)
|
||||
|
||||
|
||||
possible values are: 0 = non-ghost cell (normal cell)
|
||||
>0 = ghost cell
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Only called for structured "block" parts that have some ghost cells
|
||||
as indicated by the USERD_get_ghost_in_block_flag. The model must
|
||||
of course also have been indicated to have some ghost cells in the
|
||||
USERD_get_ghost_in_model_flag routine.
|
||||
|
||||
|
||||
* It is sufficient to set the value to be 1 to flag as a ghost cell,
|
||||
but the value can be any non-zero value, so you could use it to
|
||||
indicate which block or which server (for Server-of-server use) the
|
||||
@ -938,7 +938,7 @@ USERD_get_border_elements_by_type
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Provides border element connectivity and parent information.
|
||||
Provides border element connectivity and parent information.
|
||||
|
||||
Specification:
|
||||
-------------
|
||||
@ -1007,7 +1007,7 @@ USERD_get_border_elements_by_type
|
||||
(Array will have been allocated
|
||||
num_of_elements of the type long)
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless USERD_get_border_availability returned Z_OK
|
||||
@ -1109,7 +1109,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -1216,7 +1216,7 @@ USERD_get_element_label_status
|
||||
on a per part, per type basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
* Starting at API 2.01:
|
||||
--------------------
|
||||
@ -1243,7 +1243,7 @@ USERD_get_geom_timeset_number -
|
||||
|
||||
Returns:
|
||||
-------
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
For example, if USERD_get_number_of timesets
|
||||
returns 2, the valid timeset numbers would be
|
||||
1 or 2.
|
||||
@ -1359,7 +1359,7 @@ USERD_get_gold_part_build_info
|
||||
long)
|
||||
|
||||
(OUT) number_of_nodes = Number of unstructured nodes in the part
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1642,23 +1642,23 @@ USERD_get_gold_variable_info
|
||||
Z_PER_ELEM
|
||||
|
||||
(OUT) var_complex = TRUE if complex, FALSE otherwise
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_ifilename = Variable imaginary filenames (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables by Z_BUFL long)
|
||||
|
||||
(OUT) var_freq = complex frequency (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_contran = TRUE if constant changes per time step
|
||||
FALSE if constant truly same at all time steps
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
@ -1732,7 +1732,7 @@ USERD_get_ghosts_in_block_flag
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Intended for structured parts only, value will be ignored for
|
||||
unstructured parts
|
||||
|
||||
@ -1756,7 +1756,7 @@ USERD_get_ghosts_in_model_flag
|
||||
|
||||
Arguments:
|
||||
---------
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
@ -1871,7 +1871,7 @@ USERD_get_maxsize_info
|
||||
---------
|
||||
(OUT) max_number_of_nodes = Maximum number of unstructured nodes
|
||||
in the part (over all time).
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1994,7 +1994,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -2006,17 +2006,17 @@ USERD_get_name_of_reader
|
||||
(OUT) reader_name = the name of the your reader or data format.
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
and one field (Param) is optional
|
||||
Param field can contain any text
|
||||
for example a file name, modifiers,
|
||||
etc. that can be used to modify the
|
||||
reader's behavior.
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -2834,37 +2834,37 @@ USERD_get_number_of_timesets
|
||||
|
||||
* If you have a static model, both geometry and variables, you should
|
||||
return a value of zero.
|
||||
|
||||
|
||||
* If you have a transient model, then you should return one or more.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
Geometry Variables No. of timesets
|
||||
--------- ------------------------------ ---------------
|
||||
static static 0
|
||||
static transient, all using same timeset 1
|
||||
|
||||
|
||||
transient transient, all using same timeset as geom 1
|
||||
|
||||
|
||||
static transient, using 3 different timesets 3
|
||||
|
||||
|
||||
transient transient, using 3 different timesets and
|
||||
none of them the same as the
|
||||
geometry timeset 4
|
||||
etc.
|
||||
|
||||
|
||||
NOTE: ALL GEOMETRY MUST USE THE SAME TIMESET!!! You will have to provide
|
||||
the timeset number to use
|
||||
for geometry in:
|
||||
USERD_get_geom_timeset_number
|
||||
|
||||
|
||||
Variables can use the same timeset as the geometry, or can use
|
||||
other timesets. More than one variable can use the same timeset.
|
||||
|
||||
|
||||
example: changing geometry at 5 steps, 0.0, 1.0, 2.0, 3.0, 4.0
|
||||
variable 1 provided at these same five steps
|
||||
variable 2 provided at 3 steps, 0.5, 1.25, 3.33
|
||||
|
||||
|
||||
This routine should return a value of 2, because only
|
||||
two different timesets are needed. Timeset 1 would be for the
|
||||
geometry and variable 1 (they both use it). Timeset 2 would
|
||||
@ -3146,7 +3146,7 @@ USERD_get_part_elements_by_type
|
||||
conn_array[100][4] when called with Z_QUA04
|
||||
|
||||
conn_array[30][8] when called with Z_HEX08
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -3280,7 +3280,7 @@ USERD_get_sol_times
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Get the solution times associated with each time step for
|
||||
Get the solution times associated with each time step for
|
||||
desired timeset.
|
||||
|
||||
Specification:
|
||||
@ -3296,7 +3296,7 @@ USERD_get_sol_times
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3332,7 +3332,7 @@ USERD_get_timeset_description -
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3445,22 +3445,22 @@ USERD_get_var_by_component
|
||||
|
||||
(IN) imag_data = TRUE if imag component
|
||||
FALSE if real component
|
||||
|
||||
|
||||
(IN) component = The component: (0 if Z_SCALAR)
|
||||
(0 - 2 if Z_VECTOR)
|
||||
(0 - 5 if Z_TENSOR)
|
||||
(0 - 8 if Z_TENSOR9)
|
||||
|
||||
* 6 Symmetric Indicies, 0:5 *
|
||||
|
||||
* 6 Symmetric Indices, 0:5 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
* T = | 22 23 | = | 1 5 | *
|
||||
* | | | | *
|
||||
* | 33 | | 2 | *
|
||||
|
||||
|
||||
* 9 General Indicies, 0:8 *
|
||||
|
||||
* 9 General Indices, 0:8 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
@ -3468,7 +3468,7 @@ USERD_get_var_by_component
|
||||
* | | | | *
|
||||
* | 31 32 33 | | 7 8 2 | *
|
||||
|
||||
(OUT) var_array
|
||||
(OUT) var_array
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
(IMPORTANT: this array is 1-based for both Z_PER_NODE and Z_PER_ELEM!!!)
|
||||
@ -3490,7 +3490,7 @@ USERD_get_var_by_component
|
||||
if Z_PER_ELEM: = 1D array containing variable component
|
||||
value for each element of a particular
|
||||
part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(number_of_elements[which_part][which_type] + 1)
|
||||
long. See USERD_get_gold_part_build_info)
|
||||
@ -3552,7 +3552,7 @@ USERD_get_var_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -3761,17 +3761,17 @@ USERD_set_filenames
|
||||
|
||||
(IN) param_2 = The usage of this string depends on
|
||||
'two_fields' in USERD_get_name_of_reader.
|
||||
|
||||
|
||||
If two_fields is FALSE then it's empty.
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
into the result field of the data dialog.
|
||||
|
||||
|
||||
If two_fields is -1, then this contains
|
||||
optional text (filenames, modifiers, etc.)
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
@ -3820,7 +3820,7 @@ USERD_set_server_number
|
||||
something that you can take advantage of. If your data is already
|
||||
partitioned in some manner, such that you can access the proper
|
||||
portions using this information.
|
||||
|
||||
|
||||
For all non-SOS uses, this will simply be 1 of 1
|
||||
|
||||
|
||||
@ -3846,7 +3846,7 @@ USERD_set_time_set_and_step
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number (1 based).
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid timeset_number's
|
||||
would be 1 and 2.
|
||||
@ -4015,14 +4015,14 @@ USERD_rigidbody_values
|
||||
Arguments:
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
|
||||
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
|
||||
(OUT) values values[0] = IX (x location)
|
||||
values[1] = IY (y location)
|
||||
values[2] = IZ (z location)
|
||||
@ -4067,7 +4067,7 @@ USERD_set_right_side
|
||||
|
||||
|
||||
------------------------------------------------------------------
|
||||
ENHANCED GUI ROUTINES
|
||||
ENHANCED GUI ROUTINES
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_numbers
|
||||
@ -4091,7 +4091,7 @@ USERD_get_extra_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4111,63 +4111,63 @@ USERD_get_extra_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_extra_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_extra_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_defaults
|
||||
@ -4201,17 +4201,17 @@ USERD_get_extra_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4231,7 +4231,7 @@ USERD_get_extra_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4272,7 +4272,7 @@ USERD_set_extra_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4302,7 +4302,7 @@ USERD_get_var_extract_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4321,63 +4321,63 @@ USERD_get_var_extract_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_var_extract_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_var_extract_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_var_extract_gui_defaults
|
||||
@ -4411,17 +4411,17 @@ USERD_get_var_extract_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4441,7 +4441,7 @@ USERD_get_var_extract_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4482,7 +4482,7 @@ USERD_set_var_extract_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4494,19 +4494,19 @@ USERD_set_var_extract_gui_data
|
||||
/* ----------------------------------------------------------
|
||||
* New in EnSight 8 is the capability to remove (fail) elements
|
||||
* based on variable threshold values. Basically the variable
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* criteria are read in from this routine. Every element that
|
||||
* satisfies the failure criteria is removed and not used in
|
||||
* EnSight calculations.
|
||||
*
|
||||
* Example Failure criteria
|
||||
*
|
||||
* Example Failure criteria
|
||||
* Let fail_var_name = "fail_flag"
|
||||
* threshold_val1 = 0
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* logic_criteria2 not used
|
||||
* threshold_val2 not used
|
||||
* threshold_operator2 not used
|
||||
* For each value of "fail_flag" at each element,
|
||||
* For each value of "fail_flag" at each element,
|
||||
* if fail flag == threshold_val1 (0.0) then element fails
|
||||
* Return (Z_ERR) if this is not used.
|
||||
* Return (Z_OK) if failed element feature should be used
|
||||
@ -4535,7 +4535,7 @@ int USERD_get_uns_failed_params(
|
||||
Z_EQUAL_TO */
|
||||
int *threshold_operator2, /* Z_GREATER_THAN, Z_LESS_THAN,
|
||||
Z_EQUAL_TO */
|
||||
int *logic_criteria2
|
||||
int *logic_criteria2
|
||||
|
||||
|
||||
|
||||
|
||||
@ -48,10 +48,10 @@ reader itself. (Can actually be added to pre-2.05 readers)
|
||||
|
||||
|
||||
***>> API 2.04 additional capabilities (beyond API 2.03):
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
b.A second routine to return a matrix of flags indexed by part and
|
||||
element type indicating which parts and element types have failed
|
||||
elements at the current time step.
|
||||
@ -67,7 +67,7 @@ c.Finally a third routine to return an array of flags for a given
|
||||
|
||||
|
||||
****************************************************************************
|
||||
Note: Only the the Ensight Gold example reader, has been moved to
|
||||
Note: Only the the Ensight Gold example reader, has been moved to
|
||||
this 2.06 API level. And it is purely for an example - it does not
|
||||
actually provide a benefit.
|
||||
****************************************************************************
|
||||
@ -99,10 +99,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -150,7 +150,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -244,7 +244,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -289,7 +289,7 @@ USERD_get_block_ghost_flags block ghost cell flags
|
||||
These routines, which formerly were only for unstructured data, will now
|
||||
also be called for structured data if you specify that ids will be given
|
||||
in the USERD_get_node_label_status and USERD_get_element_label_status rotuines
|
||||
------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------
|
||||
USERD_get_part_node_ids part's node ids
|
||||
USERD_get_part_element_ids_by_type part's element ids
|
||||
|
||||
@ -368,7 +368,7 @@ USERD_bkup archive routine
|
||||
|
||||
USERD_exit_routine cleanup upon exit routine
|
||||
|
||||
USERD_get_uns_failed_params Gets thresholds/criteria for failure
|
||||
USERD_get_uns_failed_params Gets thresholds/criteria for failure
|
||||
|
||||
USERD_rigidbody_existence Returns whether rigid body transformation
|
||||
data exists for the model.
|
||||
@ -391,14 +391,14 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
USERD_get_name_of_reader
|
||||
USERD_get_reader_descrip (optional)
|
||||
USERD_get_extra_gui_numbers (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
|
||||
2. Getting the reader version (also distinguishes between API's)
|
||||
|
||||
@ -410,7 +410,7 @@ called is given.
|
||||
USERD_get_extra_gui_defaults routine)
|
||||
USERD_get_structured_reader_cinching
|
||||
USERD_set_server_number
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_filenames
|
||||
USERD_get_number_of_timesets
|
||||
USERD_get_geom_timeset_number
|
||||
@ -445,7 +445,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_gold_variable_info
|
||||
|
||||
|
||||
6. Part building (per part created)
|
||||
|
||||
both unstructured and structured:
|
||||
@ -487,12 +487,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
7. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_constant_val
|
||||
|
||||
|
||||
scalars/vectors/tensors:
|
||||
------------------------
|
||||
USERD_get_descrip_lines
|
||||
@ -536,7 +536,7 @@ called is given.
|
||||
USERD_get_border_availability (If border representation
|
||||
USERD_get_border_elements_by_type is selected)
|
||||
|
||||
|
||||
|
||||
9. Node or Element queries over time
|
||||
|
||||
USERD_get_var_value_at_specific
|
||||
@ -576,7 +576,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -823,24 +823,24 @@ USERD_get_block_ghost_flags
|
||||
|
||||
(OUT) ghost_flags = 1D array containing ghost flag value
|
||||
for each block cell.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(i-1)*(j-1)*(k-1) for the block long)
|
||||
|
||||
|
||||
possible values are: 0 = non-ghost cell (normal cell)
|
||||
>0 = ghost cell
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Only called for structured "block" parts that have some ghost cells
|
||||
as indicated by the USERD_get_ghost_in_block_flag. The model must
|
||||
of course also have been indicated to have some ghost cells in the
|
||||
USERD_get_ghost_in_model_flag routine.
|
||||
|
||||
|
||||
* It is sufficient to set the value to be 1 to flag as a ghost cell,
|
||||
but the value can be any non-zero value, so you could use it to
|
||||
indicate which block or which server (for Server-of-server use) the
|
||||
@ -908,7 +908,7 @@ USERD_get_border_elements_by_type
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Provides border element connectivity and parent information.
|
||||
Provides border element connectivity and parent information.
|
||||
|
||||
Specification:
|
||||
-------------
|
||||
@ -977,7 +977,7 @@ USERD_get_border_elements_by_type
|
||||
(Array will have been allocated
|
||||
num_of_elements of the type long)
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless USERD_get_border_availability returned Z_OK
|
||||
@ -1079,7 +1079,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -1186,7 +1186,7 @@ USERD_get_element_label_status
|
||||
on a per part, per type basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
* Starting at API 2.01:
|
||||
--------------------
|
||||
@ -1213,7 +1213,7 @@ USERD_get_geom_timeset_number -
|
||||
|
||||
Returns:
|
||||
-------
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
For example, if USERD_get_number_of timesets
|
||||
returns 2, the valid timeset numbers would be
|
||||
1 or 2.
|
||||
@ -1329,7 +1329,7 @@ USERD_get_gold_part_build_info
|
||||
long)
|
||||
|
||||
(OUT) number_of_nodes = Number of unstructured nodes in the part
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1612,23 +1612,23 @@ USERD_get_gold_variable_info
|
||||
Z_PER_ELEM
|
||||
|
||||
(OUT) var_complex = TRUE if complex, FALSE otherwise
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_ifilename = Variable imaginary filenames (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables by Z_BUFL long)
|
||||
|
||||
(OUT) var_freq = complex frequency (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_contran = TRUE if constant changes per time step
|
||||
FALSE if constant truly same at all time steps
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
@ -1702,7 +1702,7 @@ USERD_get_ghosts_in_block_flag
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Intended for structured parts only, value will be ignored for
|
||||
unstructured parts
|
||||
|
||||
@ -1726,7 +1726,7 @@ USERD_get_ghosts_in_model_flag
|
||||
|
||||
Arguments:
|
||||
---------
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
@ -1841,7 +1841,7 @@ USERD_get_maxsize_info
|
||||
---------
|
||||
(OUT) max_number_of_nodes = Maximum number of unstructured nodes
|
||||
in the part (over all time).
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1964,7 +1964,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1976,17 +1976,17 @@ USERD_get_name_of_reader
|
||||
(OUT) reader_name = the name of the your reader or data format.
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
and one field (Param) is optional
|
||||
Param field can contain any text
|
||||
for example a file name, modifiers,
|
||||
etc. that can be used to modify the
|
||||
reader's behavior.
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -2804,37 +2804,37 @@ USERD_get_number_of_timesets
|
||||
|
||||
* If you have a static model, both geometry and variables, you should
|
||||
return a value of zero.
|
||||
|
||||
|
||||
* If you have a transient model, then you should return one or more.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
Geometry Variables No. of timesets
|
||||
--------- ------------------------------ ---------------
|
||||
static static 0
|
||||
static transient, all using same timeset 1
|
||||
|
||||
|
||||
transient transient, all using same timeset as geom 1
|
||||
|
||||
|
||||
static transient, using 3 different timesets 3
|
||||
|
||||
|
||||
transient transient, using 3 different timesets and
|
||||
none of them the same as the
|
||||
geometry timeset 4
|
||||
etc.
|
||||
|
||||
|
||||
NOTE: ALL GEOMETRY MUST USE THE SAME TIMESET!!! You will have to provide
|
||||
the timeset number to use
|
||||
for geometry in:
|
||||
USERD_get_geom_timeset_number
|
||||
|
||||
|
||||
Variables can use the same timeset as the geometry, or can use
|
||||
other timesets. More than one variable can use the same timeset.
|
||||
|
||||
|
||||
example: changing geometry at 5 steps, 0.0, 1.0, 2.0, 3.0, 4.0
|
||||
variable 1 provided at these same five steps
|
||||
variable 2 provided at 3 steps, 0.5, 1.25, 3.33
|
||||
|
||||
|
||||
This routine should return a value of 2, because only
|
||||
two different timesets are needed. Timeset 1 would be for the
|
||||
geometry and variable 1 (they both use it). Timeset 2 would
|
||||
@ -3116,7 +3116,7 @@ USERD_get_part_elements_by_type
|
||||
conn_array[100][4] when called with Z_QUA04
|
||||
|
||||
conn_array[30][8] when called with Z_HEX08
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -3250,7 +3250,7 @@ USERD_get_sol_times
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Get the solution times associated with each time step for
|
||||
Get the solution times associated with each time step for
|
||||
desired timeset.
|
||||
|
||||
Specification:
|
||||
@ -3266,7 +3266,7 @@ USERD_get_sol_times
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3302,7 +3302,7 @@ USERD_get_timeset_description -
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3415,22 +3415,22 @@ USERD_get_var_by_component
|
||||
|
||||
(IN) imag_data = TRUE if imag component
|
||||
FALSE if real component
|
||||
|
||||
|
||||
(IN) component = The component: (0 if Z_SCALAR)
|
||||
(0 - 2 if Z_VECTOR)
|
||||
(0 - 5 if Z_TENSOR)
|
||||
(0 - 8 if Z_TENSOR9)
|
||||
|
||||
* 6 Symmetric Indicies, 0:5 *
|
||||
|
||||
* 6 Symmetric Indices, 0:5 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
* T = | 22 23 | = | 1 5 | *
|
||||
* | | | | *
|
||||
* | 33 | | 2 | *
|
||||
|
||||
|
||||
* 9 General Indicies, 0:8 *
|
||||
|
||||
* 9 General Indices, 0:8 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
@ -3438,7 +3438,7 @@ USERD_get_var_by_component
|
||||
* | | | | *
|
||||
* | 31 32 33 | | 7 8 2 | *
|
||||
|
||||
(OUT) var_array
|
||||
(OUT) var_array
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
(IMPORTANT: this array is 1-based for both Z_PER_NODE and Z_PER_ELEM!!!)
|
||||
@ -3460,7 +3460,7 @@ USERD_get_var_by_component
|
||||
if Z_PER_ELEM: = 1D array containing variable component
|
||||
value for each element of a particular
|
||||
part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(number_of_elements[which_part][which_type] + 1)
|
||||
long. See USERD_get_gold_part_build_info)
|
||||
@ -3522,7 +3522,7 @@ USERD_get_var_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -3731,17 +3731,17 @@ USERD_set_filenames
|
||||
|
||||
(IN) param_2 = The usage of this string depends on
|
||||
'two_fields' in USERD_get_name_of_reader.
|
||||
|
||||
|
||||
If two_fields is FALSE then it's empty.
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
into the result field of the data dialog.
|
||||
|
||||
|
||||
If two_fields is -1, then this contains
|
||||
optional text (filenames, modifiers, etc.)
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
@ -3790,7 +3790,7 @@ USERD_set_server_number
|
||||
something that you can take advantage of. If your data is already
|
||||
partitioned in some manner, such that you can access the proper
|
||||
portions using this information.
|
||||
|
||||
|
||||
For all non-SOS uses, this will simply be 1 of 1
|
||||
|
||||
|
||||
@ -3816,7 +3816,7 @@ USERD_set_time_set_and_step
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number (1 based).
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid timeset_number's
|
||||
would be 1 and 2.
|
||||
@ -3985,14 +3985,14 @@ USERD_rigidbody_values
|
||||
Arguments:
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
|
||||
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
|
||||
(OUT) values values[0] = IX (x location)
|
||||
values[1] = IY (y location)
|
||||
values[2] = IZ (z location)
|
||||
@ -4037,7 +4037,7 @@ USERD_set_right_side
|
||||
|
||||
|
||||
------------------------------------------------------------------
|
||||
ENHANCED GUI ROUTINES
|
||||
ENHANCED GUI ROUTINES
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_numbers
|
||||
@ -4061,7 +4061,7 @@ USERD_get_extra_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4081,63 +4081,63 @@ USERD_get_extra_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_extra_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_extra_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_defaults
|
||||
@ -4171,17 +4171,17 @@ USERD_get_extra_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4201,7 +4201,7 @@ USERD_get_extra_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4242,7 +4242,7 @@ USERD_set_extra_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4272,7 +4272,7 @@ USERD_get_var_extract_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4291,63 +4291,63 @@ USERD_get_var_extract_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_var_extract_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_var_extract_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_var_extract_gui_defaults
|
||||
@ -4381,17 +4381,17 @@ USERD_get_var_extract_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4411,7 +4411,7 @@ USERD_get_var_extract_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4452,7 +4452,7 @@ USERD_set_var_extract_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4464,19 +4464,19 @@ USERD_set_var_extract_gui_data
|
||||
/* ----------------------------------------------------------
|
||||
* New in EnSight 8 is the capability to remove (fail) elements
|
||||
* based on variable threshold values. Basically the variable
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* criteria are read in from this routine. Every element that
|
||||
* satisfies the failure criteria is removed and not used in
|
||||
* EnSight calculations.
|
||||
*
|
||||
* Example Failure criteria
|
||||
*
|
||||
* Example Failure criteria
|
||||
* Let fail_var_name = "fail_flag"
|
||||
* threshold_val1 = 0
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* logic_criteria2 not used
|
||||
* threshold_val2 not used
|
||||
* threshold_operator2 not used
|
||||
* For each value of "fail_flag" at each element,
|
||||
* For each value of "fail_flag" at each element,
|
||||
* if fail flag == threshold_val1 (0.0) then element fails
|
||||
* Return (Z_ERR) if this is not used.
|
||||
* Return (Z_OK) if failed element feature should be used
|
||||
@ -4505,7 +4505,7 @@ int USERD_get_uns_failed_params(
|
||||
Z_EQUAL_TO */
|
||||
int *threshold_operator2, /* Z_GREATER_THAN, Z_LESS_THAN,
|
||||
Z_EQUAL_TO */
|
||||
int *logic_criteria2
|
||||
int *logic_criteria2
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
|
||||
@ -14,16 +14,16 @@ You should refer to beginning of README_USERD_2.0 and/or README_1.0_to_2.0
|
||||
for a discussion of the differences between API 1.0 and API 2.*.
|
||||
|
||||
***>> API 2.07 additional capabilities (beyond API 2.06):
|
||||
Optional routine to allow userd defined readers to indicate their auto
|
||||
distribute preference when used with SOS. This is used to set the auto
|
||||
distribute flag default in the client. If the function does not exist,
|
||||
then it defaults to 'use auto distribute'. If the function does exist and
|
||||
indicates 'no auto distribute', then it's up to the UDR to decompose a
|
||||
Optional routine to allow userd defined readers to indicate their auto
|
||||
distribute preference when used with SOS. This is used to set the auto
|
||||
distribute flag default in the client. If the function does not exist,
|
||||
then it defaults to 'use auto distribute'. If the function does exist and
|
||||
indicates 'no auto distribute', then it's up to the UDR to decompose a
|
||||
distributed data set.
|
||||
USERD_prefer_auto_distribute
|
||||
Optional routine to allow userd defined readers to indicate their
|
||||
preference for the 'Set file...' button labels in the client's File->Open
|
||||
dialog. If the function does not exist or it returns a null string for
|
||||
Optional routine to allow userd defined readers to indicate their
|
||||
preference for the 'Set file...' button labels in the client's File->Open
|
||||
dialog. If the function does not exist or it returns a null string for
|
||||
an argument, then the default values are used.
|
||||
USERD_set_filename_button_labels
|
||||
|
||||
@ -62,10 +62,10 @@ reader itself. (Can actually be added to pre-2.05 readers)
|
||||
|
||||
|
||||
***>> API 2.04 additional capabilities (beyond API 2.03):
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
b.A second routine to return a matrix of flags indexed by part and
|
||||
element type indicating which parts and element types have failed
|
||||
elements at the current time step.
|
||||
@ -81,7 +81,7 @@ c.Finally a third routine to return an array of flags for a given
|
||||
|
||||
|
||||
****************************************************************************
|
||||
Note: Only the the Ensight Gold example reader, has been moved to
|
||||
Note: Only the the Ensight Gold example reader, has been moved to
|
||||
this 2.06 API level. And it is purely for an example - it does not
|
||||
actually provide a benefit.
|
||||
****************************************************************************
|
||||
@ -113,10 +113,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -164,7 +164,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -258,7 +258,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -303,7 +303,7 @@ USERD_get_block_ghost_flags block ghost cell flags
|
||||
These routines, which formerly were only for unstructured data, will now
|
||||
also be called for structured data if you specify that ids will be given
|
||||
in the USERD_get_node_label_status and USERD_get_element_label_status rotuines
|
||||
------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------
|
||||
USERD_get_part_node_ids part's node ids
|
||||
USERD_get_part_element_ids_by_type part's element ids
|
||||
|
||||
@ -382,7 +382,7 @@ USERD_bkup archive routine
|
||||
|
||||
USERD_exit_routine cleanup upon exit routine
|
||||
|
||||
USERD_get_uns_failed_params Gets thresholds/criteria for failure
|
||||
USERD_get_uns_failed_params Gets thresholds/criteria for failure
|
||||
|
||||
USERD_rigidbody_existence Returns whether rigid body transformation
|
||||
data exists for the model.
|
||||
@ -405,14 +405,14 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
USERD_get_name_of_reader
|
||||
USERD_get_reader_descrip (optional)
|
||||
USERD_get_extra_gui_numbers (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
|
||||
2. Getting the reader version (also distinguishes between API's)
|
||||
|
||||
@ -424,7 +424,7 @@ called is given.
|
||||
USERD_get_extra_gui_defaults routine)
|
||||
USERD_get_structured_reader_cinching
|
||||
USERD_set_server_number
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_filenames
|
||||
USERD_get_number_of_timesets
|
||||
USERD_get_geom_timeset_number
|
||||
@ -459,7 +459,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_gold_variable_info
|
||||
|
||||
|
||||
6. Part building (per part created)
|
||||
|
||||
both unstructured and structured:
|
||||
@ -501,12 +501,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
7. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_constant_val
|
||||
|
||||
|
||||
scalars/vectors/tensors:
|
||||
------------------------
|
||||
USERD_get_descrip_lines
|
||||
@ -550,7 +550,7 @@ called is given.
|
||||
USERD_get_border_availability (If border representation
|
||||
USERD_get_border_elements_by_type is selected)
|
||||
|
||||
|
||||
|
||||
9. Node or Element queries over time
|
||||
|
||||
USERD_get_var_value_at_specific
|
||||
@ -590,7 +590,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -837,24 +837,24 @@ USERD_get_block_ghost_flags
|
||||
|
||||
(OUT) ghost_flags = 1D array containing ghost flag value
|
||||
for each block cell.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(i-1)*(j-1)*(k-1) for the block long)
|
||||
|
||||
|
||||
possible values are: 0 = non-ghost cell (normal cell)
|
||||
>0 = ghost cell
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Only called for structured "block" parts that have some ghost cells
|
||||
as indicated by the USERD_get_ghost_in_block_flag. The model must
|
||||
of course also have been indicated to have some ghost cells in the
|
||||
USERD_get_ghost_in_model_flag routine.
|
||||
|
||||
|
||||
* It is sufficient to set the value to be 1 to flag as a ghost cell,
|
||||
but the value can be any non-zero value, so you could use it to
|
||||
indicate which block or which server (for Server-of-server use) the
|
||||
@ -922,7 +922,7 @@ USERD_get_border_elements_by_type
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Provides border element connectivity and parent information.
|
||||
Provides border element connectivity and parent information.
|
||||
|
||||
Specification:
|
||||
-------------
|
||||
@ -991,7 +991,7 @@ USERD_get_border_elements_by_type
|
||||
(Array will have been allocated
|
||||
num_of_elements of the type long)
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless USERD_get_border_availability returned Z_OK
|
||||
@ -1093,7 +1093,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -1200,7 +1200,7 @@ USERD_get_element_label_status
|
||||
on a per part, per type basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
* Starting at API 2.01:
|
||||
--------------------
|
||||
@ -1227,7 +1227,7 @@ USERD_get_geom_timeset_number -
|
||||
|
||||
Returns:
|
||||
-------
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
For example, if USERD_get_number_of timesets
|
||||
returns 2, the valid timeset numbers would be
|
||||
1 or 2.
|
||||
@ -1343,7 +1343,7 @@ USERD_get_gold_part_build_info
|
||||
long)
|
||||
|
||||
(OUT) number_of_nodes = Number of unstructured nodes in the part
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1626,23 +1626,23 @@ USERD_get_gold_variable_info
|
||||
Z_PER_ELEM
|
||||
|
||||
(OUT) var_complex = TRUE if complex, FALSE otherwise
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_ifilename = Variable imaginary filenames (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables by Z_BUFL long)
|
||||
|
||||
(OUT) var_freq = complex frequency (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_contran = TRUE if constant changes per time step
|
||||
FALSE if constant truly same at all time steps
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
@ -1716,7 +1716,7 @@ USERD_get_ghosts_in_block_flag
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Intended for structured parts only, value will be ignored for
|
||||
unstructured parts
|
||||
|
||||
@ -1740,7 +1740,7 @@ USERD_get_ghosts_in_model_flag
|
||||
|
||||
Arguments:
|
||||
---------
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
@ -1855,7 +1855,7 @@ USERD_get_maxsize_info
|
||||
---------
|
||||
(OUT) max_number_of_nodes = Maximum number of unstructured nodes
|
||||
in the part (over all time).
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1978,7 +1978,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1990,17 +1990,17 @@ USERD_get_name_of_reader
|
||||
(OUT) reader_name = the name of the your reader or data format.
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
and one field (Param) is optional
|
||||
Param field can contain any text
|
||||
for example a file name, modifiers,
|
||||
etc. that can be used to modify the
|
||||
reader's behavior.
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -2818,37 +2818,37 @@ USERD_get_number_of_timesets
|
||||
|
||||
* If you have a static model, both geometry and variables, you should
|
||||
return a value of zero.
|
||||
|
||||
|
||||
* If you have a transient model, then you should return one or more.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
Geometry Variables No. of timesets
|
||||
--------- ------------------------------ ---------------
|
||||
static static 0
|
||||
static transient, all using same timeset 1
|
||||
|
||||
|
||||
transient transient, all using same timeset as geom 1
|
||||
|
||||
|
||||
static transient, using 3 different timesets 3
|
||||
|
||||
|
||||
transient transient, using 3 different timesets and
|
||||
none of them the same as the
|
||||
geometry timeset 4
|
||||
etc.
|
||||
|
||||
|
||||
NOTE: ALL GEOMETRY MUST USE THE SAME TIMESET!!! You will have to provide
|
||||
the timeset number to use
|
||||
for geometry in:
|
||||
USERD_get_geom_timeset_number
|
||||
|
||||
|
||||
Variables can use the same timeset as the geometry, or can use
|
||||
other timesets. More than one variable can use the same timeset.
|
||||
|
||||
|
||||
example: changing geometry at 5 steps, 0.0, 1.0, 2.0, 3.0, 4.0
|
||||
variable 1 provided at these same five steps
|
||||
variable 2 provided at 3 steps, 0.5, 1.25, 3.33
|
||||
|
||||
|
||||
This routine should return a value of 2, because only
|
||||
two different timesets are needed. Timeset 1 would be for the
|
||||
geometry and variable 1 (they both use it). Timeset 2 would
|
||||
@ -3130,7 +3130,7 @@ USERD_get_part_elements_by_type
|
||||
conn_array[100][4] when called with Z_QUA04
|
||||
|
||||
conn_array[30][8] when called with Z_HEX08
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -3264,7 +3264,7 @@ USERD_get_sol_times
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Get the solution times associated with each time step for
|
||||
Get the solution times associated with each time step for
|
||||
desired timeset.
|
||||
|
||||
Specification:
|
||||
@ -3280,7 +3280,7 @@ USERD_get_sol_times
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3316,7 +3316,7 @@ USERD_get_timeset_description -
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3429,22 +3429,22 @@ USERD_get_var_by_component
|
||||
|
||||
(IN) imag_data = TRUE if imag component
|
||||
FALSE if real component
|
||||
|
||||
|
||||
(IN) component = The component: (0 if Z_SCALAR)
|
||||
(0 - 2 if Z_VECTOR)
|
||||
(0 - 5 if Z_TENSOR)
|
||||
(0 - 8 if Z_TENSOR9)
|
||||
|
||||
* 6 Symmetric Indicies, 0:5 *
|
||||
|
||||
* 6 Symmetric Indices, 0:5 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
* T = | 22 23 | = | 1 5 | *
|
||||
* | | | | *
|
||||
* | 33 | | 2 | *
|
||||
|
||||
|
||||
* 9 General Indicies, 0:8 *
|
||||
|
||||
* 9 General Indices, 0:8 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
@ -3452,7 +3452,7 @@ USERD_get_var_by_component
|
||||
* | | | | *
|
||||
* | 31 32 33 | | 7 8 2 | *
|
||||
|
||||
(OUT) var_array
|
||||
(OUT) var_array
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
(IMPORTANT: this array is 1-based for both Z_PER_NODE and Z_PER_ELEM!!!)
|
||||
@ -3474,7 +3474,7 @@ USERD_get_var_by_component
|
||||
if Z_PER_ELEM: = 1D array containing variable component
|
||||
value for each element of a particular
|
||||
part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(number_of_elements[which_part][which_type] + 1)
|
||||
long. See USERD_get_gold_part_build_info)
|
||||
@ -3536,7 +3536,7 @@ USERD_get_var_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -3745,17 +3745,17 @@ USERD_set_filenames
|
||||
|
||||
(IN) param_2 = The usage of this string depends on
|
||||
'two_fields' in USERD_get_name_of_reader.
|
||||
|
||||
|
||||
If two_fields is FALSE then it's empty.
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
into the result field of the data dialog.
|
||||
|
||||
|
||||
If two_fields is -1, then this contains
|
||||
optional text (filenames, modifiers, etc.)
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
@ -3804,7 +3804,7 @@ USERD_set_server_number
|
||||
something that you can take advantage of. If your data is already
|
||||
partitioned in some manner, such that you can access the proper
|
||||
portions using this information.
|
||||
|
||||
|
||||
For all non-SOS uses, this will simply be 1 of 1
|
||||
|
||||
|
||||
@ -3830,7 +3830,7 @@ USERD_set_time_set_and_step
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number (1 based).
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid timeset_number's
|
||||
would be 1 and 2.
|
||||
@ -3999,14 +3999,14 @@ USERD_rigidbody_values
|
||||
Arguments:
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
|
||||
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
|
||||
(OUT) values values[0] = IX (x location)
|
||||
values[1] = IY (y location)
|
||||
values[2] = IZ (z location)
|
||||
@ -4051,7 +4051,7 @@ USERD_set_right_side
|
||||
|
||||
|
||||
------------------------------------------------------------------
|
||||
ENHANCED GUI ROUTINES
|
||||
ENHANCED GUI ROUTINES
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_numbers
|
||||
@ -4075,7 +4075,7 @@ USERD_get_extra_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4095,63 +4095,63 @@ USERD_get_extra_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_extra_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_extra_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_defaults
|
||||
@ -4185,17 +4185,17 @@ USERD_get_extra_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4215,7 +4215,7 @@ USERD_get_extra_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4256,7 +4256,7 @@ USERD_set_extra_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4286,7 +4286,7 @@ USERD_get_var_extract_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4305,63 +4305,63 @@ USERD_get_var_extract_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_var_extract_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_var_extract_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_var_extract_gui_defaults
|
||||
@ -4395,17 +4395,17 @@ USERD_get_var_extract_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4425,7 +4425,7 @@ USERD_get_var_extract_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4466,7 +4466,7 @@ USERD_set_var_extract_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4478,19 +4478,19 @@ USERD_set_var_extract_gui_data
|
||||
/* ----------------------------------------------------------
|
||||
* New in EnSight 8 is the capability to remove (fail) elements
|
||||
* based on variable threshold values. Basically the variable
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* criteria are read in from this routine. Every element that
|
||||
* satisfies the failure criteria is removed and not used in
|
||||
* EnSight calculations.
|
||||
*
|
||||
* Example Failure criteria
|
||||
*
|
||||
* Example Failure criteria
|
||||
* Let fail_var_name = "fail_flag"
|
||||
* threshold_val1 = 0
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* logic_criteria2 not used
|
||||
* threshold_val2 not used
|
||||
* threshold_operator2 not used
|
||||
* For each value of "fail_flag" at each element,
|
||||
* For each value of "fail_flag" at each element,
|
||||
* if fail flag == threshold_val1 (0.0) then element fails
|
||||
* Return (Z_ERR) if this is not used.
|
||||
* Return (Z_OK) if failed element feature should be used
|
||||
@ -4519,7 +4519,7 @@ int USERD_get_uns_failed_params(
|
||||
Z_EQUAL_TO */
|
||||
int *threshold_operator2, /* Z_GREATER_THAN, Z_LESS_THAN,
|
||||
Z_EQUAL_TO */
|
||||
int *logic_criteria2
|
||||
int *logic_criteria2
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
|
||||
@ -18,16 +18,16 @@ Namely, rotational (yaw,pitch,roll) values were added to the values
|
||||
argument of USERD_rigidbody_values routine.
|
||||
|
||||
***>> API 2.07 additional capabilities (beyond API 2.06):
|
||||
Optional routine to allow userd defined readers to indicate their auto
|
||||
distribute preference when used with SOS. This is used to set the auto
|
||||
distribute flag default in the client. If the function does not exist,
|
||||
then it defaults to 'use auto distribute'. If the function does exist and
|
||||
indicates 'no auto distribute', then it's up to the UDR to decompose a
|
||||
Optional routine to allow userd defined readers to indicate their auto
|
||||
distribute preference when used with SOS. This is used to set the auto
|
||||
distribute flag default in the client. If the function does not exist,
|
||||
then it defaults to 'use auto distribute'. If the function does exist and
|
||||
indicates 'no auto distribute', then it's up to the UDR to decompose a
|
||||
distributed data set.
|
||||
USERD_prefer_auto_distribute
|
||||
Optional routine to allow userd defined readers to indicate their
|
||||
preference for the 'Set file...' button labels in the client's File->Open
|
||||
dialog. If the function does not exist or it returns a null string for
|
||||
Optional routine to allow userd defined readers to indicate their
|
||||
preference for the 'Set file...' button labels in the client's File->Open
|
||||
dialog. If the function does not exist or it returns a null string for
|
||||
an argument, then the default values are used.
|
||||
USERD_set_filename_button_labels
|
||||
|
||||
@ -66,10 +66,10 @@ reader itself. (Can actually be added to pre-2.05 readers)
|
||||
|
||||
|
||||
***>> API 2.04 additional capabilities (beyond API 2.03):
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
Routines to handle failed elements. Basically
|
||||
a.One routine to return a flag indicating the existence of
|
||||
failed elements in at least one part in at least one
|
||||
timestep in the model.
|
||||
b.A second routine to return a matrix of flags indexed by part and
|
||||
element type indicating which parts and element types have failed
|
||||
elements at the current time step.
|
||||
@ -85,7 +85,7 @@ c.Finally a third routine to return an array of flags for a given
|
||||
|
||||
|
||||
****************************************************************************
|
||||
Note: Only the the Ensight Gold example reader, has been moved to
|
||||
Note: Only the the Ensight Gold example reader, has been moved to
|
||||
this 2.06 API level. And it is purely for an example - it does not
|
||||
actually provide a benefit.
|
||||
****************************************************************************
|
||||
@ -117,10 +117,10 @@ The process for producing a user defined reader is:
|
||||
You may find it useful to place your library source in this area as
|
||||
well, but are not limited to this location.
|
||||
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
* ===> The descriptions of each library routine and the order that the
|
||||
routines are called, which is provided in this file, along with
|
||||
the example libraries, should make it possible for you to produce
|
||||
code for your own data reader.
|
||||
code for your own data reader.
|
||||
|
||||
|
||||
2. Produce the dynamic shared library.
|
||||
@ -168,7 +168,7 @@ The process for producing a user defined reader is:
|
||||
|
||||
If you choose to use a different build environment for your reader,
|
||||
you should take care to use compatible compilation flags to ensure
|
||||
compatibilty with the EnSight executables, most notably on the SGI
|
||||
compatibility with the EnSight executables, most notably on the SGI
|
||||
and HP-UX 11.0 platforms, which should use the following flags:
|
||||
|
||||
sgi_6.2_o32: -mips2
|
||||
@ -262,7 +262,7 @@ The process for producing a user defined reader is:
|
||||
location, and users can set the ENSIGHT7_READER variable to access them:
|
||||
|
||||
setenv ENSIGHT7_READER /usr/local/lib/e7readers
|
||||
|
||||
|
||||
A user working on a new reader may compile the reader and place it in
|
||||
a directory specified by the library path:
|
||||
|
||||
@ -307,7 +307,7 @@ USERD_get_block_ghost_flags block ghost cell flags
|
||||
These routines, which formerly were only for unstructured data, will now
|
||||
also be called for structured data if you specify that ids will be given
|
||||
in the USERD_get_node_label_status and USERD_get_element_label_status rotuines
|
||||
------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------
|
||||
USERD_get_part_node_ids part's node ids
|
||||
USERD_get_part_element_ids_by_type part's element ids
|
||||
|
||||
@ -386,7 +386,7 @@ USERD_bkup archive routine
|
||||
|
||||
USERD_exit_routine cleanup upon exit routine
|
||||
|
||||
USERD_get_uns_failed_params Gets thresholds/criteria for failure
|
||||
USERD_get_uns_failed_params Gets thresholds/criteria for failure
|
||||
|
||||
USERD_rigidbody_existence Returns whether rigid body transformation
|
||||
data exists for the model.
|
||||
@ -409,14 +409,14 @@ Order Routines are called
|
||||
|
||||
The various main operations are given basically in the order they will
|
||||
be performed. Within each operation, the order the routines will be
|
||||
called is given.
|
||||
called is given.
|
||||
|
||||
1. Setting name in the gui, and specifying one or two input fields
|
||||
|
||||
USERD_get_name_of_reader
|
||||
USERD_get_reader_descrip (optional)
|
||||
USERD_get_extra_gui_numbers (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
USERD_get_extra_gui_defaults (optional)
|
||||
|
||||
2. Getting the reader version (also distinguishes between API's)
|
||||
|
||||
@ -428,7 +428,7 @@ called is given.
|
||||
USERD_get_extra_gui_defaults routine)
|
||||
USERD_get_structured_reader_cinching
|
||||
USERD_set_server_number
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_extra_gui_data (optional)
|
||||
USERD_set_filenames
|
||||
USERD_get_number_of_timesets
|
||||
USERD_get_geom_timeset_number
|
||||
@ -463,7 +463,7 @@ called is given.
|
||||
|
||||
USERD_get_number_of_variables
|
||||
USERD_get_gold_variable_info
|
||||
|
||||
|
||||
6. Part building (per part created)
|
||||
|
||||
both unstructured and structured:
|
||||
@ -505,12 +505,12 @@ called is given.
|
||||
dialog is closed)
|
||||
|
||||
7. Loading Variables
|
||||
|
||||
|
||||
constants:
|
||||
---------
|
||||
USERD_set_time_set_and_step
|
||||
USERD_get_constant_val
|
||||
|
||||
|
||||
scalars/vectors/tensors:
|
||||
------------------------
|
||||
USERD_get_descrip_lines
|
||||
@ -554,7 +554,7 @@ called is given.
|
||||
USERD_get_border_availability (If border representation
|
||||
USERD_get_border_elements_by_type is selected)
|
||||
|
||||
|
||||
|
||||
9. Node or Element queries over time
|
||||
|
||||
USERD_get_var_value_at_specific
|
||||
@ -594,7 +594,7 @@ Detailed Specifications
|
||||
Include files:
|
||||
--------------
|
||||
The following header file is required in any file containing these library
|
||||
routines.
|
||||
routines.
|
||||
|
||||
#include "global_extern.h"
|
||||
|
||||
@ -841,24 +841,24 @@ USERD_get_block_ghost_flags
|
||||
|
||||
(OUT) ghost_flags = 1D array containing ghost flag value
|
||||
for each block cell.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(i-1)*(j-1)*(k-1) for the block long)
|
||||
|
||||
|
||||
possible values are: 0 = non-ghost cell (normal cell)
|
||||
>0 = ghost cell
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Only called for structured "block" parts that have some ghost cells
|
||||
as indicated by the USERD_get_ghost_in_block_flag. The model must
|
||||
of course also have been indicated to have some ghost cells in the
|
||||
USERD_get_ghost_in_model_flag routine.
|
||||
|
||||
|
||||
* It is sufficient to set the value to be 1 to flag as a ghost cell,
|
||||
but the value can be any non-zero value, so you could use it to
|
||||
indicate which block or which server (for Server-of-server use) the
|
||||
@ -926,7 +926,7 @@ USERD_get_border_elements_by_type
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Provides border element connectivity and parent information.
|
||||
Provides border element connectivity and parent information.
|
||||
|
||||
Specification:
|
||||
-------------
|
||||
@ -995,7 +995,7 @@ USERD_get_border_elements_by_type
|
||||
(Array will have been allocated
|
||||
num_of_elements of the type long)
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless USERD_get_border_availability returned Z_OK
|
||||
@ -1097,7 +1097,7 @@ USERD_get_dataset_query_file_info
|
||||
(Typically obtained with a call to the
|
||||
"stat" system routine) (Is a long)
|
||||
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
qfiles[].timemod = The time the file was last modified
|
||||
(Z_MAXTIMLEN is the dimensioned length
|
||||
of this string)
|
||||
(Typically obtained with a call to the
|
||||
@ -1204,7 +1204,7 @@ USERD_get_element_label_status
|
||||
on a per part, per type basis, if TRUE status is returned here.
|
||||
|
||||
For structured parts, EnSight will assign ids if you return a
|
||||
status of TRUE here. You cannot assign them youself!!
|
||||
status of TRUE here. You cannot assign them yourself!!
|
||||
|
||||
* Starting at API 2.01:
|
||||
--------------------
|
||||
@ -1231,7 +1231,7 @@ USERD_get_geom_timeset_number -
|
||||
|
||||
Returns:
|
||||
-------
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
Geom_timeset_number = The timeset number that will be used for geometry.
|
||||
For example, if USERD_get_number_of timesets
|
||||
returns 2, the valid timeset numbers would be
|
||||
1 or 2.
|
||||
@ -1347,7 +1347,7 @@ USERD_get_gold_part_build_info
|
||||
long)
|
||||
|
||||
(OUT) number_of_nodes = Number of unstructured nodes in the part
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1630,23 +1630,23 @@ USERD_get_gold_variable_info
|
||||
Z_PER_ELEM
|
||||
|
||||
(OUT) var_complex = TRUE if complex, FALSE otherwise
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_ifilename = Variable imaginary filenames (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables by Z_BUFL long)
|
||||
|
||||
(OUT) var_freq = complex frequency (if complex)
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
|
||||
(OUT) var_contran = TRUE if constant changes per time step
|
||||
FALSE if constant truly same at all time steps
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Num_variables long)
|
||||
|
||||
@ -1720,7 +1720,7 @@ USERD_get_ghosts_in_block_flag
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
* This will be based on Current_time_step
|
||||
|
||||
|
||||
* Intended for structured parts only, value will be ignored for
|
||||
unstructured parts
|
||||
|
||||
@ -1744,7 +1744,7 @@ USERD_get_ghosts_in_model_flag
|
||||
|
||||
Arguments:
|
||||
---------
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* This routine is new in the 2.01 API
|
||||
@ -1859,7 +1859,7 @@ USERD_get_maxsize_info
|
||||
---------
|
||||
(OUT) max_number_of_nodes = Maximum number of unstructured nodes
|
||||
in the part (over all time).
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
Numparts_available long)
|
||||
|
||||
@ -1982,7 +1982,7 @@ USERD_get_name_of_reader
|
||||
Specification:
|
||||
-------------
|
||||
int USERD_get_name_of_reader(char reader_name[Z_MAX_USERD_NAME],
|
||||
int *two_fields)
|
||||
int *two_fields)
|
||||
|
||||
Returns:
|
||||
-------
|
||||
@ -1994,17 +1994,17 @@ USERD_get_name_of_reader
|
||||
(OUT) reader_name = the name of the your reader or data format.
|
||||
(max length is Z_MAX_USERD_NAME, which is 20)
|
||||
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
(OUT) two_fields = FALSE if only one data field is
|
||||
required.
|
||||
TRUE if two data fields required
|
||||
|
||||
-1 if one field (Geom) required
|
||||
and one field (Param) is optional
|
||||
Param field can contain any text
|
||||
for example a file name, modifiers,
|
||||
etc. that can be used to modify the
|
||||
reader's behavior.
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
@ -2822,37 +2822,37 @@ USERD_get_number_of_timesets
|
||||
|
||||
* If you have a static model, both geometry and variables, you should
|
||||
return a value of zero.
|
||||
|
||||
|
||||
* If you have a transient model, then you should return one or more.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
Geometry Variables No. of timesets
|
||||
--------- ------------------------------ ---------------
|
||||
static static 0
|
||||
static transient, all using same timeset 1
|
||||
|
||||
|
||||
transient transient, all using same timeset as geom 1
|
||||
|
||||
|
||||
static transient, using 3 different timesets 3
|
||||
|
||||
|
||||
transient transient, using 3 different timesets and
|
||||
none of them the same as the
|
||||
geometry timeset 4
|
||||
etc.
|
||||
|
||||
|
||||
NOTE: ALL GEOMETRY MUST USE THE SAME TIMESET!!! You will have to provide
|
||||
the timeset number to use
|
||||
for geometry in:
|
||||
USERD_get_geom_timeset_number
|
||||
|
||||
|
||||
Variables can use the same timeset as the geometry, or can use
|
||||
other timesets. More than one variable can use the same timeset.
|
||||
|
||||
|
||||
example: changing geometry at 5 steps, 0.0, 1.0, 2.0, 3.0, 4.0
|
||||
variable 1 provided at these same five steps
|
||||
variable 2 provided at 3 steps, 0.5, 1.25, 3.33
|
||||
|
||||
|
||||
This routine should return a value of 2, because only
|
||||
two different timesets are needed. Timeset 1 would be for the
|
||||
geometry and variable 1 (they both use it). Timeset 2 would
|
||||
@ -3134,7 +3134,7 @@ USERD_get_part_elements_by_type
|
||||
conn_array[100][4] when called with Z_QUA04
|
||||
|
||||
conn_array[30][8] when called with Z_HEX08
|
||||
|
||||
|
||||
Notes:
|
||||
-----
|
||||
* Not called unless Num_unstructured_parts is > 0
|
||||
@ -3268,7 +3268,7 @@ USERD_get_sol_times
|
||||
|
||||
Description:
|
||||
-----------
|
||||
Get the solution times associated with each time step for
|
||||
Get the solution times associated with each time step for
|
||||
desired timeset.
|
||||
|
||||
Specification:
|
||||
@ -3284,7 +3284,7 @@ USERD_get_sol_times
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3320,7 +3320,7 @@ USERD_get_timeset_description -
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid
|
||||
timeset_number's would be 1 and 2
|
||||
@ -3433,22 +3433,22 @@ USERD_get_var_by_component
|
||||
|
||||
(IN) imag_data = TRUE if imag component
|
||||
FALSE if real component
|
||||
|
||||
|
||||
(IN) component = The component: (0 if Z_SCALAR)
|
||||
(0 - 2 if Z_VECTOR)
|
||||
(0 - 5 if Z_TENSOR)
|
||||
(0 - 8 if Z_TENSOR9)
|
||||
|
||||
* 6 Symmetric Indicies, 0:5 *
|
||||
|
||||
* 6 Symmetric Indices, 0:5 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
* T = | 22 23 | = | 1 5 | *
|
||||
* | | | | *
|
||||
* | 33 | | 2 | *
|
||||
|
||||
|
||||
* 9 General Indicies, 0:8 *
|
||||
|
||||
* 9 General Indices, 0:8 *
|
||||
* ---------------------------- *
|
||||
* | 11 12 13 | | 0 3 4 | *
|
||||
* | | | | *
|
||||
@ -3456,7 +3456,7 @@ USERD_get_var_by_component
|
||||
* | | | | *
|
||||
* | 31 32 33 | | 7 8 2 | *
|
||||
|
||||
(OUT) var_array
|
||||
(OUT) var_array
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
(IMPORTANT: this array is 1-based for both Z_PER_NODE and Z_PER_ELEM!!!)
|
||||
@ -3478,7 +3478,7 @@ USERD_get_var_by_component
|
||||
if Z_PER_ELEM: = 1D array containing variable component
|
||||
value for each element of a particular
|
||||
part and type.
|
||||
|
||||
|
||||
(Array will have been allocated
|
||||
(number_of_elements[which_part][which_type] + 1)
|
||||
long. See USERD_get_gold_part_build_info)
|
||||
@ -3540,7 +3540,7 @@ USERD_get_var_value_at_specific
|
||||
|
||||
If Z_PER_NODE:
|
||||
= The node number. This is not the id, but is
|
||||
the index of the global node
|
||||
the index of the global node
|
||||
list (1 based), or the block's
|
||||
node list (1 based).
|
||||
|
||||
@ -3749,17 +3749,17 @@ USERD_set_filenames
|
||||
|
||||
(IN) param_2 = The usage of this string depends on
|
||||
'two_fields' in USERD_get_name_of_reader.
|
||||
|
||||
|
||||
If two_fields is FALSE then it's empty.
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
|
||||
If two_fields is TRUE, this is the
|
||||
manditory results file entered
|
||||
into the result field of the data dialog.
|
||||
|
||||
|
||||
If two_fields is -1, then this contains
|
||||
optional text (filenames, modifiers, etc.)
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
that can be parsed and used to modify
|
||||
reader
|
||||
|
||||
(IN) the_path = the path info from the data dialog.
|
||||
Note: filename_1 and filename_2 have already
|
||||
@ -3808,7 +3808,7 @@ USERD_set_server_number
|
||||
something that you can take advantage of. If your data is already
|
||||
partitioned in some manner, such that you can access the proper
|
||||
portions using this information.
|
||||
|
||||
|
||||
For all non-SOS uses, this will simply be 1 of 1
|
||||
|
||||
|
||||
@ -3834,7 +3834,7 @@ USERD_set_time_set_and_step
|
||||
Arguments:
|
||||
---------
|
||||
(IN) timeset_number = the timeset number (1 based).
|
||||
|
||||
|
||||
For example: If USERD_get_number_of_timesets
|
||||
returns 2, the valid timeset_number's
|
||||
would be 1 and 2.
|
||||
@ -4003,14 +4003,14 @@ USERD_rigidbody_values
|
||||
Arguments:
|
||||
---------
|
||||
(IN) part_number = The part number
|
||||
|
||||
|
||||
(1-based index of part table, namely:
|
||||
|
||||
|
||||
1 ... Numparts_available.
|
||||
|
||||
|
||||
It is NOT the part_id that
|
||||
is loaded in USERD_get_gold_part_build_info)
|
||||
|
||||
|
||||
(OUT) values values[0] = IX (x location)
|
||||
values[1] = IY (y location)
|
||||
values[2] = IZ (z location)
|
||||
@ -4032,7 +4032,7 @@ USERD_rigidbody_values
|
||||
operation. This is useful to get parts from one
|
||||
standard layout to a different standard layout.
|
||||
(example, flex body parts computed in an axis system
|
||||
different than that of rigid body parts manipulation)
|
||||
different than that of rigid body parts manipulation)
|
||||
If not needed or desired, set these to 0.0
|
||||
|
||||
values[10] = rot_order (order the roations are applied
|
||||
@ -4087,7 +4087,7 @@ USERD_set_right_side
|
||||
|
||||
|
||||
------------------------------------------------------------------
|
||||
ENHANCED GUI ROUTINES
|
||||
ENHANCED GUI ROUTINES
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_numbers
|
||||
@ -4111,7 +4111,7 @@ USERD_get_extra_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4131,63 +4131,63 @@ USERD_get_extra_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_extra_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_extra_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_extra_gui_defaults
|
||||
@ -4221,17 +4221,17 @@ USERD_get_extra_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4251,7 +4251,7 @@ USERD_get_extra_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4292,7 +4292,7 @@ USERD_set_extra_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4322,7 +4322,7 @@ USERD_get_var_extract_gui_numbers
|
||||
Arguments:
|
||||
---------
|
||||
(OUT) num_Toggles = number of toggles that will be provided
|
||||
|
||||
|
||||
num_pulldowns = number of pulldowns that will be provided
|
||||
|
||||
num_fields = number of fields that will be provided
|
||||
@ -4341,63 +4341,63 @@ USERD_get_var_extract_gui_numbers
|
||||
simply delete these routines, or change their
|
||||
names to something such as
|
||||
USERD_DISABLED_get_var_extract_gui_defaults
|
||||
|
||||
|
||||
The presence of these routines
|
||||
will ensure that EnSight will call them and
|
||||
use their data to modify the extraction parameters set
|
||||
with some or all of the following:
|
||||
toggles, pulldown menu and fields.
|
||||
|
||||
|
||||
The user can then interact with the enhanced
|
||||
GUI and then send their choices to
|
||||
USERD_set_extra_gui_data
|
||||
|
||||
|
||||
Therefore if USERD_get_var_extract_gui_numbers
|
||||
exists then the other two must exist.
|
||||
|
||||
|
||||
If none exist, then the GUI will be unchanged.
|
||||
|
||||
|
||||
Toggle data will return an integer
|
||||
TRUE if checked
|
||||
FALSE if unchecked
|
||||
|
||||
|
||||
Pulldown menu will return an integer representing
|
||||
the menu item selected
|
||||
|
||||
|
||||
Field will return a string Z_LEN_GUI_FIELD_STR long.
|
||||
|
||||
|
||||
If all the enhanced GUI features are enabled it
|
||||
might look something like this
|
||||
|
||||
===================================================
|
||||
[] Title 1 [X] Title 3
|
||||
[X]Title 2 [X] Title 4
|
||||
|
||||
|
||||
Pulldown Menu ->
|
||||
Menu Choice 1
|
||||
Menu Choice 2
|
||||
Menu Choice 3
|
||||
|
||||
|
||||
Data Field Title 1 ____________________________
|
||||
|
||||
|
||||
Data Field Title 2 ____________________________
|
||||
=====================================================
|
||||
|
||||
This routine defines the numbers of toggles, pulldowns & fields
|
||||
|
||||
|
||||
The following are defined in the global_extern.h
|
||||
Z_MAX_NUM_GUI_PULL_ITEMS max num GUI pulldowns
|
||||
Z_LEN_GUI_PULL_STR max length of GUI pulldown string
|
||||
Z_LEN_GUI_FIELD_STR max length of field string
|
||||
Z_LEN_GUI_TITLE_STR max length of title string
|
||||
|
||||
|
||||
The library is loaded, this routine is
|
||||
called, then the library is unloaded.
|
||||
|
||||
|
||||
Do not define globals in this routine
|
||||
as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
USERD_get_var_extract_gui_defaults
|
||||
@ -4431,17 +4431,17 @@ USERD_get_var_extract_gui_defaults
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
toggle_default_status = Setting for each toggle (TRUE or FALSE)
|
||||
array dimension is [num_toggles] long
|
||||
array dimension is [num_toggles] long
|
||||
|
||||
pulldown_Title = title for each pulldown
|
||||
array dimension is [num_pulldowns] by
|
||||
[Z_LEN_GUI_TITLE_STR] long
|
||||
|
||||
pulldown_number_in_list = number of items in each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_default_selection = pulldown item selection for each pulldown
|
||||
array dimension is [num_pulldowns] long
|
||||
array dimension is [num_pulldowns] long
|
||||
|
||||
pulldown_item_strings = pulldown item strings
|
||||
array is [num_pulldowns] by
|
||||
@ -4461,7 +4461,7 @@ USERD_get_var_extract_gui_defaults
|
||||
Notes:
|
||||
-----
|
||||
* The library is loaded, this routine is called, then the library is unloaded.
|
||||
|
||||
|
||||
* Do not define globals in this routine as when the library is unloaded, you'll
|
||||
lose them.
|
||||
|
||||
@ -4502,7 +4502,7 @@ USERD_set_var_extract_gui_data
|
||||
* This routine is called when the library is permanently
|
||||
loaded to the EnSight session, so define your globals
|
||||
in this and later routines.
|
||||
|
||||
|
||||
* It's up to you to change your reader behavior according to
|
||||
user entries!
|
||||
|
||||
@ -4514,19 +4514,19 @@ USERD_set_var_extract_gui_data
|
||||
/* ----------------------------------------------------------
|
||||
* New in EnSight 8 is the capability to remove (fail) elements
|
||||
* based on variable threshold values. Basically the variable
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* name, a couple of thresholds, a couple of values and a logic
|
||||
* criteria are read in from this routine. Every element that
|
||||
* satisfies the failure criteria is removed and not used in
|
||||
* EnSight calculations.
|
||||
*
|
||||
* Example Failure criteria
|
||||
*
|
||||
* Example Failure criteria
|
||||
* Let fail_var_name = "fail_flag"
|
||||
* threshold_val1 = 0
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* threshold_operator1 = Z_EQUAL_TO
|
||||
* logic_criteria2 not used
|
||||
* threshold_val2 not used
|
||||
* threshold_operator2 not used
|
||||
* For each value of "fail_flag" at each element,
|
||||
* For each value of "fail_flag" at each element,
|
||||
* if fail flag == threshold_val1 (0.0) then element fails
|
||||
* Return (Z_ERR) if this is not used.
|
||||
* Return (Z_OK) if failed element feature should be used
|
||||
@ -4555,7 +4555,7 @@ int USERD_get_uns_failed_params(
|
||||
Z_EQUAL_TO */
|
||||
int *threshold_operator2, /* Z_GREATER_THAN, Z_LESS_THAN,
|
||||
Z_EQUAL_TO */
|
||||
int *logic_criteria2
|
||||
int *logic_criteria2
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
|
||||
@ -799,7 +799,7 @@ USERD_get_part_element_ids_by_type_in_buffers(int part_number,
|
||||
* (0 - 5 if Z_TENSOR)
|
||||
* (0 - 8 if Z_TENSOR9)
|
||||
*
|
||||
* * 6 Symmetric Indicies, 0:5 *
|
||||
* * 6 Symmetric Indices, 0:5 *
|
||||
* * ---------------------------- *
|
||||
* * | 11 12 13 | | 0 3 4 | *
|
||||
* * | | | | *
|
||||
@ -807,7 +807,7 @@ USERD_get_part_element_ids_by_type_in_buffers(int part_number,
|
||||
* * | | | | *
|
||||
* * | 33 | | 2 | *
|
||||
*
|
||||
* * 9 General Indicies, 0:8 *
|
||||
* * 9 General Indices, 0:8 *
|
||||
* * ---------------------------- *
|
||||
* * | 11 12 13 | | 0 1 2 | *
|
||||
* * | | | | *
|
||||
|
||||
@ -93,7 +93,7 @@ int USERD_set_filenames
|
||||
fieldNames = objects.names();
|
||||
|
||||
// because of the spray being a 'field' ...
|
||||
// get the availabe number of variables and
|
||||
// get the available number of variables and
|
||||
// check for type (scalar/vector/tensor)
|
||||
|
||||
label nVar = 0;
|
||||
|
||||
@ -365,7 +365,7 @@ enum z_matset_via_file_type
|
||||
#define DATA_TARGET_MASK 0x0000000f
|
||||
|
||||
/* ---------------------------------------
|
||||
* Failed elemenet enums
|
||||
* Failed element enums
|
||||
* --------------------------------------- */
|
||||
|
||||
enum z_element_failure_criteria
|
||||
|
||||
Reference in New Issue
Block a user