FiberBundleHDF5  $Id: FiberHDF5.dfg,v 1.8 2006/12/12 12:32:50 werner Exp $
Iterator Functions
typedef herr_t F5_iterate_timeslices_t(F5Path *path, double time, void *user_data)
 
typedef herr_t F5_iterate_grids_t(F5Path *F5Grid, const char *gridname, void *user_data)
 
typedef herr_t F5_iterate_topologies_t(F5Path *field, const char *topologyname, int index_depth, int topological_dimension, void *operator_data)
 
typedef herr_t F5_iterate_representations_t(F5Path *Representation, void *operator_data, const char *Representer_name, F5Path *RepresentationTarget)
 
typedef herr_t F5_iterate_fields_t(F5Path *field, const char *fieldname, void *operator_data, const char *representer_name)
 
typedef int F5_fieldtype_t(hid_t type_id)
 
typedef herr_t F5_iterate_grid_atlas_t(F5Path *grid, const char *coordinate_name, hid_t global_chart_hid, hid_t domain_group_hid, void *operator_data)
 
typedef herr_t F5_iterate_grids_per_bundle_t(hid_t file_id, hid_t gridinfo_id, const char *gridname, void *user_data)
 
typedef herr_t F5_iterate_gridevolution_per_bundle_t(hid_t file_id, const char *gridname, double time, const char *slicename, void *user_data)
 
F5_API int F5Iignore (const char *s)
 
F5_API int F5iterate_paramspace (hid_t file_id, int *idx, const F5ParameterSpace *selection, F5_iterate_paramspace_t *callback, void *user_data)
 
F5_API int F5iterate_timeslices (hid_t file_id, hsize_t *idx, F5_iterate_timeslices_t *callback, void *user_data)
 
F5_API int F5iterate_grids (F5Path *F5Slice, int *idx, F5_iterate_grids_t *callback, void *operator_data, F5_gridproperty_t **gridtypes, const char *coordinate_system)
 
F5_API int F5iterate_topologies (F5Path *grid, int *idx, F5_iterate_topologies_t *callback, void *operator_data)
 
F5_API int F5iterate_representations (F5Path *skeleton, int *idx, F5_iterate_representations_t *callback, void *operator_data)
 
F5_API int F5iterate_fields (F5Path *representation, int *idx, const char *representer_name, F5_iterate_fields_t *callback, void *operator_data)
 
F5_API int F5iterate_vertex_fields (F5Path *grid, int *idx, F5_iterate_fields_t *callback, void *operator_data, const char *coordinate_system, F5_fieldtype_t *what)
 
F5_API int F5iterate_topology_fields (F5Path *skeleton, int *idx, F5_iterate_fields_t *callback, void *operator_data, const char *coordinate_system, F5_fieldtype_t *what)
 
F5_API int F5has_standard_vertex_fields (F5Path *grid)
 
F5_API int F5iterate_grids_per_bundle (hid_t file_id, int *idx, F5_iterate_grids_per_bundle_t *callback, void *user_data)
 
F5_API int F5iterate_gridevolution (hid_t file_id, int *idx, F5_iterate_gridevolution_per_bundle_t *callback, void *user_data, F5_iterate_grids_per_bundle_t *gridinfo)
 

Detailed Description

Synopsis:

  1. Open a file
  2. Call F5iterate_timeslices() on it
  3. Let the timeslice callback function call F5iterate_grids()
  4. Let the grid callback function call F5iterate_vertex_fields() if you are interested in all available vertex-related fields.

The current implementation status only allows to scan all fields given on the default Topology of Grid objects.

Typedef Documentation

◆ F5_fieldtype_t

typedef int F5_fieldtype_t(hid_t type_id)

Prototype of a function that allows only certain types.

◆ F5_iterate_fields_t

typedef herr_t F5_iterate_fields_t(F5Path *field, const char *fieldname, void *operator_data, const char *representer_name)

Called per grid function.

Parameters
field_idThe HDF5 ID of the respective field. Note that it may be an HDF5 group ID or a dataset ID. Call H5Gclose() or H5Dclose() in the iterator function.
representer_nameThe name of the containing group where this field resides.

◆ F5_iterate_grid_atlas_t

typedef herr_t F5_iterate_grid_atlas_t(F5Path *grid, const char *coordinate_name, hid_t global_chart_hid, hid_t domain_group_hid, void *operator_data)
Parameters
gridAn F5Path pointing to the current grid with its members myChart and FileIDs being defined.

◆ F5_iterate_gridevolution_per_bundle_t

typedef herr_t F5_iterate_gridevolution_per_bundle_t(hid_t file_id, const char *gridname, double time, const char *slicename, void *user_data)

Callback function type for F5iterate_gridevolution().

Parameters
file_idThe HDF5 file ID.
gridnameThe name of the current grid under investigation.
timeThe time at which this grid exists.
slicenameThe name of the time slice group where this grid resides in.

◆ F5_iterate_grids_per_bundle_t

typedef herr_t F5_iterate_grids_per_bundle_t(hid_t file_id, hid_t gridinfo_id, const char *gridname, void *user_data)

The iterator function that is called for each grid that is found in the file.

See also
F5iterate_grids_per_bundle().

◆ F5_iterate_grids_t

typedef herr_t F5_iterate_grids_t(F5Path *F5Grid, const char *gridname, void *user_data)

The iterator callback function that is called for each grid of a time slice that fullfills the specified grid property.

See also
F5iterate_grids().
Parameters
F5GridAn F5 path with a valid Grid identifier.

◆ F5_iterate_representations_t

typedef herr_t F5_iterate_representations_t(F5Path *Representation, void *operator_data, const char *Representer_name, F5Path *RepresentationTarget)
Parameters
RepresentationThe F5Path to the currently traversed Represention
RepresentationTargetThe location of the Representer if its from another Grid. ()

◆ F5_iterate_timeslices_t

typedef herr_t F5_iterate_timeslices_t(F5Path *path, double time, void *user_data)

The iterator function that is called for each time slice.

See also
F5iterate_timeslices().
Parameters
slice_idAn HDF5 group identifier. Call H5Gclose() in the iterater function.

◆ F5_iterate_topologies_t

typedef herr_t F5_iterate_topologies_t(F5Path *field, const char *topologyname, int index_depth, int topological_dimension, void *operator_data)

The call back function that will be invoked by F5iterate_topologies(). It traverses all Skeletons of a Grid object.

Parameters
index_depthThe number of "hops" that are required to go from the elements described in this group to vertex coordinates in a chart.
topological_dimensionThe dimension of the k-cells that are stored within this Skeleton group.

Function Documentation

◆ F5has_standard_vertex_fields()

F5_API int F5has_standard_vertex_fields ( F5Path grid)

Check whether this grid object has some fields in the standard vertex topology, i.e. an Points/ entry.

References F5Path::Grid_hid.

◆ F5Iignore()

F5_API int F5Iignore ( const char *  s)

Simple (mostly internal) helper function to detect which attributes or groups shall be ignored generally. F5 ignores all groups starting with a dot or underline. Normally this function will not be used by application code.

Returns
non-zero if the string shall be ignored.
Note
returns true if the string is invalid (i.e.: "ignore invalid strings")

◆ F5iterate_fields()

F5_API int F5iterate_fields ( F5Path representation,
int *  idx,
const char *  representer_name,
F5_iterate_fields_t callback,
void *  operator_data 
)

Traverses all fields per representation. Typically invoked by the callback function of F5iterate_representations().

See also
Higher level functionality provided by F5iterate_vertex_fields() and F5iterate_topology_fields().
Parameters
representer_nameThe name of the representation group, as come callbacks want to know this.

References F5Path::Representation_hid.

◆ F5iterate_gridevolution()

F5_API int F5iterate_gridevolution ( hid_t  file_id,
int *  idx,
F5_iterate_gridevolution_per_bundle_t callback,
void *  user_data,
F5_iterate_grids_per_bundle_t gridinfo 
)
Parameters
gridinfoOptional per-grid callback function. May be just NULL.

References F5iterate_grids_per_bundle().

◆ F5iterate_grids()

F5_API int F5iterate_grids ( F5Path F5Slice,
int *  idx,
F5_iterate_grids_t callback,
void *  operator_data,
F5_gridproperty_t **  gridtypes,
const char *  coordinate_system 
)

Iterate over all grids within a slice.

Parameters
gridtypesNULL-terminated array of grid property functions. May be NULL to retrieve all grids.
coordinate_systemThe coordinate system in which to check for grid properties. E.g. a grid may be uniform in one coordinate system, but is just regular in another one. May be NULL to specify the default cartesian coordinate system.
F5SliceAn F5 path with a valid slice identifier.

References F5Path::Slice_hid.

◆ F5iterate_grids_per_bundle()

F5_API int F5iterate_grids_per_bundle ( hid_t  file_id,
int *  idx,
F5_iterate_grids_per_bundle_t callback,
void *  user_data 
)

Iterate over all grids slices within a file.

References F5Gtry_to_open().

Referenced by F5iterate_gridevolution().

◆ F5iterate_paramspace()

F5_API int F5iterate_paramspace ( hid_t  file_id,
int *  idx,
const F5ParameterSpace selection,
F5_iterate_paramspace_t *  callback,
void *  user_data 
)
Todo:
Implement, and reformulate F5iterate_timeslices() via this function.

◆ F5iterate_representations()

F5_API int F5iterate_representations ( F5Path skeleton,
int *  idx,
F5_iterate_representations_t callback,
void *  operator_data 
)

Traverses all Representations per skeleton. Typically invoked by the callback function of F5iterate_topologies() .

References F5Gtry_to_open(), F5Path::Representation_hid, and F5Path::Topology_hid.

◆ F5iterate_timeslices()

F5_API int F5iterate_timeslices ( hid_t  file_id,
hsize_t *  idx,
F5_iterate_timeslices_t callback,
void *  user_data 
)

Iterate over all time slices within a file.

References F5Binitialize_path(), and F5close().

◆ F5iterate_topologies()

F5_API int F5iterate_topologies ( F5Path grid,
int *  idx,
F5_iterate_topologies_t callback,
void *  operator_data 
)

Traverses all Skeletons of a Grid object. Usually it is invoked via F5iterate_grids() and invokes F5iterate_topology_fields();

References F5Path::Chart_hid, F5Path::Charts_hid, F5Path::Representation_hid, and F5Path::Topology_hid.

◆ F5iterate_topology_fields()

F5_API int F5iterate_topology_fields ( F5Path skeleton,
int *  idx,
F5_iterate_fields_t callback,
void *  operator_data,
const char *  coordinate_system,
F5_fieldtype_t what 
)

Iterate over an arbitrary topology group. The group ID grid->Topology_id must be a valid group ID when calling this function.

References F5Path::Chart_hid, F5Path::Charts_hid, F5Gtry_to_open(), F5Path::Grid_hid, F5Path::Representation_hid, and F5Path::Topology_hid.

Referenced by F5iterate_vertex_fields().

◆ F5iterate_vertex_fields()

F5_API int F5iterate_vertex_fields ( F5Path grid,
int *  idx,
F5_iterate_fields_t callback,
void *  operator_data,
const char *  coordinate_system,
F5_fieldtype_t what 
)

Iterate over all fields given on the vertices per grid in the specified coordinate system.

Parameters
whatFunction to select which field types are allowed. May be a NULL pointer to retrieve all fields on the grid.

References F5iterate_topology_fields(), F5Path::Grid_hid, and F5Path::Topology_hid.