- introduced types for local and global indices and ID's

- bugfixes
This commit is contained in:
2010-10-18 16:12:41 +00:00
parent b6a5823e23
commit 6dc020da64
59 changed files with 1538 additions and 1301 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
h5_err_t
H5FedGetAdjacencies (
h5_file_t* const f,
const h5_id_t entity_id,
const h5_loc_id_t entity_id,
const h5_int32_t dim,
h5_idlist_t** list
);
+11 -11
View File
@@ -20,7 +20,7 @@ H5FedBeginTraverseEntities (
h5_file_t* const f,
int codim
);
h5_id_t
h5_loc_id_t
H5FedTraverseEntities (
h5_file_t* const f,
h5t_entity_iterator_t* iter
@@ -33,41 +33,41 @@ H5FedEndTraverseEntities (
h5_err_t
H5FedGetVertexCoordsByIndex (
h5_file_t* const f,
h5_id_t vertex_index,
h5_loc_idx_t vertex_index,
h5_float64_t P[3]
);
h5_err_t
H5FedGetVertexCoordsByID (
h5_file_t* const f,
h5_id_t vertex_id,
h5_loc_id_t vertex_id,
h5_float64_t P[3]
);
h5_err_t
H5FedGetVertexIndicesOfEdge (
h5_file_t* const f,
h5_id_t entity_id,
h5_id_t* const vertex_indices
h5_loc_id_t entity_id,
h5_loc_idx_t* const vertex_indices
);
h5_err_t
H5FedGetVertexIndicesOfTriangle (
h5_file_t* const f,
h5_id_t entity_id,
h5_id_t* const vertex_indices
h5_loc_id_t entity_id,
h5_loc_idx_t* const vertex_indices
);
h5_err_t
H5FedGetVertexIndicesOfTet (
h5_file_t* const f,
h5_id_t entity_id,
h5_id_t* const vertex_indices
h5_loc_id_t entity_id,
h5_loc_idx_t* const vertex_indices
);
h5_err_t
H5FedGetVertexIndicesOfEntity (
h5_file_t* const f,
h5_id_t entity_id,
h5_id_t* const vertex_indices
h5_loc_id_t entity_id,
h5_loc_idx_t* const vertex_indices
);
#endif
+6 -13
View File
@@ -36,10 +36,10 @@ H5FedBeginStoreVertices (
const h5_size_t num
);
h5_id_t
h5_loc_idx_t
H5FedStoreVertex (
h5_file_t * const f,
const h5_id_t id,
const h5_glb_idx_t id,
const h5_float64_t P[3]
);
@@ -55,10 +55,10 @@ H5FedBeginStoreElements (
);
h5_id_t
h5_err_t
H5FedStoreElement (
h5_file_t * const f,
const h5_id_t local_vids[]
const h5_loc_idx_t vertex_indices[]
);
h5_err_t
@@ -71,10 +71,10 @@ H5FedBeginRefineElements (
h5_file_t * const f
);
h5_id_t
h5_loc_idx_t
H5FedRefineElement (
h5_file_t * const f,
const h5_id_t eid
const h5_loc_idx_t elem_idx
);
h5_err_t
@@ -82,11 +82,4 @@ H5FedEndRefineElements (
h5_file_t * const f
);
h5_err_t
H5FedMarkRefineElement (
h5_file_t * const f,
const h5_id_t eid
);
#endif
+43 -36
View File
@@ -1,40 +1,47 @@
#ifndef __H5FED_TAGS_H
#define __H5FED_TAGS_H
h5_err_t H5FedAddMTagset ( h5_file_t * const f,
char * name,
h5_id_t type );
h5_err_t H5FedRemoveMTagset ( h5_file_t *const f,
char name[] );
h5_size_t H5FedGetMTagsets ( h5_file_t *const f,
char **names[] );
h5_id_t H5FedGetTypeOfMTagset ( h5_file_t *const f,
char name[] );
h5_err_t H5FedSetMTag ( h5_file_t *const f,
char name[], h5_id_t id,
const size_t dims, void *val );
h5_err_t H5FedSetMTagToVertex ( h5_file_t *const f,
char name[], h5_id_t id,
const size_t dims, void *val );
h5_err_t H5FedSetMTagToEdge ( h5_file_t *const f,
char name[], h5_id_t id,
const size_t dims, void *val );
h5_err_t H5FedSetMTagToTriangle ( h5_file_t *const f,
char name[], h5_id_t id,
const size_t dims, void *val );
h5_err_t H5FedSetMTagToTet ( h5_file_t *const f,
char name[], h5_id_t id,
const size_t dims, void *val );
h5_err_t
H5FedAddMTagset (
h5_file_t* const f,
char* name,
h5_id_t type
);
h5_err_t
H5FedRemoveMTagset (
h5_file_t* const f,
char name[]
);
h5_size_t
H5FedGetMTagsets (
h5_file_t* const f,
char** names[]
);
h5_id_t
H5FedGetTypeOfMTagset (
h5_file_t* const f,
char name[]
);
h5_err_t
H5FedSetMTag (
h5_file_t* const f,
char name[],
h5_loc_id_t entity_id,
const size_t dims,
void* val
);
h5_err_t
H5FedGetMTag (
h5_file_t* const f,
const char name[],
const h5_loc_id_t id,
size_t* dims,
void* val
);
h5_err_t
H5FedRemoveMTag (
h5_file_t* const f,
const char name[],
const h5_loc_id_t id
);
h5_err_t H5FedGetMTag ( h5_file_t *const f,
const char name[], const h5_id_t id,
size_t *dims, void *val );
h5_err_t H5FedRemoveMTag ( h5_file_t *const f,
const char name[], const h5_id_t id );
/*
Get descriptor for a tagset
Get tag value by descriptor
get size of value
Get tagset names for specific entity
*/
#endif
+2 -1
View File
@@ -5,7 +5,6 @@
#include "h5_errno.h"
#include "h5_attribs.h"
#include "h5_errorhandling.h"
#include "h5_hdf5.h"
#include "h5_maps.h"
#include "h5_openclose.h"
@@ -20,4 +19,6 @@
#include "h5t_core.h"
#include "h5_errorhandling.h"
#endif
+70 -20
View File
@@ -1,7 +1,8 @@
#ifndef __H5_ERRORHANDLING_H
#define __H5_ERRORHANDLING_H
#define SET_FNAME( f, fname ) h5_set_funcname( f, fname );
extern h5_int32_t h5priv_debug_level;
#define CHECK_FILEHANDLE( f ) \
if ( h5_check_filehandle ( f ) != H5_SUCCESS ) \
return h5_get_errno( f );
@@ -88,6 +89,21 @@ h5_abort_errorhandler (
va_list ap
);
void
h5priv_vprintf (
FILE* f,
const char* prefix,
const char* __funcname,
const char* fmt,
va_list ap
);
const char *
h5_get_funcname (
const h5_file_t * const f
);
h5_err_t
h5_error (
h5_file_t * const f,
@@ -125,14 +141,12 @@ __attribute__ ((format (printf, 2, 3)))
#endif
;
void
h5_vinfo (
const h5_file_t * const f,
const char *fmt,
va_list ap
);
/*!
\ingroup h5_core_errorhandling
void
Print an informational message to \c stdout.
*/
static inline void
h5_info (
const h5_file_t * const f,
const char *fmt,
@@ -142,15 +156,32 @@ h5_info (
__attribute__ ((format (printf, 2, 3)))
#endif
;
static inline void
h5_info (
const h5_file_t* const f,
const char* fmt,
...
) {
if (h5priv_debug_level >= 3) {
va_list ap;
va_start (ap, fmt);
h5priv_vprintf (stdout, "I", h5_get_funcname(f), fmt, ap);
va_end (ap);
}
}
void
h5_vdebug (
const h5_file_t * const f,
const char *fmt,
va_list ap
);
/*!
\ingroup h5_core_errorhandling
void
Print a debug message to \c stdout.
*/
#if defined(HAVE__VA_ARGS__)
#define h5_debug(f, ...) \
if (h5priv_debug_level >= 4) { \
h5priv_vprintf (stdout, "D", h5_get_funcname(f), __VA_ARGS__); \
}
#else
static inline void
h5_debug (
const h5_file_t * const f,
const char *fmt,
@@ -159,7 +190,22 @@ h5_debug (
#ifdef __GNUC__
__attribute__ ((format (printf, 2, 3)))
#endif
;
;
static inline void
h5_debug (
const h5_file_t * const f,
const char *fmt,
...
) {
if (h5priv_debug_level >= 4) {
va_list ap;
va_start (ap, fmt);
h5priv_vprintf (stdout, "D", h5_get_funcname(f), fmt, ap);
va_end (ap);
}
}
#endif
void
h5_set_funcname (
@@ -167,9 +213,13 @@ h5_set_funcname (
const char * const fname
);
const char *
h5_get_funcname (
const h5_file_t * const f
);
static inline void
SET_FNAME (
h5_file_t* const f,
const char* const fname
) {
h5_set_funcname( f, fname );
h5_debug (f, "%s", " "); // just print the function name
}
#endif
-99
View File
@@ -1,103 +1,4 @@
#ifndef __H5_MAPS_H
#define __H5_MAPS_H
h5_err_t
h5priv_alloc_idlist (
h5_file_t * const f,
h5_idlist_t **list,
const h5_size_t size
);
h5_err_t
h5priv_free_idlist (
h5_file_t * const f,
h5_idlist_t **list
);
h5_err_t
h5priv_alloc_idlist_items (
h5_file_t * const f,
h5_idlist_t *list,
const h5_size_t size
);
h5_err_t
h5priv_free_idlist_items (
h5_file_t * const f,
h5_idlist_t *list
);
h5_err_t
h5priv_append_to_idlist (
h5_file_t * const f,
h5_idlist_t *list,
h5_id_t id
);
int
h5priv_cmp_ids_by_eid (
const void *_id1,
const void *_id2
);
int
h5priv_cmp_ids (
const void *_id1,
const void *_id2
);
h5_err_t
h5priv_sort_idlist_by_eid (
h5_file_t * const f,
h5_idlist_t *list
);
h5_id_t
h5priv_find_idlist (
h5_file_t * const f,
h5_idlist_t *list,
h5_id_t item
);
h5_id_t
h5priv_insert_idlist (
h5_file_t * const f,
h5_idlist_t *list,
h5_id_t item,
h5_id_t idx
);
h5_id_t
h5priv_search_idlist (
h5_file_t * const f,
h5_idlist_t *list,
h5_id_t item
);
h5_err_t
h5priv_alloc_idmap (
h5_file_t * const f,
h5_idmap_t *map,
const h5_size_t size
);
h5_err_t
h5priv_insert_idmap (
h5_file_t * const f,
h5_idmap_t *map,
h5_id_t global_id,
h5_id_t local_id
);
h5_id_t
h5priv_search_idmap (
h5_idmap_t *map,
h5_id_t value
);
h5_err_t
h5priv_sort_idmap (
h5_idmap_t *map
);
#endif
+2 -2
View File
@@ -79,8 +79,8 @@ typedef struct h5_idlist {
h5_id_t *items;
} h5_idlist_t;
struct h5_idmap;
typedef struct h5_idmap h5_idmap_t;
struct h5_idxmap;
typedef struct h5_idxmap h5_idxmap_t;
enum h5_oid {
+1 -1
View File
@@ -4,7 +4,7 @@
h5_err_t
h5t_get_adjacencies (
h5_file_t * const f,
const h5_id_t entity_id,
const h5_loc_id_t entity_id,
const h5_int32_t dim,
h5_idlist_t **list
);
+1 -2
View File
@@ -49,7 +49,7 @@
#define H5T_ETYPE_TRIANGLE ((h5_id_t)3)
#define H5T_ETYPE_TET ((h5_id_t)4)
#define h5tpriv_set_entity_type( type, elem_idx ) \
#define h5tpriv_set_entity_type( type, elem_idx ) \
( \
((h5_id_t)(type) << (sizeof(h5_id_t)*8-4)) | \
((h5_id_t)(elem_idx)) \
@@ -58,7 +58,6 @@
((entity_id & H5T_ETYPE_MASK) >> (sizeof(h5_id_t)*8-4))
#define h5tpriv_build_id( type, comp_idx, elem_idx ) \
( \
((h5_id_t)(type) << (sizeof(h5_id_t)*8-4)) | \
+30 -48
View File
@@ -4,106 +4,88 @@
h5_id_t
h5t_map_global_vertex_idx2local (
h5_file_t * const f,
h5_id_t global_idx
h5_glb_idx_t glb_idx
);
h5_err_t
h5t_map_global_vertex_indices2local (
h5_file_t* f,
const h5_id_t* const glb_indices,
const h5_id_t size,
h5_id_t* const loc_indices
const h5_glb_id_t* const glb_indices,
const h5_size_t size,
h5_loc_idx_t* const loc_indices
);
h5_id_t
h5t_map_local_vid2global (
h5_file_t *f,
h5_id_t local_vid
);
h5_id_t
h5t_map_global_elem_idx2local (
h5_loc_idx_t
h5t_map_glb_elem_idx2loc (
h5_file_t * const f,
const h5_id_t global_idx
const h5_glb_idx_t glb_idx
);
h5_id_t
h5t_map_global_elem_indices2local (
h5_err_t
h5t_map_glb_elem_indices2loc (
h5_file_t * const f,
const h5_id_t* glb_indices,
const h5_id_t size,
h5_id_t* loc_indices
);
h5_id_t
h5tpriv_get_local_vid (
h5_file_t * const f,
h5_float64_t P[3]
);
h5_id_t
h5t_get_local_eid (
h5_file_t *f,
h5_id_t * const local_vids
const h5_glb_idx_t* glb_indices,
const h5_size_t size,
h5_loc_idx_t* loc_indices
);
h5_err_t
h5t_get_vertex_index_of_vertex (
h5_file_t* const f,
const h5_id_t entity_id,
const h5_loc_id_t entity_id,
h5_id_t* vertex_index
);
h5_err_t
h5t_get_vertex_index_of_vertex2 (
h5_file_t* const f,
const h5_id_t face_idx,
const h5_id_t elem_idx,
h5_id_t* vertex_indices
const h5_loc_idx_t face_idx,
const h5_loc_idx_t elem_idx,
h5_loc_idx_t* vertex_indices
);
h5_err_t
h5t_get_vertex_indices_of_edge (
h5_file_t* const f,
const h5_id_t entity_id,
h5_id_t *vertex_indices
const h5_loc_id_t entity_id,
h5_loc_idx_t *vertex_indices
);
h5_err_t
h5t_get_vertex_indices_of_edge2 (
h5_file_t* const f,
const h5_id_t face_idx,
const h5_id_t elem_id,
h5_id_t* vertex_indices
const h5_loc_idx_t face_idx,
const h5_loc_idx_t elem_id,
h5_loc_idx_t* vertex_indices
);
h5_err_t
h5t_get_vertex_indices_of_triangle (
h5_file_t* const f,
const h5_id_t entity_id,
h5_id_t* vertex_indices
const h5_loc_id_t entity_id,
h5_loc_idx_t* vertex_indices
);
h5_err_t
h5t_get_vertex_indices_of_triangle2 (
h5_file_t* const f,
const h5_id_t face_idx,
const h5_id_t elem_idx,
h5_id_t* vertex_indices
const h5_loc_idx_t face_idx,
const h5_loc_idx_t elem_idx,
h5_loc_idx_t* vertex_indices
);
h5_err_t
h5t_get_vertex_indices_of_tet (
h5_file_t* const f,
const h5_id_t entity_id,
h5_id_t *vertex_indices
const h5_loc_id_t entity_id,
h5_loc_idx_t *vertex_indices
);
h5_err_t
h5t_get_vertex_indices_of_entity (
h5_file_t * const f,
const h5_id_t entity_id,
h5_id_t *vertex_indices
const h5_loc_id_t entity_id,
h5_loc_idx_t *vertex_indices
);
#endif
+12 -24
View File
@@ -1,29 +1,17 @@
#ifndef __H5T_OPENCLOSE_H
#define __H5T_OPENCLOSE_H
h5_err_t h5t_open_mesh ( h5_file_t * const f, const h5_id_t id,
const h5_oid_t type );
h5_err_t h5t_set_level ( h5_file_t * const f, const h5_id_t id );
h5_err_t h5t_close_mesh ( h5_file_t * const f );
#if 0
h5_err_t h5tpriv_open_file ( h5_file_t * const f );
h5_err_t h5tpriv_close_file ( h5_file_t * const f );
h5_err_t h5tpriv_open_topo_group ( h5_file_t * const f );
h5_err_t h5tpriv_open_meshes_group ( h5_file_t * const f );
h5_err_t h5tpriv_open_mesh_group ( h5_file_t * const f );
h5_err_t h5tpriv_close_step ( h5_file_t * const f );
h5_err_t h5tpriv_init_fdata ( h5_file_t * const f );
h5_err_t h5tpriv_init_step ( h5_file_t * const f );
h5_err_t h5tpriv_alloc_num_vertices ( h5_file_t * const f,
const h5_size_t num_vertices );
h5_err_t h5tpriv_alloc_tris ( h5_file_t * const f, const size_t cur,
const size_t new_size );
h5_err_t h5tpriv_alloc_tets ( h5_file_t * const f, const size_t cur,
const size_t new_size );
h5_err_t h5t_open_mesh (
h5_file_t * const f,
const h5_id_t id,
const h5_oid_t type
);
h5_err_t h5t_set_level (
h5_file_t * const f,
const h5_id_t id
);
h5_err_t h5t_close_mesh (
h5_file_t * const f
);
#endif
#endif
+2 -2
View File
@@ -48,14 +48,14 @@ h5t_end_iterate_entities (
h5_err_t
h5t_get_vertex_coords_by_index (
h5_file_t* const f,
h5_id_t vertex_index,
h5_loc_idx_t vertex_idx,
h5_float64_t P[3]
);
h5_err_t
h5t_get_vertex_coords_by_id (
h5_file_t* const f,
h5_id_t vertex_id,
h5_loc_id_t vertex_id,
h5_float64_t P[3]
);
#endif
+5 -5
View File
@@ -21,7 +21,7 @@ h5t_begin_store_vertices (
h5_id_t
h5t_store_vertex (
h5_file_t * const f,
const h5_id_t mesher_vid,
const h5_glb_id_t glb_id,
const h5_float64_t P[3]
);
@@ -36,11 +36,11 @@ h5t_begin_store_elems (
const h5_size_t num
);
h5_id_t
h5_loc_idx_t
h5t_store_elem (
h5_file_t * const f,
const h5_id_t local_parent_eid,
const h5_id_t local_vids[]
const h5_loc_idx_t parent_idx,
const h5_loc_idx_t* vertex_indices
);
h5_err_t
@@ -66,7 +66,7 @@ h5t_end_refine_elems (
h5_err_t
h5t_mark_entity (
h5_file_t* const f,
const h5_id_t entity_id
const h5_loc_id_t entity_id
);
h5_err_t
+56 -17
View File
@@ -3,34 +3,73 @@
typedef struct h5t_tagset H5T_Tagset;
h5_err_t h5t_add_mtagset ( h5_file_t* const f, char name[], h5_id_t id );
h5_err_t h5t_remove_mtagset ( h5_file_t* const f, const char name[] );
h5_err_t h5t_open_mtagset ( h5_file_t* const f, const char *name,
H5T_Tagset** retval );
h5_ssize_t h5t_get_num_mtagsets ( h5_file_t* const f );
h5_ssize_t h5t_get_mtagsets ( h5_file_t* const f, char** names[] );
h5_err_t h5t_get_mtagset_info ( h5_file_t* const f, const h5_id_t idx,
char** names, h5_id_t* type );
h5_id_t h5t_get_mtagset_type_by_name ( h5_file_t* const f, char name[] );
h5_err_t
h5t_add_mtagset (
h5_file_t* const f,
char name[],
h5_id_t id
);
h5_err_t
h5t_remove_mtagset (
h5_file_t* const f,
const char name[]
);
h5_err_t h5t_open_mtagset (
h5_file_t* const f,
const char *name,
H5T_Tagset** retval
);
h5_ssize_t
h5t_get_num_mtagsets (
h5_file_t* const f
);
h5_ssize_t
h5t_get_mtagsets (
h5_file_t* const f,
char** names[]
);
h5_err_t
h5t_get_mtagset_info (
h5_file_t* const f,
const h5_id_t idx,
char** names,
h5_id_t* type
);
h5_id_t
h5t_get_mtagset_type_by_name (
h5_file_t* const f,
char name[]
);
h5_err_t h5t_set_mtag_by_name ( h5_file_t* const f, char name[], const h5_id_t id,
const size_t dim, void* value );
h5_err_t
h5t_set_mtag_by_name (
h5_file_t* const f,
char name[],
const h5_loc_id_t entity_id,
const size_t dim,
void* value
);
h5_err_t h5t_get_mtag_by_name ( h5_file_t* const f, const char name[],
const h5_id_t id, size_t* dim, void* vals );
h5_err_t
h5t_get_mtag_by_name (
h5_file_t* const f,
const char name[],
const h5_loc_id_t entity_id,
size_t* dim,
void* vals );
h5_err_t
h5t_remove_mtag_by_name (
h5_file_t* const f,
const char name[],
const h5_id_t id
const h5_loc_id_t entity_id
);
h5_ssize_t
h5t_get_tag (
h5_file_t *const f,
const H5T_Tagset *tagset,
const h5_id_t entity_id,
const h5_loc_id_t entity_id,
size_t* const dim,
void* const vals
);
@@ -39,13 +78,13 @@ h5_err_t
h5t_remove_mtag (
h5_file_t* const f,
H5T_Tagset* tagset,
const h5_id_t id
const h5_loc_id_t entity_id
);
h5_ssize_t
h5t_get_mtagset_names_of_entity (
h5_file_t* const f,
const h5_id_t entity_id,
const h5_loc_id_t entity_id,
char *names[],
const h5_size_t dim
);