F5R.h

00001 /*
00002 //
00003 // $Id: F5R.h,v 1.17 2007/07/31 13:42:02 werner Exp $
00004 //
00005 */
00006 
00007 #ifndef __F5R_H
00008 #define __F5R_H
00009 
00010 #include <F5/F5F.h>
00011 #include <F5/F5B.h>
00012 #include <F5/F5coordinates.h>
00013 
00014 #ifdef  __cplusplus
00015 extern "C"
00016 {
00017 #endif
00018         
00031 F5_API F5Path*F5Rcreate_cartesian(hid_t File_id, double time,
00032                                   const char*gridname,
00033                                   const char*coordinate_system);
00034 
00035 
00065 /* 
00066 F5_API F5Path*F5Rcreate(hid_t File_id, double time,
00067                         const char*gridname,
00068                         ChartDomain_IDs*ChartDomain,
00069                         new_global_chart_f coord_creator,
00070                         const char*coordinate_system,
00071                         const char*TopologyName);
00072 */
00073 
00074 
00096 F5_API F5Path*F5Rcreate_static_cartesian(hid_t File_id, 
00097                                          const char*gridname,
00098                                          const char*coordinate_system);
00099 
00100 
00106 F5_API F5Path*F5Rcreate_coordinate_topology(hid_t File_id, const double*time,
00107                                             const char*gridname,
00108                                             const char*coordinate_system,
00109                                             const char*TopologyName,
00110                                             int IndexDepth, int SkeletonDimensionality,
00111                                             int Dimensionality,
00112                                             const hsize_t*refinement);
00113 
00114 
00121 F5_API F5Path*F5Rcreate_triangles_as_vertices_topology(hid_t File_id, double time, const char*gridname);
00122 
00123 
00124 /* ==== [RH] 20061229 .. added
00125    ---------------------------
00126  */
00133 F5_API F5Path*F5Rcreate_edges_as_vertices_topology(hid_t File_id, double time, const char*gridname);
00134 
00135 
00136 
00137 /* ==== [RH] 20061229 .. added
00138    ---------------------------
00139  */
00146 F5_API F5Path*F5Rcreate_faces_as_vertices_topology(hid_t File_id, double time, const char*gridname);
00147 
00148 
00149 /* ==== [RH] 20061221 .. added
00150    ---------------------------
00151  */
00158 F5_API F5Path*F5Rcreate_tetrahedrons_as_vertices_topology(hid_t File_id, double time, const char*gridname);
00159 
00166 F5_API F5Path*F5Rcreate_hexaedrons_as_vertices_topology(hid_t File_id, double time, const char*gridname);
00167 
00168 
00169 
00170 /* Internal function naming convention for vertex or cell refinement topologies */
00171 F5_API void TopologyName(char*name, int nlength, 
00172                          const hsize_t*level, int Centering, int dims);
00173 
00174 
00198 F5_API F5Path*F5Rcreate_vertex_refinement3D(hid_t File_id, double time,
00199                                             const char*gridname,
00200                                             const hsize_t refinement[3],
00201                                             const char*coordinate_system);
00202 
00209 F5_API F5Path*F5Rcreate_relative_vertex_Irefinement3D(hid_t File_id, double time,
00210                                                       const char*gridname,
00211                                                       const hsize_t current_refinement[3],
00212                                                       double target_time,
00213                                                       const hsize_t target_refinement[3]);
00214 
00219 F5_API F5Path*F5Rcreate_relative_vertex_Qrefinement3D(hid_t File_id, double time,
00220                                                       const char*gridname,
00221                                                       const hsize_t current_refinement[3],
00222                                                       double target_time,
00223                                                       const hsize_t target_refinement[3]);
00224 
00230 F5_API void F5Rcreate_downsampling(F5Path*Topology, const hsize_t*downsampling);
00231 
00239 F5_API void F5Rcreate_subsampling (F5Path*Topology, const hsize_t*subsampling);
00240 
00241 
00242 
00243 
00244 
00253 F5_API int F5Rlink_default_vertex_topology(F5Path*grid,
00254                                            const hsize_t target_refinement[3]);
00255 
00256 
00267 F5_API int F5Rset_timestep(F5Path*path, long timestep);
00268 
00280 F5_API long*F5Rget_timestep(F5Path*path, long*timestep); 
00281         
00282 #ifdef  __cplusplus
00283 }    /* extern "C" */
00284 #endif
00285 
00286 #endif  /* __F5R_H */
00287