3.2. Order Routines Are Called

It is often helpful in the development of your reader to know what order the routines will be 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.

  1. Setting name in the graphical user interface, and specifying one or two input fields

    USERD_get_name_of_reader

    USERD_get_reader_descrip (optional)

    USERD_prefer_auto_distribute (optional)

    USERD_set_filename_button_labels (optional)

    USERD_get_extra_gui_numbers (optional)

    USERD_get_extra_gui_defaults (optional)

    USERD_get_reader_release (optional)

  2. Getting the reader version (also distinguishes between API's)

    USERD_get_reader_version

  3. Setting filenames and getting timeset and time info

    USERD_set_extra_gui_data (optional if reader has USERD_get_extra_gui_defaults routine)

    USERD_get_structured_reader_cinching

    USERD_set_server_number

    USERD_set_extra_gui_data (optional)

    USERD_set_filenames

    USERD_get_number_of_timesets

    USERD_get_geom_timeset_number

    for each timeset

    USERD_get_timeset_description

    USERD_get_max_time_steps

    USERD_get_num_of_time_steps

    USERD_get_sol_times

    USERD_set_time_set_and_step

  4. Gathering info for part builder

    USERD_set_time_set_and_step

    USERD_get_changing_geometry_status

    USERD_rigidbody_existence

    USERD_get_node_label_status

    USERD_get_element_label_status

    USERD_get_number_of_files_in_dataset

    USERD_get_dataset_query_file_info

    USERD_get_descrip_lines (for geometry)

    USERD_get_number_of_model_parts

    USERD_get_gold_part_build_info

    USERD_get_ghosts_in_model_flag

    USERD_get_maxsize_info

    USERD_get_ghosts_in_block_flag (if any ghost cells in model)

    USERD_get_model_extents -- or -- (for model extents)

    USERD_get_part_coords -- and/or --

    <USERD_set_block_range_and_stride > (if doing structured reader cinching)

    USERD_get_block_coords_by_component

    USERD_get_uns_failed_params

  5. Gathering variable info

    USERD_get_number_of_variables

    USERD_get_gold_variable_info

  6. Part building (per part created)

    Both unstructured and structured

    USERD_set_time_set_and_step

    If unstructured part

    USERD_get_part_coords -- or --

    USERD_get_part_coords_in_buffers (optional)

    USERD_rigidbody_values (optional)

    USERD_get_part_node_ids -- or --

    USERD_get_part_node_ids_in_buffers (optional)

    USERD_get_part_element_ids_by_type - - or --

    USERD_get_part_element_ids_by_type_in_buffers (optional)

    USERD_get_part_elements_by_type -- or --

    USERD_get_part_elements_by_type_in_buffers (optional)

    If any nsided elements

    USERD_get_nsided_conn -- or --

    USERD_get_nsided_conn_in_buffers (optional)

    If any nfaced elements

    USERD_get_nfaced_nodes_per_face

    USERD_get_nfaced_conn -- or --

    USERD_get_nfaced_conn_in_buffers (optional)

    else if structured part

    USERD_get_block_iblanking

    <USERD_set_block_range_and_stride > (If doing structured reader cinching)

    USERD_get_block_coords_by_component

    USERD_rigidbody_values (optional)

    USERD_get_block_ghost_flags (If ghost cells in part)

    USERD_get_part_node_ids (If node ids given)

    USERD_get_part_element_ids_by_type (If element ids given)

    both again

    USERD_get_border_availability (If border representation is selected)

    USERD_get_border_elements_by_type (If border representation is selected)

    USERD_stop_part_building (only once when part builder dialog is closed)

  7. Loading Variables

    constants

    USERD_set_time_set_and_step

    USERD_get_constant_val

    USERD_get_constant_per_part_data

    scalars/vectors/tensors

    USERD_get_descrip_lines

    USERD_set_time_set_and_step

    USERD_set_right_side (optional)

    <USERD_set_block_range_and_stride > (If doing structured reader cinching)

    USERD_get_var_by_component -- or --

    USERD_get_var_by_component_in_buffers (optional)

  8. Changing geometry

    changing coords only (per part)

    USERD_set_time_set_and_step

    USERD_get_descrip_lines

    USERD_get_part_coords -- or --

    USERD_get_part_coords_in_buffers (optional)

    <USERD_set_block_range_and_stride > (If doing structured reader cinching)

    USERD_get_block_coords_by_component

    changing connectivity (per part)

    Both unstructured and structured

    USERD_set_time_set_and_step

    USERD_get_descrip_lines

    USERD_get_number_of_model_parts

    USERD_get_gold_part_build_info

    USERD_get_ghosts_in_model_flag

    If unstructured part:

    USERD_get_model_extents -- or --

    USERD_get_part_coords

    USERD_get_part_coords -- or --

    USERD_get_part_coords_in_buffers (optional)

    USERD_rigidbody_values (optional)

    USERD_get_part_node_ids -- or --

    USERD_get_part_node_ids_in_buffers (optional)

    USERD_get_part_element_ids_by_type -- or --

    USERD_get_part_element_ids_by_type_in_buffers (optional)

    USERD_get_part_elements_by_type -- or --

    USERD_get_part_elements_by_type_in_buffers (optional)

    If any nsided elements:

    USERD_get_nsided_conn -- or --

    USERD_get_nsided_conn_in_buffers (optional)

    If any nfaced elements:

    USERD_get_nfaced_nodes_per_face

    USERD_get_nfaced_conn -- or --

    USERD_get_nfaced_conn_in_buffers (optional)

    else if structured part:

    USERD_get_model_extents -- or --

    USERD_get_part_coords

    USERD_get_block_iblanking

    <USERD_set_block_range_and_stride > (If doing structured reader cinching)

    USERD_get_block_coords_by_component

    USERD_rigidbody_values (optional)

    USERD_get_block_ghost_flags (If ghost cells in part)

    USERD_get_part_node_ids (If node ids given)

    USERD_get_part_element_ids_by_type (If element ids given)

    both again

    USERD_get_border_availability (If border representation is selected)

    USERD_get_border_elements_by_type (If border representation is selected)

  9. Node or Element queries over time

    USERD_get_var_value_at_specific

  10. To see if materials in the model

    USERD_get_number_of_material_sets

    USERD_get_matf_set_info

    If any material sets in the model (calls these once per material set)

    USERD_get_number_of_materials

    USERD_get_matf_var_info

    USERD_get_matf_set_type

    USERD_get_matf_escalars_desc

    For each element type of each part containing material ids, calls

    USERD_size_matf_data

    USERD_load_matf_data

    If there are any elements with mixed materials, when a domain or interface is created, calls these again per part

    USERD_size_matf_data

    USERD_load_matf_data

  11. To modify the variable extraction parameters and have the variables update accordingly.

    USERD_get_var_extract_gui_numbers

    USERD_get_var_extract_gui_defaults

    USERD_set_var_extract_gui_data

  12. To get vector vglyphs

    USERD_get_var_value_at_xyz_specific

    USERD_get_vglyph_timeline_info

    USERD_get_vglyph_timeline_times

    USERD_get_vglyph_vector_info

    USERD_get_vglyph_vector_values

    USERD_get_vglyph_vector_xyzloc