bugfixes, implementation of adjacency functions

This commit is contained in:
2009-06-11 23:10:11 +00:00
parent 5bd0617f59
commit 255da882f7
8 changed files with 77 additions and 316 deletions
+7 -2
View File
@@ -31,7 +31,7 @@ H5CloseFile (
);
h5_err_t
H5DefineStepNameFormat (
H5SetStepNameFormat (
h5_file_t *f,
const char *name,
const h5_int64_t width
@@ -61,11 +61,16 @@ H5StartTraverseSteps (
h5_file_t *f
);
h5_err_t
h5_id_t
H5TraverseSteps (
h5_file_t *f
);
h5_err_t
H5EndTraverseSteps (
h5_file_t *f
);
h5_err_t
H5SetVerbosityLevel (
const h5_id_t level
+15
View File
@@ -29,6 +29,13 @@ H5FedOpenMesh (
return h5t_open_mesh ( f, mesh_id, mesh_type_id );
}
h5_err_t
H5FedCloseMesh (
h5_file_t * const f
) {
return -1;
}
h5_err_t
H5FedSetLevel (
h5_file_t * const f,
@@ -37,3 +44,11 @@ H5FedSetLevel (
SET_FNAME ( f, __func__ );
return h5t_open_level ( f, level_id );
}
h5_err_t
H5FedLinkMeshToStep (
h5_file_t * f,
const h5_id_t mesh_id
) {
return -1;
}
+10 -79
View File
@@ -20,18 +20,15 @@
#define __H5FED_H
#include "H5.h"
#include "H5Fed_adjacency.h"
#include "H5Fed_boundaries.h"
#include "H5Fed_inquiry.h"
#include "H5Fed_map.h"
#include "H5Fed_retrieve.h"
#include "H5Fed_store.h"
/****** General routines *****************************************************/
h5_size_t
H5FedGetNumMeshes (
h5_file_t * const f,
const h5_oid_t mesh_type_id
);
h5_err_t
H5FedOpenMesh (
h5_file_t * const f,
@@ -39,90 +36,24 @@ H5FedOpenMesh (
const h5_oid_t mesh_type_id
);
h5_size_t
H5FedGetNumLevels (
h5_file_t * f
h5_err_t
H5FedCloseMesh (
h5_file_t * const f
);
h5_err_t
H5FedSetLevel (
h5_file_t * f,
const h5_id_t id
);
h5_id_t
H5FedGetLevel (
h5_file_t * f
);
h5_size_t
H5FedGetNumVertices (
h5_file_t * f
);
h5_size_t
H5FedGetNumVerticesTotal(
h5_file_t * f
);
h5_size_t
H5FedGetNumVerticesCnode (
h5_file_t * f,
const h5_id_t cnode
);
h5_size_t
H5FedGetNumElements (
h5_file_t * f
);
h5_size_t
H5FedGetNumElementsTotal (
h5_file_t * f
);
h5_size_t
H5FedGetNumElementsCnode (
h5_file_t * f,
const h5_id_t cnode
);
/****** STORE / RETRIEVAL routines ********************************************/
h5_err_t
H5FedStartTraverseVertices (
h5_file_t * f
);
h5_id_t
H5FedTraverseVertices (
h5_file_t * f,
h5_id_t * const id,
h5_float64_t P[3]
const h5_id_t level_id
);
h5_err_t
H5FedEndTraverseVertices (
h5_file_t * f
);
h5_err_t
H5FedStartTraverseElements (
h5_file_t * f
);
h5_id_t
H5FedTraverseElements (
H5FedLinkMeshToStep (
h5_file_t * f,
h5_id_t * const id,
h5_id_t * const parent_id,
h5_id_t * const vertex_ids
const h5_id_t mesh_id
);
h5_err_t
H5FedEndTraverseElements (
h5_file_t * f
);
#endif
+26 -231
View File
@@ -15,250 +15,45 @@
#include <hdf5.h>
#include "h5_core/h5_types.h"
#include "h5_core/h5_core.h"
#include "H5Fed.h"
/****** UPWARD ADJACENCY routines *********************************************/
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the edges that are
adjacent to the vertex with id \c vertex_id and in \c num_adj_edges
the number of edges to which this vertex is adjacent, i.e. the size
of the returned vector.
\return n-tuple of upward adjacent edges
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetEdgesUAdjacentToVertex (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t vertex_id, /*!< global vertex id */
h5_size_t * const num_adj_edges /*!< OUT: size of returned vector */
\return number of upward adjacent edges
*/
h5_err_t
H5FedGetEdgesUpAdjacentToVertex (
h5_file_t * const f,
const h5_id_t local_vid,
h5_idlist_t **list
) {
return NULL;
return h5t_get_edges_upadjacent_to_vertex ( f, local_vid, list );
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the triangles that are
adjacent to the vertex with id \c vertexid and \c num_adj_triangles
the number of triangle to which this vertex is adjacent, i.e. the size
of the returned vector.
\return n-tuple of upward adjacent triangles.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetTrianglesUAdjacentToVertex (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t vertex_id, /*!< global vertex id */
h5_size_t * const num_adj_triangles
/*!< OUT: size of returned vector */
h5_err_t
H5FedGetTrianglesUpAdjacentToVertex (
h5_file_t * const f,
const h5_id_t local_vid,
h5_idlist_t **list
) {
return NULL;
return h5t_get_triangles_upadjacent_to_vertex ( f, local_vid, list );
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the tetrahedra that are
adjacent to the vertex with id \c vertex_id and in
\c num_adj_tetrahedra the number of tetrahera to which this vertex is
adjacent, i.e. the size of the returned vector.
\return n-tuple of upward adjacent tetrahedra.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetTetrahedrasUAdjacentToVertex (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t vertex_id, /*!< global vertex id */
h5_size_t * const num_adj_tetrahedra
/*!< OUT: size of returned vector */
h5_err_t
H5FedGetTetsUpAdjacentToVertex (
h5_file_t * const f,
const h5_id_t local_vid,
h5_idlist_t **list
) {
return NULL;
return h5t_get_tets_upadjacent_to_vertex ( f, local_vid, list );
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the triangles that are
adjacent to the edge with id \c vertex_id and in
\c num_adj_triangles the number of triangles adjacent to the edge, i.e.
the size of the return vector.
\return n-tuple of upward adjacent triangles.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetTrianglesUAdjacentToEdge (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t edge_id, /*!< global edge id */
h5_size_t * const num_adj_triangles
/*!< OUT: size of returned vector */
h5_err_t
H5FedReleaseListOfAdjacencies (
h5_file_t * const f,
h5_idlist_t **list
) {
return NULL;
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the tetrahedra that
are adjacent to the edge with id \c edge_id and in
\c num_adj_tetrahedra the number of tetrahedra that are adjacent to
the edge, i.e. the size of the returned vector.
\return n-tuple of upward adjacent tetrahedra.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetTetrahedraUAdjacentToEdge (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t edge_id, /*!< global edge id */
h5_size_t * const num_adj_tets /*!< OUT: size of returned vector */
) {
return NULL;
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the tetrahedra that
are adjacent to the triangle with id \c triangle_id and in
\c num_adj_tetrahedra the number of tetrahedra that are adjacent to
this triangle.
There are only two different cases: either the triangle is an internal,
including interprocessor boundaries, triangle or an external triangle,
i.e. a part of the mesh boundary; in the first case, there are \c 2
adjacent tetrahedra, in the second case the triangle has exactly one
sinle adjacent tetrahedron.
\return n-tuple of upward adjacent tetrahedra.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetTetrahedraUAdjacentToTriangle (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t triangle_id, /*!< global triangle id */
h5_size_t * const num_adj_tets /*!< OUT: size of returned vector */
) {
return NULL;
}
/****** DOWNWARD ADJACENCY routines *********************************************/
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the vertices that are
adjacent to the edge with id \c vertex_id.
\return n-tuple of downward adjacent vertices.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetVerticesDAdjacentToEdge (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t edge_id, /*!< global edge id */
h5_size_t * const num_adj_vertices
/*!< OUT: size of returned vector */
) {
return NULL;
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the edges that are
adjacent to the triangle with id \c triangle_id.
\return n-tuple of downward adjacent edges.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetEdjesDAdjacentToTriangle (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t triangle_id, /*!< global triangle id */
h5_size_t * const num_adj_triangles
/*!< OUT: size of returned vector */
) {
return NULL;
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the vertices that are
adjacent to the triangle with id \c triangle_id.
\return n-tuple of downward adjacent vertices.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetVerticesDAdjacentToTriangle (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t triangle_id, /*!< global triangle id */
h5_size_t * const num_adj_vertices
/*!< OUT: size of returned vector */
) {
return NULL;
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the triangles that are
adjacent to the tetrahedron with id \c tet_id
\return n-tuple of downward adjacent triangles.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetTrianglesDAdjacentToTetrahedron (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t tet_id, /*!< global tetrahedron id */
h5_size_t * const num_adj_triangles
/*!< OUT: size of returned vector */
) {
return NULL;
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the edges that are
adjacent to the tetrahedron with id \c tet_id.
\return n-tuple of downward adjacent edges.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetEdjesDAdjacentToTetrahedron (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t tet_id, /*!< global tetrahedron id */
h5_size_t * const num_adj_edges /*!< OUT: size of returned vector */
) {
return NULL;
}
/*!
\ingroup h5fed_c_api
Returns a vector, that contains the id's of all the vertices that are
adjacent to the tetrahedron with id \c tet_id.
\return n-tuple of downward adjacent vertices.
\return NULL-pointer on error.
*/
h5_id_t * H5FedGetVerticesDAdjacentToTetrahedron (
h5_file_t * fh, /*!< file handle */
const h5_id_t level, /*!< mesh level to query */
const h5_id_t tet_id, /*!< global tetrahedron id */
h5_size_t * const num_adj_vertices
/*!< OUT: size of returned vector */
) {
return NULL;
return _h5_free_idlist ( f, list );
}
+11 -1
View File
@@ -1,5 +1,5 @@
/*
Copyright 2007-2008
Copyright 2007-2009
Paul Scherrer Institut, Villigen, Switzerland;
Benedikt Oswald;
Achim Gsell
@@ -40,3 +40,13 @@ H5FedMapTriangle2GlobalID (
SET_FNAME ( f, __func__ );
return h5t_get_global_triangle_id ( f, global_vids );
}
h5_err_t
H5FedMapEntityID2LocalVids (
h5_file_t * const f,
h5_id_t local_id,
h5_id_t *local_vids
) {
SET_FNAME ( f, __func__ );
return h5t_get_local_vids_of_entity ( f, local_id, local_vids );
}
+6
View File
@@ -31,5 +31,11 @@ H5FedMapTriangle2GlobalID (
h5_id_t * const global_vids
);
h5_err_t
H5FedMapEntityID2LocalVids (
h5_file_t * const f,
h5_id_t local_id,
h5_id_t *localvids
);
#endif
+2 -2
View File
@@ -20,7 +20,7 @@
#include "H5Fed.h"
h5_err_t
H5FedStartTraverseVertices (
H5FedBeginTraverseVertices (
h5_file_t * const f /*!< file handle */
) {
SET_FNAME ( f, __func__ );
@@ -56,7 +56,7 @@ H5FedEndTraverseVertices (
h5_err_t
H5FedStartTraverseElements (
H5FedBeginTraverseElements (
h5_file_t * const f /*!< file handle */
) {
SET_FNAME ( f, __func__ );
-1
View File
@@ -62,7 +62,6 @@ libH5_a_SOURCES = \
H5Fed.c \
H5Fed_adjacency.c \
H5Fed_boundaries.c \
H5Fed_dof.c \
H5Fed_inquiry.c \
H5Fed_map.c \
H5Fed_retrieve.c \