Werner Benger Center for Computation & Technology Louisiana State University 1LCI 2010 F5 Tutorial.
-
Upload
freddie-barns -
Category
Documents
-
view
214 -
download
0
Transcript of Werner Benger Center for Computation & Technology Louisiana State University 1LCI 2010 F5 Tutorial.
LCI 2010 F5 Tutorial 1
FIBERBUNDLE HDF5
Werner Benger
Center for Computation & Technology
Louisiana State University
LCI 2010 F5 Tutorial 2
Data Model Motivation Often as hard to communicate as
technical issues People often don’t see the point Hard to convince people working within
a closed application context about necessity of a semantic layer:“just write the data somehow”“just create a compatible data reader”
LCI 2010 F5 Tutorial 3
Example: “Uniform Grid”
Is an precise mathematical concept:A data box with points uniformly distributed
in some coordinate spaceBasically a multidimensional data array with
bounding box information Occurs in many applications:
Simulation programsVisualization programs
LCI 2010 F5 Tutorial 4
Modeling a Uniform Grid Problem: every person implementing the
concept of a “uniform grid” implements it differentlyUniform grid written by application A is almost
certainly incompatible to the layout expected by some application B
Not a problem within application A’s context, but problematic when exchanging data with application B
are we sure we never want such data exchange?
LCI 2010 F5 Tutorial 5
The n2 problem
Equip application B with interface for A? Or application A with B interface? Then what with application C, D, E,…? Problem is an n2 effort Common data model counts in the
long term, even if short term overhead
LCI 2010 F5 Tutorial 7
The n2 problem
Application X can read HDF5 written by application YBut can it also understand it??
“application X can read HDF5”“which HDF5?”
LCI 2010 F5 Tutorial 9
Data Format vs. Data Model HDF5 does not solve the problem: HDF5 is an container for
multidimensional arrays with attributes○ Keeps away the burden of low-level I/O○ But does not uniquely specify how to
formulate the concept of a “uniform grid”○ Many alternatives possible, each of them
equally appropriate for a certain problem
LCI 2010 F5 Tutorial 10
HDF5 vs. F5
HDF5 is a container for multidimensional arrays, but leaves semantics of data open (“local” information, low-level description):
○ Have an array of 200x200x200 single-precision floats○ This dataset has an attribute named “time”
F5 provides means to describe relationships among data sets (arrays), (“global” information, high-level description) on top of HDF5
○ Have the evolution of a vertex-centered velocity vector field on a uniform grid in Cartesian coordinates
○ Have a scalar field on a surface (e.g. Gaussian curvature on curved surfaces)
LCI 2010 F5 Tutorial 11
Concept of the “F5” F5 data model approach:
Select and specify the only unique way of modeling that is most compatible within similar formulations within a larger context, e.g. “regular grids”, “curvilinear grids”, …
Not necessarily the most straightforward modeling for a specific problem, but only gradual increase of complexity for closely related problem
Not a list of myriads of independent cases – similar cases are modeled similarly
Inspired by mathematical concept of fiber bundles
LCI 2010 F5 Tutorial 12
What is a “fiber bundle”?
Short: a space E that can be written as the product of a base space B and a fiber space F, e.g. E = B × F (trivial bundle)
base space
fiber space at each point of base space
LCI 2010 F5 Tutorial 13
Gains of fiber bundle model Operations on the fiber space can be
performed independent from the base space
○ Vector operations on vector bundles: adding fields, subtracting fields, …
○ Data conversions and transformations, … Operations on the base space
independent from fiber space○ Selecting subsets, cropping and merging
regions…○ Topological relations among points, …
LCI 2010 F5 Tutorial 14
F5 concepts Nested fiber bundles:
Parameter space fiber bundleFiber bundle on discrete pointsFiber bundle on cellsFiber bundle on cell complexes
Support for multiple representations (redundant, but not trivial reproduction)
“Relative” information
LCI 2010 F5 Tutorial 15
Organizational Structure
F5 uses HDF5 grouping capabilities organize objects of equal propertiesAllows to iterate over groups of datasetsAllows to identify important informationMore independence from naming conventions
Information content per Fileall required information can be contained in a single
HDF5 file data can also be spread among multiple files and
uniquely merged file split possible on adjustable granularityOne or many simulations per file
LCI 2010 F5 Tutorial 16
F5 Hierarchy HDF5: Hierarchical Data Format HDF5 Formulation involves five hierarchy
levels (groups):○ Time slices group (generalized: parameter slices)○ Grid group○ Topology group○ Representation group○ Field group (with optional substructure)
/Time/Grid/Topology/Representation/Field/(fragment)/(components)
LCI 2010 F5 Tutorial 17
F5 Hierarchy Levels
Only two levels visible to end-user: “grid group” and “field group”
/Time/Grid/Topology/Representation/Field/
Substructure (fragment)/(components) is internalMight be implemented in low-level HDF5HDF5 might change, F5 API will not
LCI 2010 F5 Tutorial 18
Time Group/Time/Grid/Topology/Representation/Field/
Contains time attribute (textual name not used), groups all information that refers to this physical time
NO integer timestep! Data synchronization by physical time Compare different simulations
○ Exploring parameter space, e.g. weak and strong brill waves○ T=10M is 100 iteration steps on one run, but 150 iterations in
another run.○ Data features and evolution data
Non-equidistant time steps Generalization: multidimensional parameter space
LCI 2010 F5 Tutorial 19
Grid Group
/Time/Grid/Topology/Representation/Field/
Denotes a geometrical entity at a certain time step (static information)
Freely selectable name Information beyond Grid group is related Arbitrary number of Grid groups per time Optional integer timestep
LCI 2010 F5 Tutorial 20
F5 “Grid” group A geometrical entity at a certain point within
a parameter space, e.g. a uniform grid at t=10.0
Fibers over a parameter space
Is the base space of multiple fibers describing its properties
“topology” groups, e.g.Vertices, edges, faces, cells
LCI 2010 F5 Tutorial 21
Grid propertiesDescribe Grid as a set of points with
neighbourhood information
positional information for each coordinate system
data values for fields per coordinate system
multiple charts, supporting coordinate transformations
Derived information:
connectivity
edges, faces, ...
LCI 2010 F5 Tutorial 22
Topology Group
/Time/Grid/Topology/Representation/Field/
Denotes information on a topological component of a Grid
Internal naming scheme & attributesVertices, cells, edges, facesRefinement levelsInvisible to end-user (only via parameters)
Data below Topology group MUST be of same data space (number of elements)
LCI 2010 F5 Tutorial 23
Representation Group/Time/Grid/Topology/Representation/Field/
Denotes information related to a topological entityRelative to a chart (coordinate expressions)Relative to another Topology group
○ Spacelike: refinement information○ Timelike: evolution information (splitup/merge)
Naming scheme determined by relation object/CartesianChart3D//SphericalChart2D//VertexLevel0/
LCI 2010 F5 Tutorial 24
Field Group
/Time/Grid/Topology/Representation/Field/
Contains actual or procedural data setsType information: scalar, vector, tensor, covectorPositional information
○ Coordinate locations, vertices per cell, edges per cell, …
DATA sets or procedural field information:Components of compound expressionsCoefficients for procedural evaluationPartially covered data sets (Fragments)
LCI 2010 F5 Tutorial 25
Information provided by F5 Field type, e.g. vector, covector, …
no need to guess what the application has donedirectly specifiable in the file format
Coordinate system information, memory order (C-arrays, Fortran-arrays),…
Versioning informationEnables reading old files (ensured backward
compatibility)May also mix older and newer versions in same
file
LCI 2010 F5 Tutorial 26
Grid Types under Consideration
● Point Sets
● Unstructured Cell Data
● Tetrahedral Grids
● Regular Grids
● Uniform Grids
● Uniform Cartesian Grids
● Uniform Polar Grids
● Triangular Surfaces
● Quad-based Surfaces
● Irregular Surfaces
● Hierarchical Grids (AMR)
● Streamlines, Particle Trajectories, Geodesics
● Apparent Horizons
● Embedding Surfaces
LCI 2010 F5 Tutorial 27
Practice: Using F5 Currently source code is hosted at
http://f5.origo.ethz.ch/International/Swiss version of sourgeforgeF5 originally stems from a Germany-based project at the
Max-Planck Institute for Gravitational Physics (Albert-Einstein Institute Potsdam)
Need SVN client software http://subversion.apache.org/
F5 checkout (complete, w. HDF5 & examples)svn co https://svn.origo.ethz.ch/f5/apps/
LCI 2010 F5 Tutorial 28
Compiling F5
No “configure” required, just checkout & compile
~:$ svn co https://svn.origo.ethz.ch/f5/apps/ ~:$ cd appsapps:$ make
apps:$ make[1]: Leaving directory `…/apps/tools'
The Fiber Bundle HDF5 Library has been built successfully.
apps:$
… lots of stuff happens…
LCI 2010 F5 Tutorial 29
Directory Structurebin/ executables, add this to your $PATH
converters/ file converter source code
examples/ examples source code
F5/ the F5 library
GNUmakefile.rules part of the make system
hdf5-src/ snapshot of HDF5 library
lib/ shared libraries
make/ part of the make system
Makefile main make file
obj/ temporary files used for compilation
SVNLINKS SVN internal file
tools/ tools for F5
zlib123/ snapshot of the zlib library
LCI 2010 F5 Tutorial 32
Example: Galaxy Collision
Set up a collectionof “particles”
Radial distributionaround a mass center
Mass centerForIntruder galaxy
LCI 2010 F5 Tutorial 33
Example: Galaxy Collision
Set up particlesin “orbit” aroundgalaxy center
All velocities areTangential
High velocity in theCenter (Kepler rotation)Slow momentum
For intruder galaxy“shooting” to target galaxy
LCI 2010 F5 Tutorial 34
Coding the Galaxy Collisionmain()
{#define N 511 F5_vec3_point_t P[N]; F5_vec3_float_t V[N]; F5_vec3_float_t A[N]; float mass[N], weirdness[N]; for(i=2;i<N;i++) /* Initialize Kepler rotation */ {}
FileID = H5Fcreate("Particles.f5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
/* Time iteration (euler integration) */ for(t = 0; t<t_end; t+= dt, iteration++) {
for(i=0;i<N;i++) /* Outer Loop: for all particles */ { … euler integration …}/* Write the Data */ F5write_particle_cartesian3Dv(FileID, t*0.01, "GalaxyStars", P, N, 0,
"Velocity", F5T_VEC3_FLOAT, V, "Acceleration", F5T_VEC3_FLOAT, A, "mass", H5T_NATIVE_FLOAT, mass, "weirdness", H5T_NATIVE_FLOAT, weirdness, 0);
} } /* Close the File */ F5Xclose(FileID);}
apps/examples/Particles
LCI 2010 F5 Tutorial 35
Output: “Particle System”
~ $ cd apps/examples/Particles~/apps/examples/Particles $ makemkdir -p /home/apps/obj/arch-Linuxx86_64-Debug.el5/Particlesgcc -I/home/apps -I/home/apps/lib/arch-Linuxx86_64-Debug.el5 -DWITH_hdf5 -I/home/apps/hdf5-src -DWITH_zlib123 "-I/home/l/apps/zlib123/" -MD -shared -fPIC -DHAVE_LIBS_H -DFORTRAN_UNDERLINE -fPIC -ggdb -c /home//apps/examples/Particles/Particles.c -o Particles.orm -f /home/apps/bin/arch-Linuxx86_64-Debug.el5/Particlesunset MAKEFLAGS; g++ Particles.o -L/home/apps/lib/arch-Linuxx86_64-Debug.el5 -L/home/apps/lib/arch-Linuxx86_64-Debug.el5 -o /home/apps/bin/arch-Linuxx86_64-Debug.el5/Particles -lF5 -lhdf5 -lpthread -lzlib123 -lF5 -lhdf5 -lpthread -lzlib123 -lstdc++
Type 'make exec' to execute shared binary Particles
LCI 2010 F5 Tutorial 36
Output: “Particle System”~/apps/examples/Particles $ make execmake[1]: Nothing to be done for `vpath_Particles-bin'.
Type 'make exec' to execute shared binary Particles
/home/apps/bin/arch-Linuxx86_64-Debug.el5/Particles/home/apps/bin//Particles
~/apps/examples/Particles $ ls -ltotal 24M-rw-r--r-- 1 werner internalusers 149 Feb 25 08:22 Makefile-rw-r--r-- 1 werner internalusers 3.2K Feb 25 08:22 Particles.c-rw-r--r-- 1 werner internalusers 4.3K Feb 25 08:22 Particles.dsp-rw-r--r-- 1 werner internalusers 24M Feb 25 09:03 Particles.f5
~/apps/examples/Particles $
LCI 2010 F5 Tutorial 37
Inspecting the File
~/apps/examples/Particles $ h5ls Particles.f5Charts GroupTableOfContents Groupt=000000000.0000000000 Groupt=000000000.0100000000 Groupt=000000000.0200000000 Groupt=000000000.0300000000 Groupt=000000000.0400000000 Groupt=000000000.0500000000 Groupt=000000000.0600000000 Groupt=000000000.0700000000 Groupt=000000000.0800000000 Groupt=000000000.0900000000 Groupt=000000000.1000000000 Group
LCI 2010 F5 Tutorial 38
Inspecting 1st Time Slice~/apps/examples/Particles $ h5ls –r Particles.f5/t=000000000.0000000000
/t=000000000.0000000000/GalaxyStars Group/t=000000000.0000000000/GalaxyStars/Charts Group/t=000000000.0000000000/GalaxyStars/Charts/StandardCartesianChart3D Group/t=000000000.0000000000/GalaxyStars/Charts/StandardCartesianChart3D/GlobalChart -> /Charts/Cartesian3D/StandardCartesianChart3D/t=000000000.0000000000/GalaxyStars/Points Group/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D Group/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Acceleration Dataset {511}/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions Dataset {511}/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Velocity Dataset {511}/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/mass Dataset {511}/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/weirdness Dataset {511}
/Time / Grid / Topology / Coord / Field
LCI 2010 F5 Tutorial 39
Inspecting the File’s Fields
$ h5ls -rv Particles.f5/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions
Opened "Particles.f5" with sec2 driver./t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions Dataset {511/511}Attribute: TypeInfo scalar Type: shared-0:1:0:19496 enum native int { UnknownArrayType = 0 Contiguous = 1 SeparatedCompound = 2 Constant = 3 FragmentedContiguous = 4 FragmentedSeparatedCompound = 5 DirectProduct = 6 IndexPermutation = 7 UniformSampling = 8 FragmentedUniformSampling = 9 } Data: Contiguous Location: 0:1:0:19968 Links: 1 Modified: 2010-02-25 10:13:14 CST Comment: "Contiguous" Storage: 6132 logical bytes, 6132 allocated bytes, 100.00% utilization Type: shared-0:1:0:15464 struct { "x" +0 native float "y" +4 native float "z" +8 native float } 12 bytes
Type: struct { float x,y,z; };
LCI 2010 F5 Tutorial 40
Named Datatypes$ h5ls -rv Particles.f5/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions
Opened "Particles.f5" with sec2 driver./t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions Dataset {511/511}Attribute: TypeInfo scalar Type: shared-0:1:0:19496 enum native int { UnknownArrayType = 0 Contiguous = 1 SeparatedCompound = 2 Constant = 3 FragmentedContiguous = 4 FragmentedSeparatedCompound = 5 DirectProduct = 6 IndexPermutation = 7 UniformSampling = 8 FragmentedUniformSampling = 9 } Data: Contiguous Location: 0:1:0:19968 Links: 1 Modified: 2010-02-25 10:13:14 CST Comment: "Contiguous" Storage: 6132 logical bytes, 6132 allocated bytes, 100.00% utilization Type: shared-0:1:0:15464 struct { "x" +0 native float "y" +4 native float "z" +8 native float } 12 bytes
Type attributes shared among all datasetse.g. coordinate system
LCI 2010 F5 Tutorial 41
Inspecting the File’s Field Data
$ h5ls -d Particles.f5/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions
t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions Dataset {511} Data: (0) {-0.002, -0.002, 9.995}, {0, 0, 1e-06}, {0.0509902, 0.136946, 9.99645e-07}, {0.0926937, 0.11297, 9.99645e-07}, {0.124352, 0.0767509, 9.99645e-07}, {0.142536, 0.0322152, 9.99645e-07}, (6) {0.145273, -0.0158116, 9.99645e-07}, {0.132268, -0.062125, 9.99645e-07}, {0.104929, -0.101706, 9.99645e-07}, {0.0662198, -0.130266, 9.99645e-07}, {0.0203346, -0.144709, 9.99645e-07}, (11) {-0.0277542, -0.143471, 9.99645e-07}, {-0.0728353, -0.126686, 9.99645e-07}, {-0.110024, -0.0961719, 9.99645e-07}, {-0.135289, -0.0552364, 9.99645e-07}, {-0.145894, -0.00831518, 9.99645e-07}, (16) {-0.140689, 0.0395071, 9.99645e-07}, {-0.120238, 0.0830482, 9.99645e-07}, {-0.0867577, 0.11759, 9.99645e-07}, {-0.0438756, 0.139389, 9.99645e-07}, {0.00376106, 0.146083, 9.99645e-07}, (21) {0.0360555, 0.303467, 9.98582e-07}, {0.132638, 0.275317, 9.98582e-07}, {0.214846, 0.217333, 9.98582e-07}, {0.273773, 0.135796, 9.98582e-07}, {0.303032, 0.0395446, 9.98582e-07}, (26) {0.299453, -0.0609925, 9.98582e-07}, {0.263424, -0.15492, 9.98582e-07}, {0.198848, -0.23206, 9.98582e-07}, {0.112725, -0.284052, 9.98582e-07}, {0.0143853, -0.305263, 9.98582e-07}, (31) {-0.0855128, -0.293394, 9.98582e-07}, {-0.176144, -0.249731, 9.98582e-07}, {-0.247688, -0.179006, 9.98582e-07}, {-0.292391, -0.0888827, 9.98582e-07}, {-0.305408, 0.0108722, 9.98582e-07}, (36) {-0.28533, 0.109449, 9.98582e-07}, {-0.234332, 0.196165, 9.98582e-07}, {-0.157941, 0.261624, 9.98582e-07}, {-0.0644337, 0.298732, 9.98582e-07}, {0.0294392, 0.459661, 9.96813e-07},
LCI 2010 F5 Tutorial 42
Inspecting the File’s Field Data
$ h5ls -d Particles.f5/t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions
t=000000000.0000000000/GalaxyStars/Points/StandardCartesianChart3D/Positions Dataset {511} Data: (0) {-0.002, -0.002, 9.995}, {0, 0, 1e-06}, {0.0509902, 0.136946, 9.99645e-07}, {0.0926937, 0.11297, 9.99645e-07}, {0.124352, 0.0767509, 9.99645e-07}, {0.142536, 0.0322152, 9.99645e-07}, (6) {0.145273, -0.0158116, 9.99645e-07}, {0.132268, -0.062125, 9.99645e-07}, {0.104929, -0.101706, 9.99645e-07}, {0.0662198, -0.130266, 9.99645e-07}, {0.0203346, -0.144709, 9.99645e-07}, (11) {-0.0277542, -0.143471, 9.99645e-07}, {-0.0728353, -0.126686, 9.99645e-07}, {-0.110024, -0.0961719, 9.99645e-07}, {-0.135289, -0.0552364, 9.99645e-07}, {-0.145894, -0.00831518, 9.99645e-07}, (16) {-0.140689, 0.0395071, 9.99645e-07}, {-0.120238, 0.0830482, 9.99645e-07}, {-0.0867577, 0.11759, 9.99645e-07}, {-0.0438756, 0.139389, 9.99645e-07}, {0.00376106, 0.146083, 9.99645e-07}, (21) {0.0360555, 0.303467, 9.98582e-07}, {0.132638, 0.275317, 9.98582e-07}, {0.214846, 0.217333, 9.98582e-07}, {0.273773, 0.135796, 9.98582e-07}, {0.303032, 0.0395446, 9.98582e-07}, (26) {0.299453, -0.0609925, 9.98582e-07}, {0.263424, -0.15492, 9.98582e-07}, {0.198848, -0.23206, 9.98582e-07}, {0.112725, -0.284052, 9.98582e-07}, {0.0143853, -0.305263, 9.98582e-07}, (31) {-0.0855128, -0.293394, 9.98582e-07}, {-0.176144, -0.249731, 9.98582e-07}, {-0.247688, -0.179006, 9.98582e-07}, {-0.292391, -0.0888827, 9.98582e-07}, {-0.305408, 0.0108722, 9.98582e-07}, (36) {-0.28533, 0.109449, 9.98582e-07}, {-0.234332, 0.196165, 9.98582e-07}, {-0.157941, 0.261624, 9.98582e-07}, {-0.0644337, 0.298732, 9.98582e-07}, {0.0294392, 0.459661, 9.96813e-07},
LCI 2010 F5 Tutorial 44
F5ls – list F5 semantics
F5ls Particles.f5
----------- [Particles.f5] --------------
******* Timeslice for t=0 ******* Grid `GalaxyStars' (no timestep information) Root level vertex fields: Acceleration : Contiguous <0.1.4> Size: 511 vector (32bit) Positions : Contiguous <0.1.4> Size: 511 cartesian coordinates [float] (no range) Velocity : Contiguous <0.1.4> Size: 511 vector (32bit) mass : Contiguous <0.1.4> Size: 511 scalar (float) weirdness : Contiguous <0.1.4> Size: 511 scalar (float)
******* Timeslice for t=0.01 ******* Grid `GalaxyStars' (no timestep information) Root level vertex fields: Acceleration : Contiguous <0.1.4> Size: 511 vector (32bit) Positions : Contiguous <0.1.4> Size: 511 cartesian coordinates [float] (no range) Velocity : Contiguous <0.1.4> Size: 511 vector (32bit) mass : Contiguous <0.1.4> Size: 511 scalar (float) weirdness : Contiguous <0.1.4> Size: 511 scalar (float)
******* Timeslice for t=0.02 *******
make –C ~/apps/tools/F5ls/
LCI 2010 F5 Tutorial 46
2nd Example: Uniform Grid„Data Cube“
Time-dependent?
Same cube,
Many fields?
LCI 2010 F5 Tutorial 47
Coding the Uniform Grid, Imain()
{int NumOfDataValues = NumOfDataValuesX*NumOfDataValuesY*NumOfDataValuesZ; hid_t FileID, DataID; /* HDF5-Identifiers for opened File and opened DataSet */ hsize_t dims[3]; /* Number of Values in each dimension */ F5_vec3_point_t Origin; /* Starting Point of the Volume */ F5_vec3_float_t Delta; /* Stepsize between two Points on the Grid */ F5Path *fpath; float ScalarData[NumOfDataValuesX*NumOfDataValuesY*NumOfDataValuesZ];
/* Init Data */
/* Create the File */ FileID = H5Fcreate(FileName, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
LCI 2010 F5 Tutorial 48
Coding the Uniform Grid, II
fpath = F5Fwrite_uniform_cartesian3D( FileID, /* File identifier given by HDF5 */ 3.141592, /* Time Value of the field */ "SimpleScalar", /* Name of the Grid */ &Origin, /* Starting Point of the Volume */ &Delta, /* Spacing between Grid points */ dims, /* Number of Values in each direction */ "TestField", /* Name of the Field */ H5T_NATIVE_FLOAT, /* Type of the Values in the Field */ ScalarData, /* Pointer to the Data */ NULL, /* Coordinate System (default) */ F5P_DEFAULT); /* Default dataset properties */
F5close(fpath); H5Fclose(FileID);
LCI 2010 F5 Tutorial 49
Run: “Uniform Grid”
~ $ cd apps/examples/ScalarSimple~/apps/examples/ScalarSimple $ make… … … … … …
Type 'make exec' to execute shared binary ScalarSimple
/home/apps/bin/arch-xxxx-Debug/ScalarSimple
~/apps/examples/ScalarSimple $ make execmake[1]: Nothing to be done for `vpath_ScalarSimple-bin'.
Type 'make exec' to execute shared binary ScalarSimple
/home/apps/bin/arch-msys-Debug/ScalarSimple/home/apps/bin//ScalarSimple
LCI 2010 F5 Tutorial 50
Output: “Uniform Grid”
apps/examples/ScalarSimple $ ls -l
-rw-r--r-- 1 werner 24824 Feb 26 15:36 CellScalar.f5-rw-r--r-- 1 werner 184 Feb 25 08:22 Makefile-rw-r--r-- 1 werner 12930192 Feb 26 15:36 ManyGridMultiScalar.f5-rw-r--r-- 1 werner 4330832 Feb 26 15:36 MultiScalar.f5-rw-r--r-- 1 werner 16322 Feb 25 08:22 ScalarSimple.c-rw-r--r-- 1 werner 4802 Feb 25 08:22 ScalarSimple.dsp-rw-r--r-- 1 werner 153328 Feb 26 15:36 StaticScalar.f5-rw-r--r-- 1 werner 1526600 Feb 26 15:36 TimeDependentScalar.f5
LCI 2010 F5 Tutorial 51
Content: “Uniform Grid”
apps/examples/ScalarSimple $ h5ls StaticScalar.f5 Charts GroupTableOfContents Groupt=000000003.1415920000 Group
apps/examples/ScalarSimple $ h5ls -r StaticScalar.f5/t=000000003.1415920000 /t=000000003.1415920000/SimpleScalar Group/t=000000003.1415920000/SimpleScalar/Charts Group/t=000000003.1415920000/SimpleScalar/Charts/StandardCartesianChart3D Group/t=000000003.1415920000/SimpleScalar/Charts/StandardCartesianChart3D/GlobalChart -> /Charts/Cartesian3D/StandardCartesianChart3D/t=000000003.1415920000/SimpleScalar/Fields Group/t=000000003.1415920000/SimpleScalar/Fields/Positions Group/t=000000003.1415920000/SimpleScalar/Points Group/t=000000003.1415920000/SimpleScalar/Points/StandardCartesianChart3D Group/t=000000003.1415920000/SimpleScalar/Points/StandardCartesianChart3D/Positions Group/t=000000003.1415920000/SimpleScalar/Points/StandardCartesianChart3D/TestField Dataset {30, 20, 53}
LCI 2010 F5 Tutorial 52
Positions: “Uniform Grid”apps/examples/ScalarSimple $ $ h5ls -vr StaticScalar.f5/t=000000003.1415920000/SimpleScalar/Points/StandardCartesianChart3DOpened "StaticScalar.f5" with sec2 driver./t=000000003.1415920000/SimpleScalar/Points/StandardCartesianChart3D/Positions Group Attribute: DataspaceDims {3} Type: native int Data: 30, 20, 53 Attribute: base scalar Type: shared-0:1:0:15464 struct { "x" +0 native float "y" +4 native float "z" +8 native float } 12 bytes Data: {-1, -1, -1} Attribute: delta scalar Type: shared-0:1:0:15464 struct { "x" +0 native float "y" +4 native float "z" +8 native float } 12 bytes Data: {0.0377358, 0.1, 0.0666667}
Type: struct { float x,y,z; };
ResolutionBounding Box originCell size
LCI 2010 F5 Tutorial 53
Positions: “Uniform Grid”apps/examples/ScalarSimple $ $ h5ls -vr StaticScalar.f5/t=000000003.1415920000/SimpleScalar/Points/StandardCartesianChart3D/TestField Dataset {30/30, 20/20, 53/53} Attribute: TypeInfo scalar Type: shared-0:1:0:19496 enum native int { UnknownArrayType = 0 Contiguous = 1 SeparatedCompound = 2 Constant = 3 FragmentedContiguous = 4 FragmentedSeparatedCompound = 5 DirectProduct = 6 IndexPermutation = 7 UniformSampling = 8 FragmentedUniformSampling = 9 } Data: Contiguous
LCI 2010 F5 Tutorial 54
Positions: “Uniform Grid”apps/examples/ScalarSimple $ $ ../../bin/F5ls StaticScalar.f5 ----------- [StaticScalar.f5] --------------
******* Timeslice for t=3.14159 ******* Grid `SimpleScalar' (no timestep information) Root level vertex fields: Positions : UniformSampling <0.1.4> Size: 53x20x30 cartesian coordinates Range: [-1,-1,-1]-[0.962264,0.9,0.933333] TestField : Contiguous <0.1.4> Size: 53x20x30 scalar (float)
LCI 2010 F5 Tutorial 55
More Layout examples:a Uniform Grid
Information available:Data at time T=0.0grid name selected as “minkowski” data defined on verticesUsing default cartesian coordinates
/T=0/minkowski/Points/StandardCartesianChart3D/*
LCI 2010 F5 Tutorial 56
Constructing a Uniform Grid, II
Bounding box information is stored as procedural field called “Positions”Contains min/max information, or base and
delta
/T=0/minkowski/Points/StandardCartesianChart3D/Positions
LCI 2010 F5 Tutorial 57
Constructing a Uniform Grid, III
Defining a scalar field:
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE Dataset {43, 37, 19}
Defining a vector field:Optional field of struct or struct of fields
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS Group
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS/Dx Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS/Dy Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS/Dz Dataset {43, 37, 19}
LCI 2010 F5 Tutorial 58
F5 API Demo: static scalarF5Path*fpath;Hid_t FileID;
FileID = H5Fcreate(“Filename.f5”,H5F_ACC_TRUNC, /* Creation Flags */H5P_DEFAULT, /* File creation property list identifier */H5P_DEFAULT); /* File access property list identifier */
/* Write the Data */fpath = F5Fwrite_uniform_cartesian3D(FileID, /* File identifier given by HDF5 */
3.141592, /* Time Value of the field */"SimpleScalar", /* Name of the Grid */&Origin, /* Starting Point of the Volume */&Delta, /* Spacing between Grid points */dims, /* Number of Values in each direction */"TestField", /* Name of the Field */H5T_NATIVE_FLOAT, /* Type of the Values in the Field */ScalarData, /* Pointer to the Data */NULL, /* Coordinate System - We use a standard chart
here. */F5P_DEFAULT); /* Default dataset properties */
F5close(fpath); /* Close the DataSet */
/* Close the File */H5Fclose(FileID);
LCI 2010 F5 Tutorial 59
F5 API Demo: dynamic scalar
/* Step through the Time */for(j=0;j<NumOfTimeSteps;j++,Time+=0.5){
/* Init the Field for each time step */for(i=0;i<NumOfDataValues;i++){
ScalarData[i] = (float)i + Time; /* This is really simple and stupid... */}
fpath = F5Fwrite_uniform_cartesian3D(FileID, /* File identifier given by HDF5 */ Time, /* Time Value of the field */ "TimeScalar", /* Name of the Grid */ &Origin, /* Starting Point of the Volume */ &Delta, /* Spacing between Grid points */ dims, /* Number of Values in each direction */ "TestField", /* Name of the Field */ H5T_NATIVE_FLOAT, /* Type of the Values in the Field */ ScalarData, /* Pointer to the Data */ NULL, /* Coordinate System - We use a standard chart
here. */ F5P_DEFAULT); /* Default dataset properties */
F5close(fpath); /* Close the DataSet */}
LCI 2010 F5 Tutorial 60
F5 API demo: many fields F5write_uniform_cartesian3Dv(FileID, /* File identifier given by HDF5 */
Time, /* Time Value of the field */"TimeScalar", /* Name of the Grid */&Origin, /* Starting Point of the Volume */&Delta, /* Spacing between Grid points */dims, /* Number of Values in each direction */NULL, /* Coordinate System - We use a standard chart
here. */F5P_DEFAULT, /* Default dataset properties */"TestField", /* Name of the first Field */H5T_NATIVE_FLOAT, /* Type of the Values in the Field */ScalarData, /* Pointer to the Data */"TestField2", /* Name of the second Field */H5T_NATIVE_DOUBLE, /* Type of the Values in the Field */ScalarData2, /* Pointer to the Data */NULL, /* To end the List of Fields */H5T_NATIVE_DOUBLE, /* Whatever - does not matter */NULL /* To end the List of Fields */);
LCI 2010 F5 Tutorial 61
Example: Uniform Grid with many fields (h5ls)
H5ls minkowski-0000.f5
Charts Group
T=0 Group
T=0.119047619047619041010577234374 Group
T=0.238095238095238193043456931264 Group
T=0.357142857142857372831912243782 Group
T=0.476190476190476552620367556301 Group
T=0.595238095238095232808461787499 Group
TableOfContents Group
Note: actual time information is specified as float attribute, not via group names.
LCI 2010 F5 Tutorial 62
Example: Uniform Grid with many fields (h5ls -r)H5ls -r minkowski-0000.f5
/T=0/minkowski/Points/StandardCartesianChart3D Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/gxx Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/gxy Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/gxz Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/gyy Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/gyz Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/gzz Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/gxx Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/gxy Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/gxz Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/gyy Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/gyz Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/gzz Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/Positions Group
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS Group
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS/Dx Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS/Dy Dataset {43, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/STATICCONFORMAL::CONFAC_1DERIVS/Dz Dataset {43, 37, 19}
/T=0.119047619047619041010577234374 Group
/T=0.119047619047619041010577234374/minkowski Group
LCI 2010 F5 Tutorial 63
F5ls (data semantics)
F5ls minkowski-0000.f5 minkowski-0060.f5 minkowski-0120.f5 minkowski-0180.f5
******* Timeslice for t=0 *******
Grid `minkowski', showing vertex fields:
ADMBASE::CURV : SeparatedCompound <0.1.0> 43x37x19 metric tensor
ADMBASE::LAPSE : Contigous <0.1.0> 43x37x19 scalar
ADMBASE::METRIC : SeparatedCompound <0.1.0> 43x37x19 metric tensor
Positions : UniformSampling <0.1.0> 43x37x19 cartesian coordinates [-0.5,-0.5,-0.5]-[0.5,0.5,0.5]
STATICCONFORMAL::CONFAC : Contigous <0.1.0> 43x37x19 scalar
STATICCONFORMAL::CONFAC_1DERIVS : SeparatedCompound <0.1.0> 43x37x19 vector
STATICCONFORMAL::CONFAC_2DERIVS : SeparatedCompound <0.1.0> 43x37x19 metric tensor
******* Timeslice for t=0.119048 *******
Grid `minkowski', showing vertex fields:
ADMBASE::CURV : SeparatedCompound <0.1.0> 43x37x19 metric tensor
ADMBASE::LAPSE : Contigous <0.1.0> 43x37x19 scalar
ADMBASE::METRIC : SeparatedCompound <0.1.0> 43x37x19 metric tensor
Positions : UniformSampling <0.1.0> 43x37x19 cartesian coordinates [-0.5,-0.5,-0.5]-[0.5,0.5,0.5]
STATICCONFORMAL::CONFAC : Contigous <0.1.0> 43x37x19 scalar
STATICCONFORMAL::CONFAC_1DERIVS : SeparatedCompound <0.1.0> 43x37x19 vector
STATICCONFORMAL::CONFAC_2DERIVS : SeparatedCompound <0.1.0> 43x37x19 metric tensor
LCI 2010 F5 Tutorial 64
Storing fragmented data on Uniform Grid Information available:
Data at time T=0.0grid name selected as “minkowski” data defined on verticesUsing default Cartesian coordinatesData are not contiguous but exists in many
fragments – internal structure of fields
/T=0/minkowski/Points/StandardCartesianChart3D/*/?
LCI 2010 F5 Tutorial 65
Constructing fragmented field on Uniform Grid, II Fields are not data sets, but a group
containing data sets, each a fragment
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE/box0 Dataset {10, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE/box1 Dataset {10, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE/box2 Dataset {10, 37, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE/box3 Dataset {13, 37, 19}
LCI 2010 F5 Tutorial 66
Constructing fragmented field data on Uniform Grid, II Positional information per fragment
provided once in the Positions/ component
/T=0/minkowski/Points/StandardCartesianChart3D/Positions Group
/T=0/minkowski/Points/StandardCartesianChart3D/Positions/box0 Group w. attrib. (min,max)
/T=0/minkowski/Points/StandardCartesianChart3D/Positions/box1 Group w. attrib. (min,max)
/T=0/minkowski/Points/StandardCartesianChart3D/Positions/box2 Group w. attrib. (min,max)
/T=0/minkowski/Points/StandardCartesianChart3D/Positions/box3 Group w. attrib. (min,max)
Constraint: all fields per representation group must be fragmented same way
Consistent layout ensured
LCI 2010 F5 Tutorial 67
Example: Fragmented data on a Uniform Grid with many fields (h5ls)
h5ls minkowski-0000:0000.f5
Charts Group
T=0 Group
T=0.119047619047619041010577234374 Group
T=0.238095238095238193043456931264 Group
T=0.357142857142857372831912243782 Group
T=0.476190476190476552620367556301 Group
T=0.595238095238095232808461787499 Group
TableOfContents Group
h5ls minkowski-0000:0000.f5/T=0/minkowski/Points/StandardCartesianChart3D
ADMBASE::CURV Group
ADMBASE::LAPSE Group
ADMBASE::METRIC Group
Positions Group
STATICCONFORMAL::CONFAC Group
STATICCONFORMAL::CONFAC_1DERIVS Group
STATICCONFORMAL::CONFAC_2DERIVS Group
LCI 2010 F5 Tutorial 68
Example: Uniform Grid with many fragmented fields (h5ls)H5ls -r minkowski-0000:0000.f5
/T=0 Group
/T=0/minkowski Group
/T=0/minkowski/Points/StandardCartesianChart3D Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/node-00000 Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/node-00000/gxx Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/node-00000/gxy Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/node-00000/gxz Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/node-00000/gyy Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/node-00000/gyz Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::CURV/node-00000/gzz Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE/node-00000 Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/node-00000 Group
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/node-00000/gxx Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/node-00000/gxy Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/node-00000/gxz Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/node-00000/gyy Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/node-00000/gyz Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::METRIC/node-00000/gzz Dataset {23, 20, 19}
/T=0/minkowski/Points/StandardCartesianChart3D/Positions Group
…
LCI 2010 F5 Tutorial 69
Fragmented data F5ls (data semantics)
F5ls minkowski-*.f5
******* Timeslice for t=0 *******
Grid `minkowski', showing vertex fields:
ADMBASE::CURV : FragmentedSeparatedCompound <0.1.0> 43x37x19 metric tensor
ADMBASE::LAPSE : FragmentedContigous <0.1.0> 43x37x19 scalar
ADMBASE::METRIC : FragmentedSeparatedCompound <0.1.0> 43x37x19 metric tensor
Positions : UniformSampling <0.1.0> 43x37x19 cartesian coordinates [-0.5,-0.5,-0.5]-[0.5,0.5,0.5]
STATICCONFORMAL::CONFAC : FragmentedContigous <0.1.0> 43x37x19 scalar
STATICCONFORMAL::CONFAC_1DERIVS : FragmentedSeparatedCompound <0.1.0> 43x37x19 vector
STATICCONFORMAL::CONFAC_2DERIVS : FragmentedSeparatedCompound <0.1.0> 43x37x19 metric tensor
******* Timeslice for t=0.119048 *******
Grid `minkowski', showing vertex fields:
ADMBASE::CURV : FragmentedSeparatedCompound <0.1.0> 43x37x19 metric tensor
ADMBASE::LAPSE : FragmentedContigous <0.1.0> 43x37x19 scalar
ADMBASE::METRIC : FragmentedSeparatedCompound <0.1.0> 43x37x19 metric tensor
Positions : UniformSampling <0.1.0> 43x37x19 cartesian coordinates [-0.5,-0.5,-0.5]-[0.5,0.5,0.5]
STATICCONFORMAL::CONFAC : FragmentedContigous <0.1.0> 43x37x19 scalar
STATICCONFORMAL::CONFAC_1DERIVS : FragmentedSeparatedCompound <0.1.0> 43x37x19 vector
STATICCONFORMAL::CONFAC_2DERIVS : FragmentedSeparatedCompound <0.1.0> 43x37x19 metric tensor
…
LCI 2010 F5 Tutorial 70
Constructing uniform AMR Information available:
Data at time T=0.0grid name selected as “minkowski” data defined on verticesUsing default cartesian coordinatesData are available in multiple refinement levels
/T=0/minkowski/Points/StandardCartesianChart3D/*/?
LCI 2010 F5 Tutorial 71
Constructing uniform AMR, II Levels specified via Topology group
/T=0/minkowski/VertexLevel0/StandardCartesianChart3D/ADMBASE::LAPSE Dataset {10, 10, 10}/T=0/minkowski/VertexLevel1/StandardCartesianChart3D/ADMBASE::LAPSE Dataset {20, 20, 20}/T=0/minkowski/VertexLevel2/StandardCartesianChart3D/ADMBASE::LAPSE Dataset {40, 40, 40}/T=0/minkowski/VertexLevel3/StandardCartesianChart3D/ADMBASE::LAPSE Dataset {80, 80, 80}
Field substructure still applicable:Field may be fragmentedField fragments may be omittedCompound field may be separated into
componentsField may be procedural (bounding box per
fragment)
LCI 2010 F5 Tutorial 72
Example: AMR, Fragmented Example in:
apps/examples/FragmentedField/
Demonstrates○ Fragmentation○ Refinement○ Time dependency○ Multiple fields
LCI 2010 F5 Tutorial 73
F5ls FragmentedField.f5
F5ls option “-r” displays refinement******* Timeslice for t=0.9 ******* Grid `DemoGrid' [ 10] <<< Points >>> NonsenseScalar : FragmentedContiguous <0.1.3> Size: 129x89x45 scalar (float) Positions : UniformSampling <0.1.3> Size: 129x89x45 cartesian coordinates [float] Range: [-10,-5,-2.5]-[15.6,12.6,6.3] SensitiveVectors : FragmentedContiguous <0.1.3> Size: 129x89x45 vector (32bit) <<< VertexLevel_2x2x2 >>> NonsenseScalar : FragmentedContiguous <0.1.3> Size: 129x89x45 scalar (float) Positions : UniformSampling <0.1.3> Size: 129x89x45 cartesian coordinates [float] Range: [-10,-5,-2.5]-[2.8,3.8,1.9] SensitiveVectors : FragmentedContiguous <0.1.3> Size: 129x89x45 vector (32bit) <<< VertexLevel_3x3x3 >>> NonsenseScalar : FragmentedContiguous <0.1.3> Size: 129x89x45 scalar (float) Positions : UniformSampling <0.1.3> Size: 129x89x45 cartesian coordinates [float] Range: [-10,-5,-2.5]-[-3.6,-0.6,-0.3] SensitiveVectors : FragmentedContiguous <0.1.3> Size: 129x89x45 vector (32bit)
LCI 2010 F5 Tutorial 74
Constructing multipatch data Information available:
Data at time T=0.0grid name selected as “minkowski” data defined on verticesUsing multiple coordinate systems
/T=0/minkowski/Points/StandardCartesianChart3D/*/?
LCI 2010 F5 Tutorial 75
Constructing multipatch data, II
Coordinate systems specified via Representation group
/T=0/minkowski/Points/CartesianPatch0/ADMBASE::LAPSE Dataset {10, 10, 10}/T=0/minkowski/Points/CartesianPatch1/ADMBASE::LAPSE Dataset {10, 10, 10}/T=0/minkowski/Points/CartesianPatch2/ADMBASE::LAPSE Dataset {10, 10, 10}/T=0/minkowski/Points/StandardCartesianChart3D/ADMBASE::LAPSE Dataset {30, 30, 30}
Field & refinement substructure still applicable
Global coordinate system optional Coordinate transformation information
specified elsewhere (not shown here)
LCI 2010 F5 Tutorial 78
Features Supported by F5 (II)
Extended data types ○ vector fields ○ tensor fields ○ covariant and contravariant indices ○ coordinate transformation rules for vector and tensor fields
Transparent support for different field layouts ○ arrays of structs ○ struct of arrays
Arbitrary dimensions ○ one-dimensional data ○ two-dimensional data (surfaces) ○ three-dimensional data (volumes) ○ higher dimensions up to HDF5 limit
LCI 2010 F5 Tutorial 79
Features Supported by F5(III)
Structured and unstructured grid types particle systems triangular surfaces regular surfaces uniform grids regular grids adaptive hierarchical meshes (AMR data) curvilinear grids tetrahedral grids (n.i.) hexahedral grids (n.i.) unstructured grids (n.i.)