3.3. Routine History

The following table is an alphabetical listing of the routines in the API. It indicates at which version the routines appeared (or were modified). Additionally it indicates which routines are optional (OPT).

Routine Name

O

P

T

2

.

0

0

2

.

0

1

2

.

0

3

2

.

0

4

2

.

0

5

2

.

0

6

2

.

0

7

2

.

0

8

2

.

0

9

2

.

1

0

USERD_bkup

X

X

X

X

X

X

X

X

X

X

USERD_exit_routine

X

X

X

X

X

X

X

X

X

X

USERD_get_block_coords_by_component

X

X

X

X

X

X

X

X

X

X

USERD_get_block_iblanking

X

X

X

X

X

X

X

X

X

X

USERD_get_block_ghost_flags

X

X

X

X

X

X

X

X

X

USERD_get_border_availability

X

X

X

X

X

X

X

X

X

X

USERD_get_border_elements_by_type

X

X

X

X

X

X

X

X

X

X

USERD_get_changing_geometry_status

X

X

X

X

X

X

X

X

X

X

USERD_get_constant_val

X

X

X

X

X

X

X

X

X

X

USERD_get_dataset_query_file_info

X

X

X

X

X

X

X

X

X

X

USERD_get_descrip_lines

X

X

X

X

X

X

X

X

X

X

USERD_get_element_label_status

X

1

X

X

X

X

X

X

X

X

USERD_get_extra_gui_defaults

X

X

X

X

X

X

X

X

X

X

X

USERD_get_extra_gui_numbers

X

X

X

X

X

X

X

X

X

X

X

USERD_get_geom_timeset_number

X

X

X

X

X

X

X

X

X

X

USERD_get_gold_part_build_info

X

2

3

X

X

X

X

X

X

X

USERD_get_gold_variable_info

X

X

X

X

X

X

X

X

X

X

USERD_get_ghosts_in_block_flag

X

X

X

X

X

X

X

X

X

USERD_get_ghosts_in_model_flag

X

X

X

X

X

X

X

X

X

USERD_get_matf_escalars_desc

X

X

USERD_get_matf_set_info

X

X

X

X

X

X

X

X

USERD_get_matf_set_type

X

X

USERD_get_matf_var_info

X

X

X

X

X

X

X

X

USERD_get_matsp_info

X

X

X

X

X

X

USERD_get_maxsize_info

X

2

X

X

X

X

X

X

X

X

USERD_get_model_extents

X

X

X

X

X

X

X

X

X

X

USERD_get_name_of_reader

X

X

X

X

X

X

X

X

X

X

USERD_get_nfaced_conn

X

X

X

X

X

X

X

X

USERD_get_nfaced_conn_in_buffers

X

X

X

X

USERD_get_nfaced_nodes_per_face

X

X

X

X

X

X

X

X

USERD_get_node_label_status

X

1

X

X

X

X

X

X

X

X

USERD_get_nsided_conn

X

X

X

X

X

X

X

X

USERD_get_nsided_conn_in_buffers

X

X

X

X

USERD_get_num_of_time_steps

X

X

X

X

X

X

X

X

X

X

USERD_get_num_xy_queries

X

X

X

X

USERD_get_number_of_files_in_dataset

X

X

X

X

X

X

X

X

X

X

USERD_get_number_of_material_sets

X

X

X

X

X

X

X

X

USERD_get_number_of_materials

X

X

X

X

X

X

X

X

USERD_get_number_of_model_parts

X

X

X

X

X

X

X

X

X

X

USERD_get_number_of_species

X

X

X

X

X

X

USERD_get_number_of_timesets

X

X

X

X

X

X

X

X

X

X

USERD_get_number_of_variables

X

X

X

X

X

X

X

X

X

X

USERD_get_part_coords

X

X

X

X

X

X

X

X

X

X

USERD_get_part_coords_in_buffers

X

X

X

X

USERD_get_part_element_ids_by_type

X

1

2

X

X

X

X

X

X

X

USERD_get_part_element_ids_by_type_in_buffers

X

X

X

X

USERD_get_part_elements_by_type

X

1

2

X

X

X

X

X

X

X

USERD_get_part_elements_by_type_in_buffers

X

X

X

X

USERD_get_part_node_ids

X

1

2

X

X

X

X

X

X

X

USERD_get_part_node_ids_in_buffers

X

X

X

X

USERD_get_reader_descrip

X

X

X

X

X

X

X

X

X

X

X

USERD_get_reader_release

X

X

X

X

X

X

X

X

X

X

X

USERD_get_reader_version

X

X

X

X

X

X

X

X

X

X

USERD_get_sol_times

X

X

X

X

X

X

X

X

X

X

USERD_get_structured_reader_cinching

X

X

X

X

X

USERD_get_timeset_description

X

X

X

X

X

X

X

X

X

X

USERD_get_uns_failed_params

X

X

X

X

X

X

X

USERD_get_var_by_component

X

2

X

X

X

X

X

X

X

X

USERD_get_var_by_component_in_buffers

X

X

X

X

USERD_get_var_extract_gui_defaults

X

X

X

X

X

X

X

USERD_get_var_extract_gui_numbers

X

X

X

X

X

X

X

USERD_get_var_value_at_specific

X

X

X

X

X

X

X

X

X

X

USERD_get_var_value_at_xyz_specific

X

X

X

USERD_get_vglyph_timeline_info

X

X

X

USERD_get_vglyph_timeline_times

X

X

X

USERD_get_vglyph_vector_info

X

X

X

USERD_get_vglyph_vector_values

X

X

X

USERD_get_vglyph_vector_xyzloc

X

X

X

USERD_get_xy_query_data

X

X

X

X

USERD_get_xy_query_info

X

X

X

X

USERD_load_matf_data

X

X

X

X

X

X

X

X

USERD_prefer_auto_distribute

X

X

X

X

X

USERD_rigidbody_existence

X

X

X

X

X

X

USERD_rigidbody_values

X

X

X

4

X

X

USERD_set_block_range_and_stride

X

X

X

X

X

USERD_set_extra_gui_data

X

X

X

X

X

X

X

X

X

X

X

USERD_set_filename_button_labels

X

X

X

X

X

USERD_set_filenames

X

X

X

X

X

X

X

X

X

X

USERD_set_right_side

X

X

X

X

X

X

X

USERD_set_server_number

X

X

X

X

X

X

X

X

X

X

USERD_set_time_set_and_step

X

X

X

X

X

X

X

X

X

X

USERD_set_var_extract_gui_data

X

X

X

X

X

X

X

USERD_size_matf_data

X

X

X

X

X

X

X

X

USERD_stop_part_building

X

X

X

X

X

X

X

X

X

X

Footnotes

  1. Modifications due to user specified ids for structured blocks.

  2. Additional valid ghost element types available.

  3. Modifications for specification of structured ranges.

  4. Added yaw, pitch, roll.

3.3.4. At Version 2.04

ADDED to handle failed elements:

(Can implement to specify to EnSight, which variable is the failed element variable and what the conditions of failure are)

USERD_get_uns_failed_params

3.3.5. At Version 2.05

ADDED to handle material species:

USERD_get_matsp_info

USERD_get_number_of_species

ADDED to handle variable extraction after a read:

(This is similar to Extra graphical user interface options, but will modify the variable extraction options after the initial read - and update the variables accordingly)

USERD_get_var_extract_gui_defaults <optional>

USERD_get_var_extract_gui_numbers <optional>

USERD_set_var_extract_gui_data <optional>

ADDED to obtain rigid body values:

(If you can provide euler parameters for rigid body motion of parts, you should implement these routines)

USERD_rigidbody_existence

USERD_rigidbody_values

ADDED to let reader know when on right side of a time interval for var values:

(When the current time is between 2 given time steps - requiring interpolation of variable values - EnSight asks for the left then the right side values. For most readers, you never need to know this. But, if you must do some efficient interpolation within the reader itself because of differing timelines - this can be useful information)

USERD_set_right_side <optional>

3.3.6. At Version 2.06

ADDED to allow structured readers to deal with min, max, and stride in reader:

(To keep from having to send the entire non-strided block to EnSight - and having it then limit the processing - you can implement this routine, and deal with the limiting and striding within the reader itself. Allowing for lower memory requirements. If you want to use structured auto-distribute, you must implement these routines.)

USERD_get_structured_reader_cinching

USERD_set_block_range_and_stride

3.3.7. At Version 2.07

ADDED to allow specification of whether the reader will auto distribute within itself for SOS:

(If your reader can (and will) partition based on which server of the total number of servers - you will want to provide this routine)

USERD_prefer_auto_distribute <optional>

ADDED to allow readers to specify their own label for Set button in EnSight:

USERD_set_filename_button_labels <optional>

3.3.8. At Version 2.08

ADDED for efficient unstructured auto-distribute capability:

(If you want to be able to use the unstructured auto-distribute capability for SOS processing, in EnSight 8.2 or later, you should implement these routines):


Note:  These five routines are for normal elements. If any of them are implemented, they all must be implemented.


USERD_get_part_coords_in_buffers <optional>

USERD_get_part_element_ids_by_type_in_buffers <optional>

USERD_get_part_elements_by_type_in_buffers <optional>

USERD_get_part_node_ids_in_buffers <optional>

USERD_get_var_by_component_in_buffers <optional>

This one routine for nsided elements.

USERD_get_nsided_conn_in_buffers <optional>

This one optional routine for nfaced elements

USERD_get_nfaced_conn_in_buffers <optional>

Unstructured Auto Distribute is a capability requiring Server of Servers (SOS) that will partition an unstructured model for you automatically across a set of servers.

If you do not implement the routines listed above (and described below) in your reader, EnSight can still perform this operation but will require much more memory on each server to read in the data (somewhat like each server having to read the whole model). You will however, get the execution advantage of having your model partitioned across multiple servers.

If you do implement these routines in your reader (in a proper manner), you should be able to not only get the execution advantages, but also memory usage on each server which is proportional to the subset that it is assigned to deal with.


Note:  The optional routines are functionally quite similar to the following functions. And therefore their implementation should not be too difficult to add to any existing reader that has already implemented these:

USERD_get_part_coords

USERD_get_part_node_ids

USERD_get_part_elements_by_type

USERD_get_part_element_ids_by_type

USERD_get_var_by_component

USERD_get_nsided_conn

USERD_get_nfaced_conn


ADDED for providing xy plot data out of a reader:

(If your data format provides plot/query xy data, you can implement these routines to have that data be available to EnSight's plotter)

USERD_get_num_xy_queries <optional>

USERD_get_xy_query_data <optional>

USERD_get_xy_query_info <optional>

MODIFIED for allowing yaw, pitch, roll:

(In addition to the specification of euler parameters and translations, and initial translational offsets, this routine was modified to allow for initial yaw, pitch, roll transformations as well.)

USERD_rigidbody_values

3.3.9. At Version 2.09

ADDED for providing vector glyph data out of a reader:

(If your reader can (and will) provide vector glyph data (generally used for annotating force and/or moment vectors), you will want to provide the following routines)

USERD_get_var_value_at_xyz_specific <optional>

USERD_get_vglyph_timeline_info <optional>

USERD_get_vglyph_timeline_times <optional>

USERD_get_vglyph_vector_info <optional>

USERD_get_vglyph_vector_values <optional>

USERD_get_vglyph_vector_xyzloc <optional>

3.3.10. At Version 2.10

ADDED for allowing materials to be specified as a scalar:

(If your reader can (and will) provide material data as per element scalars, you will want to provide the following routines)

USERD_get_matf_set_type <optional>

USERD_get_matf_escalars_desc <optional>