src/H5Fed_adjacency.c
src/H5Fed_dof.c src/H5Fed_retrieve.c src/H5Fed_statistics.c src/H5Fed_store.c src/H5Fed.c - added
This commit is contained in:
@@ -28,6 +28,11 @@ src/H5BlockPrivate.h -text
|
||||
src/H5BlockTypes.h -text
|
||||
src/H5Fed.c -text
|
||||
src/H5Fed.h -text
|
||||
src/H5Fed_adjacency.c -text
|
||||
src/H5Fed_dof.c -text
|
||||
src/H5Fed_retrieve.c -text
|
||||
src/H5Fed_statistics.c -text
|
||||
src/H5Fed_store.c -text
|
||||
src/H5Part.c -text
|
||||
src/H5Part.h -text
|
||||
src/H5PartErrors.h -text
|
||||
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
Copyright 2006-2007
|
||||
Paul Scherrer Institut, Villigen, Switzerland;
|
||||
Benedikt Oswald;
|
||||
Achim Gsell
|
||||
All rights reserved.
|
||||
|
||||
Authors
|
||||
Achim Gsell
|
||||
|
||||
Warning
|
||||
This code is under development.
|
||||
|
||||
*/
|
||||
|
||||
/*!
|
||||
Some conventions:
|
||||
Functions:
|
||||
Name:
|
||||
ThisIsAFunction()
|
||||
Return values:
|
||||
-1 or NULL signals an error
|
||||
|
||||
\note
|
||||
In function names we use the words \b get and \b store insteed of
|
||||
\b read and \b write, because no I/O is actually done in these
|
||||
functions.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\defgroup h5fed_c_api H5Fed C API
|
||||
*/
|
||||
|
||||
#include <hdf5.h>
|
||||
#include "h5/h5_types.h"
|
||||
#include "H5Fed.h"
|
||||
|
||||
|
||||
/****** General routines *****************************************************/
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Open file with name \c filename. This function is available in the paralell
|
||||
and serial version. In the serial case \c comm may have any value.
|
||||
|
||||
\return File handle.
|
||||
\return NULL on error.
|
||||
|
||||
\note
|
||||
File is always opened in read/writer mode!
|
||||
|
||||
\note
|
||||
Implement as wrapper of \c H5_open_file()!
|
||||
*/
|
||||
h5_file * H5FedOpenFile (
|
||||
const char * filename, /*!< file name */
|
||||
const MPI_Comm comm /*!< MPI communicator */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Close file.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return -1 on error
|
||||
*/
|
||||
h5_int_t H5FedCloseFile (
|
||||
h5_file * fh /*!< file handle */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/****** INQUIRY routines *****************************************************/
|
||||
|
||||
/*!
|
||||
\ingroup h5_c_api
|
||||
|
||||
Get the number of compute nodes.
|
||||
|
||||
\return Number of compute notes.
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_int_t H5GetNumNodes (
|
||||
h5_file * fh /*!< file handle */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of hierarchical mesh levels available in current step.
|
||||
|
||||
\return Number of hierarchical mesh levels
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedGetNumMeshLevels (
|
||||
h5_file * fh /*!< file handle */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Check whether a tetrahedral mesh hierarchy exists on level \c level
|
||||
|
||||
\return \c 1 tetrahedral mesh hierarchy exists on given level.
|
||||
\return \c 0 tetrahedral mesh exists, but not on given level.
|
||||
\return \c -1 tetrahedral mesh doesn't exist
|
||||
*/
|
||||
h5_int_t H5FedHasTetrahedralMesh (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to check */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Check whether a boundary mesh hierarchy exists on level \c level
|
||||
|
||||
\return \c 1 boundary mesh hierarchy exists on given level.
|
||||
\return \c 0 boundary mesh hierarchy exists, but not on given level.
|
||||
\return \c -1 boundary mesh doesn't exist.
|
||||
*/
|
||||
h5_int_t H5FedHasBoundaryMesh(
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to check */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
/*
|
||||
Copyright 2006-2007
|
||||
Paul Scherrer Institut, Villigen, Switzerland;
|
||||
Benedikt Oswald;
|
||||
Achim Gsell
|
||||
All rights reserved.
|
||||
|
||||
Authors
|
||||
Achim Gsell
|
||||
|
||||
Warning
|
||||
This code is under development.
|
||||
|
||||
*/
|
||||
|
||||
#include <hdf5.h>
|
||||
#include "h5/h5_types.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 * 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 NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\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 * 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 */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\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 * 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 */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\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 * 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 */
|
||||
) {
|
||||
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 * 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 * fh, /*!< file handle */
|
||||
const h5_int_t level, /*!< mesh level to query */
|
||||
const h5_int_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 * fh, /*!< file handle */
|
||||
const h5_int_t level, /*!< mesh level to query */
|
||||
const h5_int_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 * 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 * 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 * 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 * 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 * 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;
|
||||
}
|
||||
+487
@@ -0,0 +1,487 @@
|
||||
/****** routines for accessing degrees of freedom *************************/
|
||||
/*
|
||||
Copyright 2006-2007
|
||||
Paul Scherrer Institut, Villigen, Switzerland;
|
||||
Benedikt Oswald;
|
||||
Achim Gsell
|
||||
All rights reserved.
|
||||
|
||||
Authors
|
||||
Achim Gsell
|
||||
|
||||
Warning
|
||||
This code is under development.
|
||||
|
||||
*/
|
||||
|
||||
#include <hdf5.h>
|
||||
#include "h5/h5_types.h"
|
||||
#include "H5Fed.h"
|
||||
|
||||
/* DoF acces for vertices */
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_float for the vertex \c vertex_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFVertexFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t vertex_id, /*!< global vertex id */
|
||||
const h5_float_t * const dof, /*!< DoF n-tuple */
|
||||
const h5_size_t dof_size /*!< number of \c h5_float
|
||||
value in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_complex for the vertex \c vertex_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFVertexComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t vertex_id, /*!< global vertex id */
|
||||
const h5_complex * const dof, /*!< DoF n-tuple */
|
||||
const h5_size_t dof_size /*!< number of \c h5_complex
|
||||
values in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_float for vertex \c vertex_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_float.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_float_t * H5FedGetDoFVertexFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t vertex_id, /*!< global vertex id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_float
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_complex for vertex \c vertex_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_float.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_complex * H5FedGetDoFVertexComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t vertex_id, /*!< global vertex id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_float
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components of type \c h5_float,
|
||||
of the DoF that is stored for vertex \c vertex_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\return \c -1 if vertex doesn't exist.
|
||||
|
||||
\note
|
||||
Do we need this function????
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFVertexFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t vertex_id /*!< global vertex id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components, of type \c h5_complex,
|
||||
of the DoF that is stored for vertex \c vertex_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\return \c -1 if vertex doesn't exist.
|
||||
|
||||
\note
|
||||
Do we need this function????
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFVertexComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_size_t vertex_id /*!< global vertex id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* DoF access for edges */
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_float for the edge \c edge_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return something \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFEdgeFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t edge_id, /*!< global edge id */
|
||||
const h5_float_t * const dof, /*!< DoF n-tuple */
|
||||
const h5_size_t dof_size /*!< number of \c h5_float
|
||||
value in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_complex for the edge \c edge_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return something \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFEdgeComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t edge_id, /*!< global edge id */
|
||||
const h5_complex * const dof, /*!< DoF n-tuple */
|
||||
const h5_size_t dof_size /*!< number of \c h5_complex
|
||||
value in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_float for vertex \c vertex_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_float.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_float_t * H5FedGetDoFEdgeFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t edge_id, /*!< global edge id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_float
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_complex for vertex \c vertex_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_float.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_complex* H5FedGetDoFEdgeComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t edge_id, /*!< global edge id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_float
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components, of type \c h5_float,
|
||||
of the DoF that is stored for edge \c edge_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\return \c -1 if edge doesn't exist.
|
||||
|
||||
\note
|
||||
Do we need this function????
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFEdgeFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t edge_id /*!< global edge id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components, of type \c h5_complex,
|
||||
of the DoF that is stored for edge \c edge_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\return \c -1 if edge doesn't exist.
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFEdgeComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t edge_id /*!< global edge id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/* DoF access for triangles */
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_float for the triangle \c triangle_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFTriangleFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t triangle_id, /*!< global triangle id */
|
||||
const h5_float_t * const dof, /*!< DoF vector */
|
||||
const h5_size_t dof_size /*!< number of \c h5_float_t
|
||||
values in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_complex for the triangle \c triangle_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFTriangleComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t triangle_id, /*!< global triangle id */
|
||||
const h5_complex * const dof, /*!< DoF vector */
|
||||
const h5_size_t dof_size /*!< number of \c h5_complex
|
||||
values in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_float for triangle \c triangle_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_float.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_float_t * H5FedGetDoFTriangleFloat (
|
||||
h5_file* fh, /*!< file handle */
|
||||
const h5_id_t triangle_id, /*!< global triangle id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_float
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_complex for triangle \c triangle_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_float.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_complex * H5FedGetDoFTriangleComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t triangle_id, /*!< global triangle id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_float
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components of type \c h5_float,
|
||||
of the DoF that is stored for triangle \c triangle_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\retuen \c -1 if triangle doesn't exist.
|
||||
|
||||
\note
|
||||
Do we need this function????
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFTriangleFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t triangle_id /*!< global triangle id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components of type \c h5_float,
|
||||
of the DoF that is stored for triangle \c triangle_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\retuen \c -1 if triangle doesn't exist.
|
||||
|
||||
\note
|
||||
Do we need this function????
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFTriangleComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t triangle_id /*!< global triangle id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/* DoF access for tetrahedra */
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_float for the tetrahedron \c tet_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFTetrahedronFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t tet_id, /*!< global tetrahedron id */
|
||||
const h5_float_t * const dof, /*!< DoF vector */
|
||||
const h5_size_t dof_size /*!< number of \c h5_float
|
||||
value in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores DoF of type \c h5_complex for the tetrahedron \c tet_id in current
|
||||
step. The DoF are passed to the function as n-tuple with an arbitrary
|
||||
number of elements.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreDoFTetrahedronComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t tet_id, /*!< global tetrahedron id */
|
||||
const h5_complex * const dof, /*!< DoF vector */
|
||||
const h5_size_t dof_size /*!< number of \c h5_complex
|
||||
value in \c dof */
|
||||
) {
|
||||
return -1;
|
||||
};
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_float for tetrahedron \c tet_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_float.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_float_t * H5FedGetDoFTetrahedronFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t tet_id, /*!< global tetrahedron id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_float
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get DoF of type \c h5_complex for tetrahedron \c tet_id in current time
|
||||
step. The DoF are returned as n-tuple. The size of this tuple is
|
||||
returned in the parameter \c dof_size.
|
||||
|
||||
\return Pointer to n-tuple of type \c h5_complex
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_complex * H5FedGetDoFTetrahedronComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t tet_id, /*!< global tetrahedron id */
|
||||
h5_size_t * const dof_size /*!< OUT: number of \c h5_complex
|
||||
values in returned n-tuple */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components of type \c h5_float,
|
||||
of the DoF that is stored for tetrahedron \c tet_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\return \c -1 if vertex doesn't exist.
|
||||
|
||||
\note
|
||||
Do we need this function????
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFTetrahedronFloat (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t tet_id /*!< global tetrahedron id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Retrieves the number of scalar components of type \c h5_complex,
|
||||
of the DoF that is stored for tetrahedron \c tet_id.
|
||||
|
||||
\return Number of stored degrees of freedom.
|
||||
\retuen \c -1 if tetrahedron doesn't exist.
|
||||
*/
|
||||
h5_size_t H5FedGetNumDoFTetrahedronComplex (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t tet_id /*!< global tetrahedron id */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
/****** RETRIEVAL routines **************************************************/
|
||||
/*
|
||||
Copyright 2006-2007
|
||||
Paul Scherrer Institut, Villigen, Switzerland;
|
||||
Benedikt Oswald;
|
||||
Achim Gsell
|
||||
All rights reserved.
|
||||
|
||||
Authors
|
||||
Achim Gsell
|
||||
|
||||
Warning
|
||||
This code is under development.
|
||||
|
||||
*/
|
||||
|
||||
#include <hdf5.h>
|
||||
#include "h5/h5_types.h"
|
||||
#include "H5Fed.h"
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get coordinates of the vertex \c vertex_id.
|
||||
|
||||
\return pointer to 3-dimensional coordinates.
|
||||
\return NULL-pointer on error.
|
||||
|
||||
\note
|
||||
Not all vertices are needed on all compute nodes, i.e. in order to
|
||||
guarantee optimum memory usage, the implementor of the API must make sure
|
||||
that the access to a desired vertex is carried out efficiently.
|
||||
|
||||
Effectively, this means that the application programmer on a particular
|
||||
compute node loops over the tetrahedra that have been assigned to this
|
||||
particular compute node, using the API routine \c H5FedGetTetrahedron.
|
||||
|
||||
Then, a specific tetrahedron is defined by indices into the set of vertex
|
||||
coordinates.
|
||||
|
||||
Therefore, the application programmer wants to access these coordinates,
|
||||
and he calls the API routine \c H5FedGetVertexCoordinate.
|
||||
|
||||
To achieve this behavior, it is required that the mesh be partitioned
|
||||
before any access to vertex coordinates or topological entities are
|
||||
carried out.
|
||||
*/
|
||||
h5_vertex * H5FedGetVertexCoordinate (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t vertex_id /*!< vertex id */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the definition of a specific edge \edge_id, i.e. a 2-tuple
|
||||
containing the specific indices of the 3-dimensional vertex
|
||||
coordinates.
|
||||
|
||||
\return pointer to 2-tuple of vertex id's defining the edge.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_edge * H5FedGetEdge (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t edge_id, /*!< global edge id */
|
||||
h5_id_t * const parent_id /*!< OUT: parent id if level
|
||||
\c >0 else \c -1 */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the definition of a specific triangle \triangle_id, i.e.
|
||||
a 3-tuple containing the specific indices of the 3-dimensional vertex
|
||||
coordinates.
|
||||
|
||||
\return pointer to 3-tuple of vertex id's defining the triangle.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_triangle * H5FedGetTriangle (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t triangle_id, /*!< global triangle id */
|
||||
h5_id_t * parent_id /*!< OUT: parent id if level
|
||||
\c >0 else \c -1 */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the definition of a specific tetrahedron \c tetra_id, i.e.
|
||||
a 4-tuple containing the specific indices of the 3-dimensional vertex
|
||||
coordinates.
|
||||
|
||||
\return pointer to 4-tuple of vertex id's defining the tetrahedron.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_tetrahedron * H5FedGetTetrahedron (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level to query */
|
||||
const h5_id_t tet_id, /*!< global tetrahedron id */
|
||||
h5_id_t * parent_id /*!< OUT: parent id if level
|
||||
\c >0 else \c -1 */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the definition of the boundary triangle \c triangle_id at level
|
||||
\c level, i.e. the indices of the 3-dimensional vertex coordinates.
|
||||
|
||||
\return pointer to 3-tuple of vertex id's defining the boundary triangle.
|
||||
\return NULL-pointer on error.
|
||||
*/
|
||||
h5_triangle * H5FedGetBoundaryTriangle (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level to query */
|
||||
const h5_id_t triangle_id, /*!< global btriangle_id */
|
||||
h5_id_t * parent_id /*!< OUT: parent id if level
|
||||
\c >0 else \c -1 */
|
||||
) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -0,0 +1,304 @@
|
||||
/****** VERTEX statistics routines *******************************************/
|
||||
/*
|
||||
Copyright 2006-2007
|
||||
Paul Scherrer Institut, Villigen, Switzerland;
|
||||
Benedikt Oswald;
|
||||
Achim Gsell
|
||||
All rights reserved.
|
||||
|
||||
Authors
|
||||
Achim Gsell
|
||||
|
||||
Warning
|
||||
This code is under development.
|
||||
|
||||
*/
|
||||
|
||||
#include <hdf5.h>
|
||||
#include "h5/h5_types.h"
|
||||
#include "H5Fed.h"
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of vertices used for defining a submesh
|
||||
at level \c level for this compute node in current step.
|
||||
|
||||
\return number of vertices
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumVertices (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the total number of vertices used for defining a submesh
|
||||
at level \c level in current step, summed up over all compute nodes.
|
||||
|
||||
\return number of vertices
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumVerticesTotal(
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Returns the number of vertices used for defining a submesh
|
||||
at level \c level for compute node \c cnode.
|
||||
|
||||
\return number of vertices
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumVerticesCnode (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level to query */
|
||||
const h5_id_t cnode /*!< compute node */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/****** EDGE statistics routines ********************************************/
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Returns the number of edges present in the mesh at level \c level in
|
||||
current time step on this compute node.
|
||||
|
||||
\return number of edges
|
||||
\return \c -1 on error.
|
||||
|
||||
\note
|
||||
It is left to the API implementor how to make this information
|
||||
available; in general he can compute it from the definition of
|
||||
the tetrahedral mesh.
|
||||
|
||||
\note
|
||||
After counting the number for the local cnode we call MPI_Gather()
|
||||
to collect the number from the other cnodes and store them into an
|
||||
array. The inquired number will be provided from this array.
|
||||
*/
|
||||
h5_size_t H5FedGetNumEdgesInTetrahedralMesh (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Returns the number of edges present in the mesh at level \c level,
|
||||
in current step, summed up over all compute nodes
|
||||
|
||||
\return number of edges
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumEdgesInTetrahedralMeshTotal (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Returns the number of edges present in the mesh at level \c level
|
||||
on compute node \c cnode
|
||||
|
||||
\return number of edges
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumEdgeInTetrahedralMeshCnode (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level to query */
|
||||
const h5_id_t cnode /*!< compute node */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/****** TRIANGLE statistics routines *****************************************/
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of triangles present in the mesh at level \c level in
|
||||
current time step on this compute note.
|
||||
|
||||
\return Number of triangles
|
||||
\return \c -1 on error.
|
||||
|
||||
\note
|
||||
After counting the number for the local cnode we call MPI_Gather()
|
||||
to collect the number from the other cnodes and store them into an
|
||||
array. The inquired number will be provided from this array.
|
||||
*/
|
||||
h5_size_t H5FedGetNumTrianglesInTetrahedralMesh (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of triangles present in the mesh at level \c level in
|
||||
current time step summed up over all compute notes.
|
||||
|
||||
\return Number of triangles
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumTrianglesInTetrahedralMeshTotal (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of triangles present in the mesh at level \c level in
|
||||
current time step on compute node \c cnode.
|
||||
|
||||
\return Number of triangles
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumTrianglesInTetrahedralMeshCnode (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level to query */
|
||||
const h5_id_t cnode /*!< compute node */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/****** TETRAHEDRON statistics routines **************************************/
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Returns the number of tetrahedral elements present in the mesh at
|
||||
level \c level in current step on this compute node.
|
||||
|
||||
\return number of tetrahedra
|
||||
\return \c -1 on error.
|
||||
|
||||
\note
|
||||
After counting the number for the local cnode we call MPI_Gather()
|
||||
to collect the number from the other cnodes and store them into an
|
||||
array. The inquired number will be provided from this array.
|
||||
*/
|
||||
h5_size_t H5FedGetNumTetrahedra (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Returns the number of tetrahedral elements present in the mesh at
|
||||
level \c level in current step summed up over all compute nodes.
|
||||
|
||||
\return number of tetrahedra
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumTetrahedraTotal(
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Returns the number of tetrahedral elements present in the mesh at
|
||||
level \c level in current step on compute nodes \c computenode.
|
||||
|
||||
\return number of tetrahedra
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumTetrahedraCnode (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level to query */
|
||||
const h5_id_t cnode /*!< compute node */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/****** BOUNDARY statistics routines ****************************************/
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of boundary triangles present in the mesh at
|
||||
level \c level in current step on this compute node.
|
||||
|
||||
\return number of tetrahedras
|
||||
\return \c -1 on error.
|
||||
|
||||
\note
|
||||
It is left to the API implementor how to make this information
|
||||
available. In general he can compute it from the definition
|
||||
of the tetrahedral mesh, using the adjacency relations, i.e.
|
||||
the fact that a boundary triangle has only one single adjacent
|
||||
tetrahedron.
|
||||
|
||||
\note
|
||||
After counting the number for the local cnode we call MPI_Gather()
|
||||
to collect the number from the other cnodes and store them into an
|
||||
array. The inquired number will be provided from this array.
|
||||
*/
|
||||
h5_size_t H5FedGetNumBoundaryTriangles (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of boundary triangles present in the mesh at
|
||||
level \c level in current step summed up over all compute nodes.
|
||||
|
||||
\return number of tetrahedras
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumBoundaryTrianglesTotal (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level /*!< mesh level to query */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Get the number of boundary triangles present in the mesh at
|
||||
level \c level in current step on compute node \c cnode.
|
||||
|
||||
\return number of tetrahedras
|
||||
\return \c -1 on error.
|
||||
*/
|
||||
h5_size_t H5FedGetNumBoundaryTrianglesCnode (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level to query */
|
||||
const h5_id_t cnode /*!< compute node */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
/****** STORE routines*****************************************************/
|
||||
/*
|
||||
Copyright 2006-2007
|
||||
Paul Scherrer Institut, Villigen, Switzerland;
|
||||
Benedikt Oswald;
|
||||
Achim Gsell
|
||||
All rights reserved.
|
||||
|
||||
Authors
|
||||
Achim Gsell
|
||||
|
||||
Warning
|
||||
This code is under development.
|
||||
|
||||
*/
|
||||
|
||||
#include <hdf5.h>
|
||||
#include "h5/h5_types.h"
|
||||
#include "H5Fed.h"
|
||||
|
||||
h5_int_t H5FedSetNumVertices (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_size_t num_vertices /*!< number of verices at level
|
||||
\c level */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
h5_int_t H5FedSetNumTetrahedra (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_size_t num_tet /*!< number of tetrahedra at
|
||||
level \c level */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores the the coordinates of a specific vertex at level \c level
|
||||
with id \c vertex_id of the tetrahedral mesh.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreVertexCoordinate (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t vertex_id, /*!< global vertex id */
|
||||
const h5_vertex * const vertex /*!< 3-tuple of coordinates */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores the 2-tuple, that contains the specific indices describing
|
||||
an edge with id \c edge_id at level \c level of the tetrahedral mesh.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreEdge (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t edge_id, /*!< global edge id */
|
||||
const h5_id_t parent_id, /*!< parent id if level \c >0
|
||||
else \x -1 */
|
||||
const h5_edge * const edge /*!< 2-tuple with vertex id's */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores the 3-tuple, that contains the specific indices describing a
|
||||
triangle with id \c triangle_id at level \c level of the tetrahedral mesh.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreTriangle (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t triangle_id, /*!< global triangle id */
|
||||
const h5_id_t parent_id, /*!< parent id if level \c >0
|
||||
else \x -1 */
|
||||
const h5_triangle * const triangle/*!< 3-tuple with vertex id's */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Stores the 4-tuple, that contains the specific indices describing
|
||||
a tetrahedron with id \c tet_id at level \c level of the tetrahedral
|
||||
mesh.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreTetrahedron (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t tet_id, /*!< global tetrahedron id */
|
||||
const h5_id_t parent_id, /*!< parent id if level \c >0
|
||||
else \x -1 */
|
||||
const h5_tetrahedron * const tet/*!< 4-tuple with vertex id's */
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
\ingroup h5fed_c_api
|
||||
|
||||
Writes the vector, that contains the specific indices that describe
|
||||
a boundary triangle \c btriangle with id \c btriangle_id at level
|
||||
\c level of the tetrahedral mesh.
|
||||
|
||||
\return value \c >=0 on success
|
||||
\return \c -1 on error
|
||||
*/
|
||||
h5_int_t H5FedStoreBoundaryTriangle (
|
||||
h5_file * fh, /*!< file handle */
|
||||
const h5_id_t level, /*!< mesh level */
|
||||
const h5_id_t btriangle_id, /*!< global boundary triangle id*/
|
||||
const h5_id_t parent_id, /*!< parent id if level \c >0
|
||||
else \c -1 */
|
||||
const h5_triangle * const btriangle/*!< 3-tuple with vertex id's*/
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
Reference in New Issue
Block a user