update ignore prop

This commit is contained in:
2010-04-22 10:58:05 +00:00
parent 9df74f2f6a
commit 96683751bc
5 changed files with 87 additions and 35 deletions
+1 -1
View File
@@ -142,7 +142,7 @@ h5_get_attrib_info (
\return number of attributes or error code.
*/
h5_size_t
h5_ssize_t
h5_get_num_attribs (
h5_file_t * const f, /*!< handle to open file */
const hid_t id
+1 -1
View File
@@ -30,7 +30,7 @@ h5_get_attrib_info (
h5_int64_t *attrib_nelem
);
h5_int64_t
h5_ssize_t
h5_get_num_attribs (
h5_file_t * constf,
hid_t id
+3 -3
View File
@@ -32,7 +32,7 @@ typedef __int64 int64_t;
typedef int64_t h5_int64_t;
typedef int32_t h5_int32_t;
typedef int64_t h5_id_t;
typedef int64_t h5_size_t; /* size in number of elements */
typedef uint64_t h5_size_t; /* size in number of elements */
typedef int64_t h5_ssize_t; /* size in number of elements */
typedef int64_t h5_err_t;
@@ -60,8 +60,8 @@ typedef unsigned long MPI_Comm;
#endif
typedef struct h5_idlist {
h5_size_t size; /* allocated space in number of items */
h5_size_t num_items; /* stored items */
int32_t size; /* allocated space in number of items */
int32_t num_items; /* stored items */
h5_id_t *items;
} h5_idlist_t;
+3 -3
View File
@@ -6,17 +6,17 @@ typedef struct h5t_te_entry_key {
} h5t_te_entry_key_t;
typedef struct h5_te_entry {
h5t_te_entry_key_t key;
h5_idlist_t value;
h5t_te_entry_key_t key;
} h5t_te_entry_t;
typedef struct h5t_td_entry_key {
h5_3id_t vids;
h5_id_t vids[3];
} h5t_td_entry_key_t;
typedef struct h5_td_entry {
h5t_td_entry_key_t key;
h5_idlist_t value;
h5t_td_entry_key_t key;
} h5t_td_entry_t;
+79 -27
View File
@@ -1,10 +1,5 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h> /* va_arg - System dependent ?! */
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <hdf5.h>
#include "h5_core/h5_core.h"
#include "h5_core/h5_core_private.h"
@@ -13,7 +8,7 @@
Skip elements which have been refined on a level <= the current one.
*/
static h5_id_t
_skip_to_next_elem_on_level (
skip_to_next_elem_on_level (
h5_file_t * f,
h5_id_t *eid
) {
@@ -59,7 +54,7 @@ h5t_begin_traverse_vertices (
iter->cur_cid = -1;
iter->cur_eid = -1;
TRY ( _skip_to_next_elem_on_level ( f, &iter->cur_eid ) );
TRY ( skip_to_next_elem_on_level ( f, &iter->cur_eid ) );
return H5_SUCCESS;
}
@@ -78,7 +73,7 @@ h5t_traverse_vertices (
h5_debug ( f, "Traversing done!" );
return H5_NOK;
}
TRY ( _skip_to_next_elem_on_level (
TRY ( skip_to_next_elem_on_level (
f, &iter->cur_eid ) );
iter->cur_cid = 0;
} else {
@@ -123,7 +118,7 @@ h5t_begin_traverse_edges (
iter->cur_cid = -1;
iter->cur_eid = -1;
TRY ( _skip_to_next_elem_on_level ( f, &iter->cur_eid ) );
TRY ( skip_to_next_elem_on_level ( f, &iter->cur_eid ) );
return H5_SUCCESS;
}
@@ -142,24 +137,23 @@ h5t_traverse_edges (
h5_debug ( f, "Traversing done!" );
return H5_NOK;
}
TRY ( _skip_to_next_elem_on_level (
TRY ( skip_to_next_elem_on_level (
f, &iter->cur_eid ) );
iter->cur_cid = 0;
} else {
iter->cur_cid++;
}
TRY ( h5tpriv_find_te2 (
f, iter->cur_cid, iter->cur_eid, &te ) );
TRY( h5tpriv_find_te2 (f, iter->cur_cid, iter->cur_eid, &te) );
/* skip to first element which is on current level */
i = -1;
h5_elem_ldta_t *el_dta;
do {
i++;
h5_id_t eid = h5tpriv_get_elem_idx ( te->value.items[i] );
h5_id_t eid = h5tpriv_get_elem_idx (te->value.items[i]);
el_dta = &t->elems_ldta[eid];
} while ( h5tpriv_elem_is_on_cur_level ( f, el_dta ) == H5_NOK );
} while ( iter->cur_eid != h5tpriv_get_elem_idx(te->value.items[i]) );
memcpy ( local_vids, te->key.vids, 2*sizeof(h5_id_t) );
} while (h5tpriv_elem_is_on_cur_level (f, el_dta) == H5_NOK);
} while ( iter->cur_eid != h5tpriv_get_elem_idx (te->value.items[i]));
memcpy (local_vids, te->key.vids, 2*sizeof(h5_id_t));
return te->value.items[0];
}
@@ -185,7 +179,7 @@ h5t_begin_traverse_triangles (
iter->cur_cid = -1;
iter->cur_eid = -1;
TRY ( _skip_to_next_elem_on_level ( f, &iter->cur_eid ) );
TRY ( skip_to_next_elem_on_level ( f, &iter->cur_eid ) );
return H5_SUCCESS;
}
@@ -199,28 +193,86 @@ h5t_traverse_triangles (
h5t_td_entry_t *td;
h5_size_t i;
do {
if ( iter->cur_cid >= 3 ) {
if ( iter->cur_eid+1 >= t->num_elems[t->cur_level] ) {
h5_debug ( f, "Traversing done!" );
if (iter->cur_cid >= 3) {
if (iter->cur_eid+1 >= t->num_elems[t->cur_level]) {
h5_debug (f, "Traversing done!");
return H5_NOK;
}
TRY ( _skip_to_next_elem_on_level (
f, &iter->cur_eid ) );
TRY( skip_to_next_elem_on_level (f, &iter->cur_eid) );
iter->cur_cid = 0;
} else {
iter->cur_cid++;
}
TRY ( h5tpriv_find_td2 ( f, iter->cur_cid, iter->cur_eid, &td ) );
TRY( h5tpriv_find_td2 (f, iter->cur_cid, iter->cur_eid, &td) );
/* skip to first element which is on current level */
i = -1;
h5_elem_ldta_t *el_dta;
do {
i++;
h5_id_t eid = h5tpriv_get_elem_idx ( td->value.items[i] );
h5_id_t eid = h5tpriv_get_elem_idx (td->value.items[i]);
el_dta = &t->elems_ldta[eid];
} while ( h5tpriv_elem_is_on_cur_level ( f, el_dta ) == H5_NOK );
} while ( iter->cur_eid != h5tpriv_get_elem_idx(td->value.items[i]) );
memcpy ( local_vids, td->key.vids, 3*sizeof(h5_id_t) );
} while (h5tpriv_elem_is_on_cur_level (f, el_dta) == H5_NOK);
} while (iter->cur_eid != h5tpriv_get_elem_idx(td->value.items[i]));
memcpy (local_vids, td->key.vids, 3*sizeof(h5_id_t));
return td->value.items[0];
}
/*!
Function for traversing entities with 0 < co-dim < co-dim(vertex).
In a tetrahedral mesh this means edges and triangle, in triangle
mesh only edges.
*/
typedef struct {
h5_id_t cur_elem_id; // local element id
h5_id_t cur_face_id; // face id according reference element
int32_t codim; // co-dimension of faces to traverse
int32_t num_faces; // number of faces
} h5t_entity_iterator2;
typedef struct h5t_idlisthash_key {
h5_id_t ids[1];
} h5t_idlisthash_key_t;
/*
List of all upward adjacent elements of same coarsness of a specific face.
The face is specified by its local vertex IDs.
*/
typedef struct h5t_idlisthash_entry {
h5_idlist_t value;
h5t_idlisthash_key_t key;
} h5t_idlisthash_entry_t;
h5_id_t
h5t_traverse_faces (
h5_file_t * const f,
h5t_entity_iterator2_t *iter;
) {
h5t_fdata_t *t = f->t;
h5t_idlisthash_entry_t *entry;
h5_size_t i;
do {
if (iter->cur_fid >= iter->num_faces) {
if (iter->cur_eid+1 >= t->num_elems[t->cur_level]) {
h5_debug (f, "Traversing done!");
return H5_NOK;
}
TRY( skip_to_next_elem_on_level (f, &iter->cur_eid) );
iter->cur_fid = 0;
} else {
iter->cur_fid++;
}
TRY( h5tpriv_find_td2 (f, iter->cur_fid, iter->cur_eid, &entry) );
/* skip to first element which is on current level */
i = -1;
h5_elem_ldta_t *el_dta;
do {
i++;
h5_id_t eid = h5tpriv_get_elem_idx (td->value.items[i]);
el_dta = &t->elems_ldta[eid];
} while (h5tpriv_elem_is_on_cur_level (f, el_dta) == H5_NOK);
} while (iter->cur_eid != h5tpriv_get_elem_idx(td->value.items[i]));
return td->value.items[0];
}