|
FiberBundleHDF5
FiberHDF5 Documentation, Revision 2026
High-Performance Fiber Bundle Data Model for Scientific Visualization
|
Go to the source code of this file.
Data Structures | |
| struct | _F5_ChartPrecisionTypes |
| struct | ChartDomain_IDs |
Macros | |
| #define | F5_FORTRAN_ORDER ((int*)(0)) |
| #define | F5_C_ORDER ((int*)(-1)) |
Typedefs | |
| typedef struct _F5_ChartPrecisionTypes | F5_ChartPrecisionTypes |
| typedef ChartDomain_IDs *(* | new_global_chart_f) () |
Enumerations | |
| enum | { F5ChartPrecisionMaxNumberOfFileTypes = 32 } |
| #define F5_C_ORDER ((int*)(-1)) |
Definition at line 268 of file F5Bchart.h.
Referenced by F5B_new_global_domain(), and F5B_permute_dimensions().
| #define F5_FORTRAN_ORDER ((int*)(0)) |
Definition at line 267 of file F5Bchart.h.
Referenced by F5B_new_global_axial_chart2D(), F5B_new_global_cartesian_chart1D(), F5B_new_global_cartesian_chart2D(), F5B_new_global_cartesian_chart3D(), F5B_new_global_cartesian_chart4D(), F5B_new_global_color_chart_rgba_int(), F5B_new_global_color_chart_rgba_real(), F5B_new_global_cylindrical_chart3D(), F5B_new_global_domain(), F5B_new_global_edge_cells(), F5B_new_global_fragname(), F5B_new_global_hexahedral_cells(), F5B_new_global_polar_chart2D(), F5B_new_global_polar_chart3D(), F5B_new_global_polar_chart4D(), F5B_new_global_quad_cells(), F5B_new_global_spherical_chart1D(), F5B_new_global_spherical_chart2D(), F5B_new_global_t_polar2_chart3D(), F5B_new_global_tetrahedral_cells(), F5B_new_global_texture_chart2D(), F5B_new_global_texture_chart3D(), F5B_new_global_time_chart1D(), F5B_new_global_triangle_cells(), F5B_new_global_triangle_cells_ijk(), F5B_new_integer_regular_domain3D(), F5B_new_rational_regular_domain3D(), and old_F5B_new_global_tetrahedral_cells().
| typedef struct _F5_ChartPrecisionTypes F5_ChartPrecisionTypes |
Definition at line 71 of file F5Bchart.h.
| typedef ChartDomain_IDs *(* new_global_chart_f) () |
Prototype of a function creating a new class of coordinate systems. (Chart domain constructor).
Definition at line 183 of file F5Bchart.h.
| anonymous enum |
| Enumerator | |
|---|---|
| F5ChartPrecisionMaxNumberOfFileTypes | number of additional file types in ChartPrecisions |
Definition at line 19 of file F5Bchart.h.
| F5_API void F5B_delete_global_chart | ( | ChartDomain_IDs * | ID | ) |
Free the memory resources that are associated with a certain coordinate system.
Definition at line 632 of file F5Bchart.c.
References ChartDomain_IDs::domain_name, ChartDomain_IDs::DoublePrecision, ChartDomain_IDs::ExtendedPrecision, F5B_delete_tangential_types(), free(), ChartDomain_IDs::HalfPrecision, ChartDomain_IDs::OneBytePrecision, ChartDomain_IDs::refs, and ChartDomain_IDs::SinglePrecision.
Referenced by F5Bcoordinate_cleanup(), and F5close().
| F5_API void F5B_delete_tangential_types | ( | F5_ChartPrecisionTypes * | IDs | ) |
Destructor for F5_ChartPrecisionTypes.
Definition at line 610 of file F5Bchart.c.
References _F5_ChartPrecisionTypes::AdditionalFileTypes, _F5_ChartPrecisionTypes::Bicovector_hid_t, _F5_ChartPrecisionTypes::Bivector_hid_t, _F5_ChartPrecisionTypes::Cometric_hid_t, _F5_ChartPrecisionTypes::Covector_hid_t, F5ChartPrecisionMaxNumberOfFileTypes, F5Tclose(), _F5_ChartPrecisionTypes::Metric_hid_t, _F5_ChartPrecisionTypes::Point_hid_t, _F5_ChartPrecisionTypes::Pseudocoscalar_hid_t, _F5_ChartPrecisionTypes::Pseudoscalar_hid_t, and _F5_ChartPrecisionTypes::Vector_hid_t.
Referenced by F5B_delete_global_chart().
| F5_API const int * F5B_fortran_permute_vector | ( | ) |
Return a (static) permutation vector for fortran memory layout. It always has FIBER_MAX_RANK entries, i.e. is of the form { FIBER_MAX_RANK-1, FIBER_MAX_RANK-2, ..., 2,1,0 }
Definition at line 36 of file F5Bchart.c.
References FIBER_MAX_RANK.
| F5_API void F5B_init_tangential_types | ( | F5_ChartPrecisionTypes * | H5Types, |
| const char * | coordnames[], | ||
| int | dimension, | ||
| hid_t | coord_type ) |
Initializes the Poind_hit_t with some newly constructed transient HDF5 type while setting all other entries to 0.
Definition at line 290 of file F5Bchart.c.
References _F5_ChartPrecisionTypes::AdditionalFileTypes, _F5_ChartPrecisionTypes::Bicovector_hid_t, _F5_ChartPrecisionTypes::Bivector_hid_t, _F5_ChartPrecisionTypes::Cometric_hid_t, _F5_ChartPrecisionTypes::Covector_hid_t, F5ChartPrecisionMaxNumberOfFileTypes, _F5_ChartPrecisionTypes::Metric_hid_t, _F5_ChartPrecisionTypes::Point_hid_t, _F5_ChartPrecisionTypes::Pseudocoscalar_hid_t, _F5_ChartPrecisionTypes::Pseudoscalar_hid_t, and _F5_ChartPrecisionTypes::Vector_hid_t.
Referenced by F5B_new_global_domain().
| F5_API int F5B_inject_precision_type | ( | F5_ChartPrecisionTypes * | IDs, |
| hid_t | type_id ) |
Add a type ID to the additional file types, ready to be deleted by F5B_delete_tangential_types(F5_ChartPrecisionTypes*IDs);
Definition at line 477 of file F5Bchart.c.
References _F5_ChartPrecisionTypes::AdditionalFileTypes, and F5ChartPrecisionMaxNumberOfFileTypes.
Referenced by F5file_type().
| F5_API ChartDomain_IDs * F5B_new_global_cartesian_chart3D | ( | ) |
Definition at line 84 of file F5coordinates.c.
References F5_FORTRAN_ORDER, F5B_new_global_float_chart(), and FIBER_HDF5_CARTESIAN_CHART_DOMAIN.
Referenced by F5Rcreate_coordinate_topology().
| F5_API ChartDomain_IDs * F5B_new_global_domain | ( | const char * | coordnames[], |
| int | dimension, | ||
| const char * | name, | ||
| const int | perm_vector[], | ||
| int | cell_dimensionality, | ||
| hid_t | SinglePrecisionType, | ||
| hid_t | DoublePrecisionType ) |
Construct a new domain type. A domain type specifies how points from one topology are mapped onto another one. It is a subset of a chart, in that it defines the basic mapping from points onto another, but no tangential types like vectors. @TODO Add complementary cleanup function.
Creates a new chart domain object that holds just a "point" type, but no tangential types.
Definition at line 212 of file F5Bchart.c.
References ChartDomain_IDs::cell_dimensionality, ChartDomain_IDs::domain_name, ChartDomain_IDs::DoublePrecision, F5_C_ORDER, F5_FORTRAN_ORDER, F5B_init_tangential_types(), F5printf, FIBER_MAX_RANK, name, ChartDomain_IDs::perm_vector, ChartDomain_IDs::refs, ChartDomain_IDs::SinglePrecision, and ChartDomain_IDs::TensorTypes.
Referenced by F5B_new_global_float_chart(), F5B_new_global_fractional_domain(), F5B_new_global_fragment_neighbour_domain(), F5B_new_global_int_chart(), F5B_new_global_int_domain(), and F5Bcopy_chart_domain().
| F5_API ChartDomain_IDs * F5B_new_global_float_chart | ( | const char * | coordnames[], |
| int | dimension, | ||
| const char * | name, | ||
| const int | perm_vector[FIBER_MAX_RANK] ) |
Construct a new coordinate type.
| coordnames | Array of names for each coordinate. |
| dimension | Dimensionality of this coordinate system. |
| name | Some naming for all instances of this coordinate systems. |
Creates a chart with floating point types.
Only the creation of homogeneous coordinates is supported through this interface.
Definition at line 496 of file F5Bchart.c.
References ChartDomain_IDs::DoublePrecision, F5B_new_global_domain(), F5Bchart_add_tangential_types(), FIBER_MAX_RANK, name, and ChartDomain_IDs::SinglePrecision.
Referenced by F5B_new_global_axial_chart2D(), F5B_new_global_cartesian_chart1D(), F5B_new_global_cartesian_chart2D(), F5B_new_global_cartesian_chart3D(), F5B_new_global_cartesian_chart4D(), F5B_new_global_color_chart_rgba_real(), F5B_new_global_cylindrical_chart3D(), F5B_new_global_polar_chart2D(), F5B_new_global_polar_chart3D(), F5B_new_global_polar_chart4D(), F5B_new_global_spherical_chart1D(), F5B_new_global_spherical_chart2D(), F5B_new_global_t_polar2_chart3D(), F5B_new_global_texture_chart2D(), F5B_new_global_texture_chart3D(), and F5B_new_global_time_chart1D().
| F5_API ChartDomain_IDs * F5B_new_global_fractional_domain | ( | const char * | coordnames[], |
| int | dimension, | ||
| const char * | name, | ||
| const int | perm_vector[], | ||
| int | cell_dimensionality ) |
Definition at line 571 of file F5Bchart.c.
References F5B_new_global_domain(), F5T_INT_FRACTION32, F5T_INT_FRACTION64, and name.
Referenced by F5B_new_rational_regular_domain3D().
| F5_API ChartDomain_IDs * F5B_new_global_int_chart | ( | const char * | coordnames[], |
| int | dimension, | ||
| const char * | name, | ||
| const int | perm_vector[FIBER_MAX_RANK] ) |
Definition at line 514 of file F5Bchart.c.
References ChartDomain_IDs::DoublePrecision, F5B_new_global_domain(), F5Bchart_add_tangential_types(), FIBER_MAX_RANK, name, and ChartDomain_IDs::SinglePrecision.
Referenced by F5B_new_global_color_chart_rgba_int().
| F5_API ChartDomain_IDs * F5B_new_global_int_domain | ( | const char * | coordnames[], |
| int | dimension, | ||
| const char * | name, | ||
| const int | perm_vector[FIBER_MAX_RANK], | ||
| int | cell_dimensionality ) |
Create a domain with positions in n-dimensional integer coordinates, where 32bit and 64bit are available ( H5T_NATIVE_B32 and H5T_NATIVE_B64 in HDF5.)
Definition at line 529 of file F5Bchart.c.
References ChartDomain_IDs::DoublePrecision, F5B_new_global_domain(), F5Bchart_add_tangential_types(), FIBER_MAX_RANK, ChartDomain_IDs::HalfPrecision, name, ChartDomain_IDs::OneBytePrecision, and ChartDomain_IDs::SinglePrecision.
Referenced by F5B_new_global_edge_cells(), F5B_new_global_hexahedral_cells(), F5B_new_global_quad_cells(), F5B_new_global_tetrahedral_cells(), F5B_new_global_triangle_cells(), F5B_new_global_triangle_cells_ijk(), F5B_new_integer_regular_domain3D(), and old_F5B_new_global_tetrahedral_cells().
| F5_API hsize_t * F5B_permute_dimensions | ( | hsize_t * | target_dims, |
| int | rank, | ||
| const hsize_t * | source_dims, | ||
| int | perm_vector[FIBER_MAX_RANK], | ||
| int | perm_vector_size ) |
Permute a given dimensions array according to the given permutation vector.
| source_dims | The source dimensions. |
| target_dims | The target dimensions array, may be identical to the source dimensions array. |
| perm_vector | The permutation vector, may be F5_FORTRAN_ORDER, F5_C_ORDER or an explicity integer array specifying an arbitrary reodering of indices. |
Definition at line 72 of file F5Bchart.c.
References F5_C_ORDER, F5printf, and FIBER_MAX_RANK.
Referenced by F5Fcreate(), and F5Tpermute_dimensions().
| F5_API ChartDomain_IDs * F5B_read_chart_domain | ( | hid_t | ChartDomainLocationID, |
| const char * | DefaultChartName ) |
Make failsafe if a type definition does not exist.
Add support for dynamically defined types.
Definition at line 720 of file F5Bchart.c.
References ChartDomain_IDs::domain_name, ChartDomain_IDs::DoublePrecision, F5Aget_string(), F5Atry_to_open(), F5Bchart_read_tangential_types(), F5Gtry_to_open(), F5printf, F_H5Aread(), FIBER_HDF5_CHART_DOMAIN, FIBER_HDF5_CHART_DOUBLE_PRECISION, FIBER_HDF5_CHART_MEMLAYOUT, FIBER_HDF5_CHART_SINGLE_PRECISION, free(), H5Gclose, ChartDomain_IDs::perm_vector, _F5_ChartPrecisionTypes::Point_hid_t, ChartDomain_IDs::refs, and ChartDomain_IDs::SinglePrecision.
Referenced by F5B_read_global_chart().
| F5_API ChartDomain_IDs * F5B_read_global_chart | ( | hid_t | ChartsID, |
| const char * | name ) |
Definition at line 696 of file F5Bchart.c.
References F5B_read_chart_domain(), F5printf, H5Gclose, and name.
Referenced by F5FB_read_global_chart().
| F5_API ChartDomain_IDs * F5B_save_global_chart | ( | const ChartDomain_IDs * | MemoryIDs, |
| hid_t | Domain_hid ) |
Create File ID's from MemoryID's.
Definition at line 801 of file F5Bchart.c.
References ChartDomain_IDs::cell_dimensionality, ChartDomain_IDs::domain_name, ChartDomain_IDs::DoublePrecision, F5Asave_ints(), F5T_save_perm_vector(), F5Tsave_tensor(), FIBER_HDF5_CELLDIMENSIONALITY, FIBER_HDF5_CHART_DOUBLE_PRECISION, FIBER_HDF5_CHART_POINT_TYPE, FIBER_HDF5_CHART_SINGLE_PRECISION, FIBER_MAX_RANK, H5Gclose, ChartDomain_IDs::perm_vector, _F5_ChartPrecisionTypes::Point_hid_t, ChartDomain_IDs::refs, and ChartDomain_IDs::SinglePrecision.
Referenced by F5LTcreateV().
| F5_API void F5Bchart_read_tangential_types | ( | F5_ChartPrecisionTypes * | H5Types, |
| hid_t | location ) |
Definition at line 674 of file F5Bchart.c.
References _F5_ChartPrecisionTypes::Bicovector_hid_t, _F5_ChartPrecisionTypes::Bivector_hid_t, _F5_ChartPrecisionTypes::Cometric_hid_t, _F5_ChartPrecisionTypes::Covector_hid_t, FIBER_HDF5_CHART_BICOVECTOR_TYPE, FIBER_HDF5_CHART_BIVECTOR_TYPE, FIBER_HDF5_CHART_COVECTOR_TYPE, FIBER_HDF5_CHART_METRIC_TYPE, FIBER_HDF5_CHART_POINT_TYPE, FIBER_HDF5_CHART_PSEUDOCOSCALAR_TYPE, FIBER_HDF5_CHART_PSEUDOSCALAR_TYPE, FIBER_HDF5_CHART_VECTOR_TYPE, _F5_ChartPrecisionTypes::Metric_hid_t, _F5_ChartPrecisionTypes::Point_hid_t, _F5_ChartPrecisionTypes::Pseudocoscalar_hid_t, _F5_ChartPrecisionTypes::Pseudoscalar_hid_t, and _F5_ChartPrecisionTypes::Vector_hid_t.
Referenced by F5B_read_chart_domain().
| F5_API ChartDomain_IDs * F5Bcopy_chart_domain | ( | const ChartDomain_IDs * | IDs | ) |
Make a copy of a coordinate domain. All types are created from the existing information as if it were created from scratch. This function may be used to convert named data types into transient types. This is e.g. useful when reading a file. @TODO Add complementary cleanup function.
Definition at line 851 of file F5Bchart.c.
References ChartDomain_IDs::cell_dimensionality, ChartDomain_IDs::domain_name, ChartDomain_IDs::DoublePrecision, F5B_new_global_domain(), FIBER_MAX_RANK, ChartDomain_IDs::perm_vector, _F5_ChartPrecisionTypes::Point_hid_t, and ChartDomain_IDs::SinglePrecision.
| F5_API int F5Bget_chart_dims | ( | const ChartDomain_IDs * | IDs | ) |
Get the dimensionality of this chart. This information is taken from the number of elements of the associated point type.
Definition at line 899 of file F5Bchart.c.
References _F5_ChartPrecisionTypes::Point_hid_t, and ChartDomain_IDs::SinglePrecision.
Referenced by F5Fcreate(), and F5Tpermute_dimensions().
| F5_API F5_ChartPrecisionTypes * F5Bget_precision_by_size | ( | ChartDomain_IDs * | CD, |
| int | TypeSize ) |
Given the size of some type in byte, yield the appropriate precision type structur from a chart domain. The function will fail if the TypeSize is anything but 1,2,4,8 or 16.
Definition at line 916 of file F5Bchart.c.
References ChartDomain_IDs::DoublePrecision, ChartDomain_IDs::ExtendedPrecision, ChartDomain_IDs::HalfPrecision, ChartDomain_IDs::OneBytePrecision, and ChartDomain_IDs::SinglePrecision.
Referenced by F5Bget_precision_by_type(), and F5file_type().
| F5_API F5_ChartPrecisionTypes * F5Bget_precision_by_type | ( | ChartDomain_IDs * | CD, |
| hid_t | type_id ) |
Given some compound type, yield the precision type corresponding to the compound type's first member. The function will fail if the provided type is not a compound type.
Definition at line 931 of file F5Bchart.c.
References F5Bget_precision_by_size(), and H5Tclose().
| F5_API F5Ttensor_t * F5Bget_tensor_type_byname | ( | ChartDomain_IDs * | CD, |
| const char * | name ) |
| F5_API void F5Bincrement_domain_refs | ( | ChartDomain_IDs * | ChartDomain | ) |
Definition at line 68 of file F5B.c.
References ChartDomain_IDs::refs.
| F5_API void F5Binsert_tensor_type | ( | ChartDomain_IDs * | CD, |
| F5Ttensor_t * | T ) |
Definition at line 588 of file F5Bchart.c.
References ChartDomain_IDs::TensorTypes.
| F5_API void F5Bt_add_tangential_types | ( | F5_ChartPrecisionTypes * | H5Types, |
| const char * | coordnames[], | ||
| int | dimension, | ||
| hid_t | coord_type ) |
References F5_API.