diff --git a/.gitattributes b/.gitattributes index cf6ca26..1faa2d3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,33 +13,9 @@ /config.sub -text /configure.ac -text /depcomp -text -doc/Building.html -text -doc/BuildingHDF5.html -text -doc/Downloading.html -text doc/Doxyfile -text -doc/H5PartExpress.html -text -doc/H5PartIDL.html -text -doc/H5PartParaview.html -text -doc/H5PartTools.html -text -doc/H5PartVisIt.html -text -doc/H5PartVisIt/cloud_visit.png -text -doc/H5PartVisIt/cloud_visit.s.png -text -doc/H5PartVisIt/cloud_visit_2D.png -text -doc/H5PartVisIt/cloud_visit_2D.s.png -text -doc/H5PartVisIt/visit_query1.png -text -doc/H5PartVisIt/visit_query1.s.png -text doc/H5X_File_Format.txt -text -doc/H5tools/H5tools.html -text -doc/H5tools/H5tools_files/snapshot1.jpg -text -doc/InternalLayout.html -text -doc/Makefile.am -text -doc/UsingC.html -text -doc/UsingF.html -text -doc/collision_6.png -text -doc/collision_6.s.png -text doc/doxyfooter -text -doc/h5part.html -text -doc/layout.png -text /install-sh -text /license.txt -text /missing -text diff --git a/doc/Building.html b/doc/Building.html deleted file mode 100644 index 0402a7d..0000000 --- a/doc/Building.html +++ /dev/null @@ -1,262 +0,0 @@ - - - -Put your title here!! - - - - - -
- - - - Building H5Part - - - -

Building H5Part

- - -
- -

Quickstart for the impatient

-
- -
    - -
  1. Configure:
    - For the serial implementation -
    -    ./configure
    -
    - For the parallel implementation configure with -
    -    ./configure --enable-parallel
    -
    - If you also want to build fortran bindings, add the - --enable-fortran flag to the configure line. -
  2. - -

  3. Make the Library:
    - Type make to build the library. The libraries are - named accordingly. -
      -
    • libH5Part.a: Serial C/C++ Library.
    • -
    • libpH5Part.a: Parallel C/C++ library.
    • -
    • libH5PartF.a: Serial F77/F90 library.
    • -
    • libpH5PartF.a: Parallel F77/F90 library.
    • -
    -
  4. - -

  5. Make Regression Tests and Examples:
    - Just type make tests to build regression tests - and/or example programs for H5Part. These tests are -
      -
    • H5PartF: Fortran example (only build if --enable-fortran - is specified).
    • -
    • H5PartFpar: Parallel Fortran example (only built if both - --enable-fortran and --enable-parallel are specified).
    • -
    • H5PartTest: Serial C example. This test writes a sample - datafile and then reopens it for reading. It demonstrates - the most basic reading/writing capabilities.
    • -
    • H5PartTestP: Parallel C example (only built if - --enable-parallel is specified). This program only works - as an MPI/parallel program.
    • -
    • Bench: This program will only be built if - --enable-parallel is specified. It compares the - performance of raw binary - I/O (one file per processor), raw binary MPI-IO based - parallel I/O to a single file, and the parallel H5Part/HDF5 to - a single file. Generally, H5Part should be very close to the - MPI-IO implementation in terms of performance, but slower - than one-file-per-processor. If HDF5 is slower the - MPI-IO, it would indicate that some performance tuning - will be required for your platform (contact us, and we will - see what we can do!).
    • -
    -
  6. -

  7. Building Your Own Programs:
    - There are many different subtleties to linking on various - computer platforms, but typically one does the following. -
      -
    • C/C++ Serial: -
      #include - < H5Part.h > into your - source file. -
      $CC -Ipath_to_H5Part.h - -Ipath_to_hdf5.h -o outfile - MyFile.cc -Lpath_to_libH5Part.a -lH5Part - -Lpath_to_libhdf5 -lhdf5 -lz -lsz -
    • -
    • C/C++ Parallel: -
      #include - < H5Part.h > into your - source file. -
      $MPICC -Ipath_to_H5Part.h - -Ipath_to_hdf5.h -DPARALLEL_IO - -DH5_HAVE_PARALLEL -o outfile - MyFile.cc -Lpath_to_libH5Part.a -lH5Part - -Lpath_to_libhdf5 -lhdf5 -lz -lsz -
    • - -
    • Fortran Serial: -
      include - 'H5Part.inc' into your - source file. -
      $FC -Ipath_to_H5Part.h - -Ipath_to_hdf5.h -o outfile - MyFile.cc -Lpath_to_libH5PartF.a -lH5PartF - -Lpath_to_libhdf5 -lhdf5 -lz -lsz -lc -
    • -
    • Fortran Parallel: -
      include - 'H5Part.inc' into your - source file. -
      $MPIF90 -Ipath_to_H5Part.h - -o outfile - MyFile.cc -Lpath_to_libpH5PartF.a -lpH5PartF - -Lpath_to_libhdf5 -lhdf5 -lz -lsz -lc -
    • -

    - -
- -
- - -

Details for H5Part Configure and Build

-
- - - -

Configure Options

-
- H5Part uses GNU Autoconf to generate a Makefile from the makefile - template called Makefile.in. - The configure script pays attention to the following - configure options;

- -

-

- - -

Make Options

- - - - - -

Environment Variables for Configure

-
- The - configuration script is of limited intelligence. Sometimes, you - have to define the following environment variables in order to - help it on its way. You will often only need to tell it where to - find the HDF5 libraries (H5ROOT for serial or - PHDF5ROOT for parallel builds). All of these - environment variables can also be overidden in the Makefile that - is generated by the autoconfigure script. - The configure script pays attention to the following - environment variables; -

- -

- -

Common compiler environemt variables for NERSC platforms

- -
-NOTE: You might need to set the MPI library path (MPILIB) and MPI includes (MPIIINC) if they are in non standard places. For example:
-MPILIB=-L/usr/lpp/ppe.poe/lib -lmpi_r MPIINC=-I/usr/lpp/ppe.poe/include/thread -

How to set the variables for configure:

-It is very simple just call env with the variables together with configure. Notice the quotes in MPILIB. -
-% env CC=icc CXX=icc F90=ifort MPICC=icc  MPILIB=-L/usr/lib/ -lmpi MPIINC=-I/usr/include ./configure (configure options follow here)
-
-In the worst case, you can edit the src/Makefile.am and test/Makefile.am as - needed to perform the proper build. -
- diff --git a/doc/BuildingHDF5.html b/doc/BuildingHDF5.html deleted file mode 100755 index cb8e736..0000000 --- a/doc/BuildingHDF5.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Put your title here!! - - - - -
- - - - Building HDF5 - - - -

Building H5Part

- - -
- -

Configure options

- -To set the installation path configure with -
-	./configure --prefix=your hdf5 installation full path, e.g.--prefix=/usr/local/hdf5 
-
- For the serial implementation configure with -
-	./configure
-
- For the parallel implementation configure with -
-	./configure --enable-parallel
-
-To enable shared objects configure with -
-	./configure --enable-shared 
-
- -

Environment Variables

- -To add HDF5 to your PATH and LD_LIBRARY_PATH edit your -.tcshr, or .cshrc depending on the shell you are using and add -
-setenv HDF5 "your hdf5 installation full path"
-setenv PATH ${PATH}:${HDF5}/bin
-setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${HDF5}/lib
-
-if you are using bash, add to your .bashrc -
-export HDF5="your hdf5 installation full path"
-export  PATH=$PATH:${HDF5}/bin
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HDF5}/lib
-
- -Open a new terminal or do a -source .tcshr (.cshrc, .bashrc) in the one that you are using. - -You can continue downloading and installing H5Part. -
diff --git a/doc/Downloading.html b/doc/Downloading.html deleted file mode 100644 index 38cd546..0000000 --- a/doc/Downloading.html +++ /dev/null @@ -1,37 +0,0 @@ - - - -Downloading HDF5 and H5Part - - - - -
- - Downloading HDF5 and H5Part - - - -

Downloading H5Part

-
- -
- -

Downloading HDF5

- You will need to download and install the HDF5 library and link H5Part with it. - -

- Note: you might already have libz in your system and you will not need libsz unless you build hdf5 with support for it. -

- -

Downloading H5Part

- H5Part is available for download from Berkeley Labs Codeforge system https://codeforge.lbl.gov/projects/h5part. - -
diff --git a/doc/H5PartExpress.html b/doc/H5PartExpress.html deleted file mode 100755 index b79c417..0000000 --- a/doc/H5PartExpress.html +++ /dev/null @@ -1,14 +0,0 @@ - - - -Put your title here!! - - - - - -
- -Under construction, will be here soon. -
- diff --git a/doc/H5PartIDL.html b/doc/H5PartIDL.html deleted file mode 100755 index 8276d7f..0000000 --- a/doc/H5PartIDL.html +++ /dev/null @@ -1,15 +0,0 @@ - - - -Put your title here!! - - - - - -
- -Under construction, will be here soon. - -
- diff --git a/doc/H5PartParaview.html b/doc/H5PartParaview.html deleted file mode 100755 index 8276d7f..0000000 --- a/doc/H5PartParaview.html +++ /dev/null @@ -1,15 +0,0 @@ - - - -Put your title here!! - - - - - -
- -Under construction, will be here soon. - -
- diff --git a/doc/H5PartTools.html b/doc/H5PartTools.html deleted file mode 100644 index d03daca..0000000 --- a/doc/H5PartTools.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Put your title here!! - - - - -
- - - - H5Part Utility Tools - - - -

H5Part Utility Tools

- - -
- - -

h5pAttrib

-
- -h5pAttrib is an inspection tool that prints to stdout the number of timesteps in a file - the file attributes, the step attributes, the dataset names and their values. It's simpler to use than h5dump. - Usage options are given by typing: -

-
-% ./h5pAttrib -h
-usage: h5pAttrib [OPTIONS] file
-
-  OPTIONS
-   -h, --help           Print help page
-   -n, --nstep          Print number of steps
-   -A, --fileA          Print file attributes
-   -a, --stepA          Print step attributes & values for time step n
-   -d, --dataset        Print data sets names & values for time step n
-   -H, --header         Print shorter version without the values
-
- -

Examples

-
    -
  1. - Show file attribute names & values of sample.h5part -
  2. - h5pAttrib -A sample.h5part -
  3. - Show step attribute names for time step 5 of sample.h5part -
  4. - h5pAttrib -a 5 -H sample.h5part -
- - -

h5pToGNUplot

-
- -h5pToGNUplot is a converter from H5Part to two column ASCII text format for loading into GNUplot. Usage options are given by typing: -

-
-% ./h5pToGNUplot -h
-
-usage: h5pToGNUplot -t TIMESTEP -1 VARIABLE#1 -2 VARIABLE#2 -i INPUTFILE [OPTIONAL_FLAGS]
-
-  FLAGS
-   -h, --help           Print help page
-   -1, --1var           (REQUIRED) Takes first variable parameter
-   -2, --2var           (REQUIRED) Takes second variable parameter
-   -i, --input          (REQUIRED) Takes input file name
-   -t, --timestep       (REQUIRED) Sets the timestep (Value -1 will result in dumping values of all timesteps.)
-   -o, --output         (OPTIONAL) Takes output file name (without this flag, the program will print to stdout)
-   -n, --number         (OPTIONAL) Sets number of output points
-   -s, --start          (OPTIONAL) Sets the starting particle index
-
- -

Examples

-
    -
  1. - Create a GNU plot file output.txt from sample.h5part by ploting x vs px for timestep 54 -
  2. - h5pToGNUplot -t 54 -1 x -2 px -i sample.h5part -o output.txt -
  3. - Create a GNU plot file output.txt from sample.h5part by ploting x vs px for timestep 54 - using 1200 points from particle index 76 -
  4. - h5pToGNUplot -t 54 -1 x -2 px -i sample.h5part -o output.txt -s 76 -n 1200 -
- -
- diff --git a/doc/H5PartVisIt.html b/doc/H5PartVisIt.html deleted file mode 100755 index 857cbc7..0000000 --- a/doc/H5PartVisIt.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -H5Part: VisIt Plugins - - - - - -
-

H5Part: VisIt Plugins

-

Introduction

-

-VisIt is an open source point-and-click 3D scientific visualization application that supports most of the common visualization techniques on structured and unstructured grids. One of its advantages is that it employs a distributed and parallel architecture in order to handle extremely large data sets interactively. VisIt's rendering and data processing capabilities are split into viewer and engine components that may be distributed across multiple machines. See this link for details on how to run VisIt in NERSC. -

-

-VisIt achieves extensibility through the use of dynamically loaded plugins. All of VisIt's plots, operators, and database readers are implemented as plugins and are loaded at run-time from the plugin directory. New plugins can be added simply by installing them in this directory. VisIt comes with a graphical plugin creation tool, which greatly simplifies the process of creating new plugins. The user describes the properties of the plugin and then the tool generates most of the code necessary to implement the plugin. For example, in the case of an operator, the plugin creation tool creates the code necessary for the graphical user interface attribute window; the C++, Python, and Java interfaces; and the code necessary to interface to VisIt. The only code you need to write is the C++ code that actually performs the operation. -

-

H5Part in VisIt

-

Database Reader Plugin

-

-We wrote a Multiple Time Step Multiple Domain database reader to read H5Part data into VisIt. H5Part datasets should be named with the extension ".h5part" to be recognized by the reader since VisIt does not have a format selection mechanism at the time of reading. Figure 1 shows a Pseudocolor plot of a data set and Figure 2 shows a Scatter plot x-y (any combination of x, px, y, py, z, pz, id are possible). -

-

- - - - - - - - - - - - -
- -
-Figure 1. VisIt User interface showing an H5Part particle file rendered as spheres using the Pseudocolor plot. -
- -
-Figure 2. A Scatter plot of the x-y projection of the particles. -
-

- -

-VisIt provides a Query interface, for single time steps and for time series. Figure 3 shows the query interace over time for the sum of the x position and the z position of the particoes. -

-

- - - - - - -
- -
-Figure 3. VisIt's Time Query Output. -
-

-

Operator Plugins

-

-

Particle Random Sampler

- - -

-

-

Particle Binner

-

-
diff --git a/doc/H5PartVisIt/cloud_visit.png b/doc/H5PartVisIt/cloud_visit.png deleted file mode 100644 index 4dc11aa..0000000 Binary files a/doc/H5PartVisIt/cloud_visit.png and /dev/null differ diff --git a/doc/H5PartVisIt/cloud_visit.s.png b/doc/H5PartVisIt/cloud_visit.s.png deleted file mode 100644 index 65be8d3..0000000 Binary files a/doc/H5PartVisIt/cloud_visit.s.png and /dev/null differ diff --git a/doc/H5PartVisIt/cloud_visit_2D.png b/doc/H5PartVisIt/cloud_visit_2D.png deleted file mode 100644 index a6163bc..0000000 Binary files a/doc/H5PartVisIt/cloud_visit_2D.png and /dev/null differ diff --git a/doc/H5PartVisIt/cloud_visit_2D.s.png b/doc/H5PartVisIt/cloud_visit_2D.s.png deleted file mode 100644 index c98cb29..0000000 Binary files a/doc/H5PartVisIt/cloud_visit_2D.s.png and /dev/null differ diff --git a/doc/H5PartVisIt/visit_query1.png b/doc/H5PartVisIt/visit_query1.png deleted file mode 100644 index c6f6d4b..0000000 Binary files a/doc/H5PartVisIt/visit_query1.png and /dev/null differ diff --git a/doc/H5PartVisIt/visit_query1.s.png b/doc/H5PartVisIt/visit_query1.s.png deleted file mode 100644 index 37247aa..0000000 Binary files a/doc/H5PartVisIt/visit_query1.s.png and /dev/null differ diff --git a/doc/H5tools/H5tools.html b/doc/H5tools/H5tools.html deleted file mode 100644 index 94e46ac..0000000 --- a/doc/H5tools/H5tools.html +++ /dev/null @@ -1,417 +0,0 @@ -H5Part Tools How-to - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-

H5Part - Tools How-to

-
-

Table - of Contents

-
-

- [1] Quick Guide

-

--- - For h5pAttrib
-
- [2] To see number of timesteps in a h5part file
-
- [3] To see file attributes in a h5part - file
-
- [4] To see step attributes in a h5part - file
-
- [5] To see dataset in a h5part file
-
- [6] Providing more than one flag at once for h5pAttrib

-

--- - For h5pToGNUplot
-
- [7] What parameters to provide
-
- [8] How to create an input file to GNUplot

-

 

-

<back - to top>

-

 

-

[1] - Quick Guide

-

Executing the program with - -h option will display a concise help page.

-

$>./h5pAttrib - -h

-

usage: h5pAttrib [OPTIONS] - file

-

OPTIONS
- -h, --help Print help page
- -n, --nstep Print number of steps
- -A, --fileA Print file attributes
- -a n, --stepA n Print step attributes & values for time step n
- -d n, --dataset n Print data sets names & values for time step - n
- -H, --header Print shorter version without the values

-

Examples:

-

1) Show file attribute names - & values of sample.h5part

-

h5pAttrib -A sample.h5part
- OR
- h5pAttrib --fileA sample.h5part

-

2) Show step attribute names - for time step 5 of sample.h5part

-

h5pAttrib -a 5 -H sample.h5part
- OR
- h5pAttrib --stepA 5 -H sample.h5part

-


- $> ./h5pToGNUplot -h

-

usage: h5pToGNUplot -t TIMESTEP - -1 VARIABLE#1 -2 VARIABLE#2 -i INPUTFILE [OPTIONAL_FLAGS]

-

FLAGS
- -h, --help Print help page

- -1 par, --1var par (REQUIRED) - Takes first variable parameter to "par"
- -2 par, --2var par (REQUIRED) Takes second variable parameter to "par"
- -i file, --input file (REQUIRED) Takes input file name to "file"
-
-t step, --timestep - step (REQUIRED) Sets the timestep to "step" (Value -1 will - result in dumping values of all timesteps.)
- -o file, --output file (OPTIONAL) Takes output file name to "file" - (without this flag, the program will print to stdout)
- -n num, --number num (OPTIONAL) Sets number of output points to "num"
- -s idx, --start idx (OPTIONAL) Sets the starting particle index to - "idx"

-


- Examples:

-

1) Create GNU plot file - output.txt from sample.h5part by ploting x vs px for timestep 54

-

h5pToGNUplot -t 54 -1 x - -2 px -i sample.h5part -o output.txt

-

2) Create GNU plot file - output.txt from sample.h5part by ploting x vs px for timestep 54
- using 1200 points from particle index 76

-

h5pToGNUplot -t 54 -1 x - -2 px -i sample.h5part -o output.txt -s 76 -n 1200

-

 

-

<back - to top>

-

 

-

--- - For h5pAttrib

-

 

-

[2] - To see number of timesteps in a h5part file

-

Executing the program h5pAttrib with -n flag will display the number - of timesteps in the file.

-

EXAMPLE>>

-

$> - ./h5pAttrib -n sample.h5part

-

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

Printing number of timesteps - for: sample.h5part ...

-

There are total 252 number - of timesteps.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

done
-

-

 

-

<back - to top>

-


- [3] To see file attributes - in a h5part file

-

File attribute contains information about the file. (file description - etc...) Executing the program h5pAttrib with -A flag will display - the file attributes in the file.

-

EXAMPLE>>

-

$> - ./h5pAttrib -A sample.h5part

-

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

Printing file attributes - for: sample.h5part ...

-

The number of file attributes - for file sample.h5part is 0 ...
- There are no file attributes.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

done

-


- NOTE: -H option will omit the list of values of file attributes.

-

 

-

<back - to top>

-

 

-

[4] - To see step attributes in a h5part file

-

Step attribute contains information that belongs to a specific step. - (step name, timestep number, etc...) Executing the program h5pAttrib - with -a flag will display the step attributes in the file.
- Note that the timestep index should follow -a flag.

-

EXAMPLE>>

-

$> - ./h5pAttrib -a 2 sample.h5part

-

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

Printing step attributes - for: sample.h5part ...

-

The number of step attributes - for timestep #2 is 10 ...

-

Attribute #0 = Step
- There are 1 elements in the attribute
- Attribute Type is H5T_NATIVE_INT64
- Printing 1 element value(s):
- COUNT[0]: 2

-

Attribute #1 = Spos
- There are 1 elements in the attribute
- Attribute Type is H5T_NATIVE_DOUBLE
- Printing 1 element value(s):
- COUNT[0]: 0.143580

-

Attribute #2 = structLen
- There are 1 elements in the attribute
- Attribute Type is H5T_NATIVE_DOUBLE
- Printing 1 element value(s):
- COUNT[0]: 2.393000

-

.
- .
- .

-


- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

done

-


- NOTE: -H option will omit the list of values of step attributes.

-

 

-

<back - to top>

-


- [5] To see dataset in a h5part file

-

Executing the program h5pAttrib with -d flag will display the datasets - information in the file. (dataset name, type, number of elements, - etc...) Executing the program h5pAttrib with -d flag will display - the datasets information in the file.
- Note that the timestep index should follow -d flag.

-

EXAMPLE>>

-

$> - ./h5pAttrib -d 2 -H sample.h5part

-

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

Printing names of datasets - for: sample.h5part ...

-

The number of datasets for - timestep #2 is 7 ...

-

Dataset Name #0 = id
- Dataset Type is H5T_NATIVE_INT64
- Number of elements: 67587

-

Dataset Name #1 = px
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 67587

-

Dataset Name #2 = py
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 67587

-

Dataset Name #3 = pz
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 67587

-

Dataset Name #4 = x
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 67587

-

Dataset Name #5 = y
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 67587

-

Dataset Name #6 = z
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 67587

-

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

done

-


- NOTE: -H option will omit the list of values of datasets.

-

 

-

<back - to top>

-

 

-

[6] - Providing more than one flag at once

-

When more than one flags - are provided, one result after another will be displayed.

-

EXAMPLE>>

-

$> - ./h5pAttrib -H -a 1 -d 1 sample.h5part

-

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

Printing step attributes - for: sample.h5part ...

-

The number of step attributes - for timestep #1 is 10 ...

-

Attribute #0 = Step
- Attribute #1 = Spos
- Attribute #2 = structLen
- Attribute #3 = org
- Attribute #4 = maxX
- Attribute #5 = minX
- Attribute #6 = maxP
- Attribute #7 = minP
- Attribute #8 = centroid
- Attribute #9 = nloc
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-


- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

Printing names of datasets - for: sample.h5part ...

-

The number of datasets for - timestep #1 is 7 ...

-

Dataset Name #0 = id
- Dataset Type is H5T_NATIVE_INT64
- Number of elements: 60214

-

Dataset Name #1 = px
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 60214

-

Dataset Name #2 = py
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 60214

-

Dataset Name #3 = pz
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 60214

-

Dataset Name #4 = x
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 60214

-

Dataset Name #5 = y
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 60214

-

Dataset Name #6 = z
- Dataset Type is H5T_NATIVE_DOUBLE
- Number of elements: 60214

-

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-

done

-

 

- -
-
-
-

--- - For h5pToGNUplot

-

[7] - What parameters to provide

-

When you execute the program - with -h option, it displays what flags are necessary and what flags are - optional.

-
-

Short Version

-

-h
- -1
- -2
- -i
- -t
- -o
- -n
- -s

-
-

Long Version

-

--help
- --1var
- --2var
- --input
- --timestep
- --output
- --number
- --start

-
-

Meanings

-

Print help page
- (REQUIRED) Takes first variable parameter
- (REQUIRED) Takes second variable parameter
- (REQUIRED) Takes input file name
- (REQUIRED) Sets the timestep (Value -1 will result in dumping values of - all timesteps.)
- (OPTIONAL) Takes output file name (without this flag, the program will - print to stdout)
- (OPTIONAL) Sets number of output points
- (OPTIONAL) Sets the starting particle index

-
-

 

-

<back - to top>

-


- [8] How to create an input file to GNUplot

-

EXAMPLE>>
- Create input file to GNUplot that plots x vs. y.

-

$> - ./h5pToGNUplot -1 x -2 y -t 1 -i sample.h5part -o output.txt
- $> cat output.txt
- -0.390779 -0.254793
- -0.396527 -0.252781
- -0.375362 -0.285137
- -0.396527 -0.252781
- -0.379917 -0.283147
- -0.390779 -0.254793
- -0.387536 -0.287346
- -0.371787 -0.319797
- -0.379917 -0.283147
- -0.378967 -0.326058
- -0.378976 -0.326078
- -0.387536 -0.287346
- -0.378957 -0.326069
- -0.379917 -0.283147
- -0.388762 -0.265390
- -0.371787 -0.319797
- -0.390779 -0.254793
- -0.376825 -0.266804
- -0.379917 -0.283147
- -0.375362 -0.285137
- ...

-

Then run GNUplot...

-

$> - gnuplot

-

G N U P L O T
- Version 4.0 patchlevel 0
- last modified Thu Apr 15 14:44:22 CEST 2004
- System: Linux 2.6.11.4-21.11-smp

-

Copyright (C) 1986 - 1993, 1998, - 2004
- Thomas Williams, Colin Kelley and many others

-

This is gnuplot version 4.0. - Please refer to the documentation
- for command syntax changes. The old syntax will be accepted
- throughout the 4.0 series, but all save files use the new syntax.

-

Type `help` to access the on-line - reference manual.
- The gnuplot FAQ is available from
- http://www.gnuplot.info/faq/

-

Send comments and requests for - help to
- <gnuplot-info@lists.sourceforge.net>
- Send bugs, suggestions and mods to
- <gnuplot-bugs@lists.sourceforge.net>

-


- Terminal type set to 'x11'
- gnuplot> plot "output.txt"

-

This will open a GNUplot - window that plots output.txt.

-


- <Sample screen shot of GNUplot - with input datafile generated by h5pToGNUplot>

-
- \ No newline at end of file diff --git a/doc/H5tools/H5tools_files/snapshot1.jpg b/doc/H5tools/H5tools_files/snapshot1.jpg deleted file mode 100644 index a6301d7..0000000 Binary files a/doc/H5tools/H5tools_files/snapshot1.jpg and /dev/null differ diff --git a/doc/InternalLayout.html b/doc/InternalLayout.html deleted file mode 100755 index 5e26b65..0000000 --- a/doc/InternalLayout.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -H5Part, Logical Internal HDF5 File Layout - - - - - -
-

H5Part: Logical Internal HDF5 File Layout

-

-HDF5 is extremely flexible in the sense that it allows the user to define a higher level data model to describe domain-specific data relationships. This flexibility however makes it necessary to develop an agreement on the logical layout of the data. The H5Part data model consists of Particle groups corresponding to the simulation time steps, each with seven datasets corresponding to x, px, y, py, z, pz, id for each particle. Attributes can be added to the file and to the datasets. -

-
-
-HDF5 "parttest.h5" {
-GROUP "/" {
-   GROUP "Particles#0" {
-      DATASET "id" {
-         DATATYPE  H5T_STD_I64LE
-         DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-      }
-      DATASET "px" {
-         DATATYPE  H5T_IEEE_F64LE
-         DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-      }
-      DATASET "py" {
-         DATATYPE  H5T_IEEE_F64LE
-         DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-      }
-      DATASET "pz" {
-         DATATYPE  H5T_IEEE_F64LE
-         DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-      }
-      DATASET "x" {
-         DATATYPE  H5T_IEEE_F64LE
-         DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-      }
-      DATASET "y" {
-         DATATYPE  H5T_IEEE_F64LE
-         DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-      }
-      DATASET "z" {
-         DATATYPE  H5T_IEEE_F64LE
-         DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-      }
-   }
-
-

-See hdf5.pdf for an introduction on the use of HDF5. -

-
- diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index 67b3a40..0000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -EXTRA_DIST = \ - Doxyfile doxyfooter \ - $(wildcard *.html) \ - $(wildcard *.png) \ - $(wildcard H5PartVisIt/*.png) \ - $(wildcard H5tools/*.html) \ - $(wildcard H5tools/H5tools_files/*.jpg) diff --git a/doc/UsingC.html b/doc/UsingC.html deleted file mode 100644 index b4998b1..0000000 --- a/doc/UsingC.html +++ /dev/null @@ -1,603 +0,0 @@ - - - -H5Part, the C/C++ API - - - - -
- -

The C/C++ Application Programming Interface (API)

- -
-Reference Manual (Doxygen) -
-
-

Opening Datafiles

-

-Just like the familiar FILE* type for C stdio operations, all -H5Part file operations require a file handle. The type of this handle is -(H5PartFile*). -
-H5PartOpenFile() is -used to open a serial file and -HDFPartOpenFileParallel() is used to open a file for -Parallel I/O (in an MPI program). -After you open the file handle you can use the same set of -subroutines for operations on the file regardless of whether the -file is a parallel or serial I/O file. -The libraries manage all of this internally.

-

-C Prototypes
-

-Serial File
-H5PartFile *H5PartOpenFile(const char *filename, unsigned -accessmode);
-Parallel File
-H5PartFile *H5PartOpenFileParallel(char *filename,int -accessmode,MPI_Comm communicator);
-

filename:
The name of the IEEEIO data file to -open. The typical extension for these files is .h5
-
accessmode:
The accessmode for the file. This is -one of 2 different access modes
-H5PART_READ : Opens a file in read-only mode.
-H5PART_WRITE : Opens a file in write-only mode. -If the -file does not exist, it will be created. If it does -exist, it will be -truncated. -
communicator:
-
This argument is only available if the program has been -compiled with the PARALLEL_IO C-preprocessor flag -defined. It is used to pass in the communicator that will be -used for all collective I/O operations that target the same -file on disk.
-
Returns:
A new filehandle with an open file or NULL if error.
- -

-
Example Use
-
-#include < H5Part.h >
-. . . code . . .
-    /* Open an HDF5 file for writing */
-    H5PartFile *writer = H5PartOpenFile("datafileout.h5",H5PART_WRITE);
-    /* Open an HDF5 file for Parallel I/O */
-    H5PartFile *writer = H5PartOpenFileParallel("datafileout.h5",H5PART_WRITE,MPI_COMM_WORLD);
-    /* open HDF5 file for reading */ 
-    H5PartFile *reader = H5PartOpenFile("datafilein.h5",H5PART_READ); 
-    /* open HDF5 file for parallel reads */ 
-    H5PartFile *reader = H5PartOpenFileParallel("datafilein.h5",H5PART_READ,MPI_COMM_WORLD);
-. . . more code . . .
-

- - -
- - -

Closing Datafiles

-

-To close the file, you simply use H5PartCloseFile() for both -parallel and serial files. You must call H5PartCloseFile() on any -file descriptor created by H5PartFileOpen() regardless of -whether the file turns out to be valid or not. -

-C Prototypes
-

-void H5PartCloseFile(H5PartFile *fileID); -

-
fileID:
A FileHandle opened by -H5PartOpenFile() or H5PartOpenFileParallel().
-
Returns:
void.
-
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *file;
-... code ...
-file=H5PartOpenFileParallel("parttest.h5",H5PART_WRITE,comm);
-... more code ...
-H5PartCloseFile(file);
-
-
-
- - -

Validating Datafiles

-

-You can test if the file was opened successfully using the -H5PartFileIsValid() function. It returns 1 if valid, 0 if invalid.

-

-C Prototype
-

-int H5PartFileIsValid(H5PartFile *fileID); -

-
fileID:
A FileHandle opened by -H5PartOpenFile() or H5PartOpenFileParallel().
-
Returns:
1 if valid, 0 if invalid.
-
-

-
Example Use
-

-Here is an example of validating a newly opened file. Even if -the file is invalid, you must use H5PartCloseFile() to reclaim -the file handle. -

-
-#include < H5Part.h >
-. . . code . . .
-    H5PartFile *fileID = H5PartOpenFile("datafileout.h5",H5PART_WRITE);
-    if(!H5PartFileIsValid(fileID)){ 
-       puts("The file you specified does not exist or is not in a
-readable format");
-       H5PartClose(fileID); /* must reclaim fileID even if file is invalid */
-       . . . do other cleanup . . .
-    }
-. . . more code . . .
-

- -
- - -

Setting the Timestep

-
-

-When writing data to a file the current time step must be set (even if there is only one). In a file with N time steps, the steps are numbered from 0 to N-1. -

-C Prototype
-

-void H5PartSetStep((H5PartFile *fileID,int step); -

-
fileID:
A FileHandle opened by -H5PartOpenFile() or H5PartOpenFileParallel().
-
step:
An integer time step. -
-
Returns:
void.
-
-
Example Use
-

-
-#include < H5Part.h >
-H5PartFile *fileID;
-int timeStep;
-....
-H5PartSetStep(fileID,timeStep);
-....
-
- -
- - - - -

Setting the Number of Particles

-

-H5PartSetNumParticles: This function's sole purpose is to -prevent needless creation of new HDF5 DataSpace handles if -the number of particles is invariant throughout the sim. -That's its only reason for existence. After you call this -subroutine, all subsequent operations will assume this -number of particles will be written. -

-C Prototype
-

-void H5PartSetNumParticles(H5PartFile *fileID,long long nparticles); - -

-
fileID:
A FileHandle opened by -H5PartOpenFile() or H5PartOpenFileParallel().
-
nparticles:
A long long integer specifying the number of particles. -
-
Returns:
void.
-
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-long long nparticles;
-....
-H5PartSetStep(fileID,nparticles);
-....
-
- -
- - -

Writing Datasets

-
-

-After setting the number of particles with -H5PartSetNumParticles() -and the current timestep using -H5PartSetStep(), you can start -writing datasets into the file. Each dataset has a name -associated with it (chosen by the user) in order to facilitate -later retrieval. The writing routines also implicitly store -the datatype of the array so that the array can be -reconstructed properly on other systems with incompatible type -representations. The data is committed to disk before the -routine returns. All data that is written after setting the -timestep is associated with that timestep. While the number of -particles can change for each timestep, you cannot change the -number of particles in the middle of a given timestep. -

-C Prototypes
-

-int H5PartWriteDataFloat64(H5PartFile *fileID,char - *name,double *array);
-int H5PartWriteDataInt64(H5PartFile *fileID,char - *name,double *array); -

-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
name:
A null-terminated string for the -name of the array. When retrieving datasets from disk, -you ask for them by name. There are no restrictions on -naming of arrays, but it is useful to arrive at some common -naming convention when sharing data with other groups.
-
array:
A buffer containing an array of -particle data to commit to disk. The datatype for -elements in the buffer is implicit in the name of the -subroutine call.
-
Returns:
1 on success, 0 on failure.
-
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-double *x,*y,*z;
-int timeStep;
-long long nparticles;
-
-...
-
-H5PartSetStep(fileID,timeStep); /* must set the current timestep in file */
-H5PartSetNumParticles(fileID,nparticles); /* then set number of particles to store */
-
-/* now write different tuples of data into this timestep of the file */
-H5PartWriteDataFloat64(fileID,"x",x);
-H5PartWriteDataFloat64(fileID,"y",y);
-H5PartWriteDataFloat64(file,"z",z);
-..
-
- -
- -

Reading the Number of Time Steps

-
-

-This reads the number of datasteps that are - currently stored in the datafile. - It works for both reading and writing of files, but is probably - only typically used when you are reading. - -

-C Prototype
-

-int H5PartGetNumSteps (H5PartFile *fileID);
-

-
fileID:
A FileHandle opened by H5PartOpenFile() or -H5PartOpenFileParallel().
-
Returns:
The number of timesteps currently stored in the file. -
-

-
- - -

Reading the Number of Particles

-
-

-This reads the number of particles that are -currently stored in the current time step. -It will arbitrarily select a timestep if you haven't -already set the timestep with H5PartSetStep(). - -

-C Prototype
-

-long long H5PartGetNumParticles (H5PartFile *fileID);
-

-
fileID:
A FileHandle opened by H5PartOpenFile() or -H5PartOpenFileParallel().
-
Returns:
The number of particles in current timestep. -
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-int timeStep;
-long long nparticles;
-
-H5PartSetStep(fileID,0);
-nparticles=H5PartGetNumParticles(fileID);
-...
-
- -
- - - - -

Reading Datasets

-
-

-After setting the time step and getting the number of particles to allocate the data arrays, you can start to read the data. -

-C Prototypes
-

-int H5PartReadDataFloat64(H5PartFile *fileID,char *name,double *array);
-int H5PartReadDataInt64(H5PartFile *fileID,char *name,long long *array);
- -

-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
name:
A null-terminated string for the -name of the array. When retrieving datasets from disk, -you ask for them by name. There are no restrictions on -naming of arrays, but it is useful to arrive at some common -naming convention when sharing data with other groups.
-
array:
A buffer to which the particle data will be read.i -The datatype for -elements in the buffer is implicit in the name of the -subroutine call.
-
Returns:
1 on success, 0 on failure.
-
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-double *x,*y,*z;
-int timeStep;
-long long nparticles;
-
-H5PartSetStep(fileID,0);
-nparticles=H5PartGetNumParticles(fileID);
-... 
-
-H5PartReadDataFloat64(file,"x",x);
-H5PartReadDataFloat64(file,"y",y);
-H5PartReadDataFloat64(file,"z",z);
-...
-
-
-

Reading the Number and Names of Datasets

-

-H5Part provides funtions to find out how many datasets are stored at a particular timestep -and what their names are if you don't know what they are a-priori. -

-C Prototypes
-

-int H5PartGetNumDatasets(H5PartFile *fileID);
-

-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
Returns:
The number of datasets.
-
-

-

-int H5PartGetDatasetName(H5PartFile *fileID,int index,char *name,int maxlen);
-

-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
index:
integer specifying the index of the dataset. If the number of datasets is -nds, the range of index is 0 to nds-1.
-
name:
A null-terminated string for the name of the dataset.
-
maxlen:
An integer specifying the maximum length of the name array.
-
Returns:
1 on success, 0 on failure.
-
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-char name[64];
-int index, nds;
-
-...
-nds=H5PartGetNumDatasets(fileID);
-  for(index=0;index< nds;index++){
-    H5PartGetDatasetName(fileID,index,name,64);
-    printf("\tDataset[%u] name=[%s]\n", index,name);
-  }
-...
-
- -
- - -

Attributes Interface

-

-In the current H5Part implemtation there are two types of attributes: file attributes which are bound to the file - and step attributes which are bound to the current timestep. You - must set the timestep explicitly before writing the attributes (just - as you must do when you write a new dataset. Currently there are no - attributes that are bound to a particular data array, but this could - easily be done if required. -

-

H5PartGetNumStepAttribs and H5PartGetNumFileAttribs return the number of attributes bound to a step and to a file respectively. H5PartGetStepAttribInfo and H5PartGetFileAttribInfo return the name, type and number of elements of type "type" bound to a step and a file respectively. -

-C Prototypes:
-int H5PartGetNumStepAttribs(H5PartFile *fileID); -
-
-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
Returns
The number of step attributes for the current step.
-
-int H5PartGetNumFileAttribs(H5PartFile *fileID); -
-
-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
Returns
The number of file attributes.
-
-void H5PartGetStepAttribInfo(H5PartFile *fileID,int idx, char *name,size_t maxnamelen,hid_t *type,int *nelem); -
-
-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
idx:
Index of the attribute.
-
name:
A null-terminated string with the name of the attribute.
-
maxnamelen
the length of the name of the attribute.
-
type:
One of the following: H5T_NATIVE_DOUBLE H5T_NATIVE_INT64 H5T_NATIVE_CHAR.
-
nelem:
Number of elements of type "type".
-
Returns
void.
-
- -void H5PartGetFileAttribInfo(H5PartFile *fileID,int idx, char *name,size_t maxnamelen, hid_t *type,int *nelem); -
- -
-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
idx:
Index of the attribute.
-
name:
A null-terminated string with the name of the attribute.
-
maxnamelen
the length of the name of the attribute.
-
type:
One of the following: H5T_NATIVE_DOUBLE H5T_NATIVE_INT64 H5T_NATIVE_CHAR.
-
nelem:
Number of elements of type "type".
-
Returns
void.
-
- - - -

Writing Attributes

-
-

-An attribute can be bound to the file or after setting the time step to this time step. -

- -C Prototypes: Generic Attributes
-

-int H5PartWriteFileAttrib(H5PartFile *fileID,char *name, hid_t type,void *value,int nelem);
-int H5PartWriteStepAttrib(H5PartFile *fileID,char *name, hid_t type,void *value,int nelem);
-

-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
name:
A null-terminated string for the -name of the array. When retrieving datasets from disk, -you ask for them by name. There are no restrictions on -naming of arrays, but it is useful to arrive at some common -naming convention when sharing data with other groups.
-
type: One of H5T_NATIVE_DOUBLE, H5T_NATIVE_INT64, H5T_NATIVE_CHAR. -
value: value of the attribute. -
nelem: number of elements of type "type". -
Returns:
1 on success, 0 on failure.
-
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-double actPos;
-
-...
-H5PartWriteStepAttrib(file_m,"Spos",H5T_NATIVE_DOUBLE,&actPos,1);
-...
-
- - -C Prototypes: String Attributes
-

-int H5PartWriteStepAttribString(H5PartFile *fileID,char *name, char *attrib);
-int H5PartWriteFileAttribString(H5PartFile *fileID,char *name, char *attrib);
-

-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
name:
A null-terminated string for the -name of the array. When retrieving datasets from disk, -you ask for them by name. There are no restrictions on -naming of arrays, but it is useful to arrive at some common -naming convention when sharing data with other groups.
-
attrib: the attribute character string. -
Returns:
1 on success, 0 on failure.
-
-

-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-char *newattrib;
-char *newname;
-
-...
-H5PartWriteFileAttribString(fileID, newname,newattrib);
-...
-
-
- - -

Reading Attributes

-
-

-

-As with the writing of attributes, there are two basic reading interfaces one that reads file bound attributes and one that reads -step bound attributes. If the step is not set the current one will be used. -

-

-C Prototypes
-

-void H5PartReadStepAttrib(H5PartFile *fileID,char *name,void *value);
-void H5PartReadAttrib(H5PartFile *fileID,char *name,void *value);
-int H5PartReadFileAttrib(H5PartFile *fileID,char *name,void *value);
-

-
fileID:
A FileHandle opened by -H5PartOpenFile() or -H5PartOpenFileParallel().
-
name:
A null-terminated string for the -name of the array. When retrieving datasets from disk, -you ask for them by name. There are no restrictions on -naming of arrays, but it is useful to arrive at some common -naming convention when sharing data with other groups.
-
value: value of the attribute. -
Returns:
1 on success, 0 on failure.
-
-

-
-NOTE: H5PartReadAttrib has been superseeded by H5PartSetStep. -
-
Example Use
-
-#include < H5Part.h >
-H5PartFile *fileID;
-int step;
-char name[MAXNAME];
-
-...
-
-H5PartSetStep(fileID, step);
-if (H5PartReadStepAttrib(file, "filename", &name[0]) == 1){
-	printf("Read step from file: %s\n", name);
-}
-
-...
-
- -
- diff --git a/doc/UsingF.html b/doc/UsingF.html deleted file mode 100755 index 690704e..0000000 --- a/doc/UsingF.html +++ /dev/null @@ -1,500 +0,0 @@ - - - -H5part, the Fortran API - - - - -
- - -

The FORTRAN Application Programming Interface (API)

-

-These references contain the information on how to access the H5Part API using FORTRAN bindings. All pointers are cast to haddr_t (a unint64_t) within the C/C++ code. In fortran, these pointers (handles) are carried as INTEGER*8 -

- -
-

Opening Datafiles

-

-Like the familiar OPEN in FORTRAN files can be opened to read and write. Different functions are used for the serial and parallel case. -

-FORTRAN Prototypes
-

-Serial File
-INTEGER*8 h5pt_openr
-FUNCTION h5pt_openw(file)
-in CHARACTER file(*) : the filename to open for writing

-returns INTEGER*8 : and open filehandle for serial reads
-
-INTEGER*8 h5pt_openw
-FUNCTION h5pt_openw(file)
-in CHARACTER file(*) : the filename to open for writing
-returns INTEGER*8 : and open filehandle for serial writes

-
-Parallel File
-INTEGER*8 h5pt_openr_par
-FUNCTION h5pt_openr_par(file,mpi_communicator)
-in CHARACTER file(*) : the filename to open for writing
-in INTEGER mpi_communicator : the MPI_Communicator used by the program
- returns INTEGER*8 : and open filehandle for parallel reads

-
-INTEGER*8 h5pt_openw_par
-FUNCTION h5pt_openw_par(file,mpi_communicator)
- in CHARACTER file(*) : the filename to open for writing
- in INTEGER mpi_communicator : the MPI_Communicator used by the program
- returns INTEGER*8 : and open filehandle for parallel reads

-

-

-Example Use
-

-include 'H5Part.inc'
-INTEGER*8 file
-...
-file = h5pt_openw("testfilef.h5")
-...
-
-

-
-

Closing Datafiles

-

-To close the file, you simply use h5pt_close() for both parallel and serial files. You must call h5pt_close() on any file descriptor created by h5pt_open*() regardless of whether the file turns out to be valid or not.

-FORTRAN Prototype
-EXTERNAL h5pt_close
-SUBROUTINE h5pt_close(filehandle)
- in INTEGER*8 filehandle : close this open filehandle

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-...
-call h5pt_close(file)
-...
-
-

-
-

Validating Datafiles

-

-You can test if the file was opened successfully using the -h5p_isvalid() function. It returns 1 if valid, 0 if invalid. -

-FORTRAN Prototype
-INTEGER h5pt_isvalid
-FUNCTION h5pt_isvalid(filehandle)
- in INTEGER*8 filehandle: an open filehandle
- returns INTEGER : 1 if the file is valid, 0 if it is not

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER status 
-...
-status = h5pt_isvalid(file)
-...
-
-

-
- -

Setting the Timestep

-
-

-When writing data to a file the current time step must be set (even if there is only one). In a file with N time steps, the steps are numbered from 0 to N-1. -

-FORTRAN Prototype
-EXTERNAL h5pt_setstep
-SUBROUTINE h5pt_setstep(filehandle,step)
- in INTEGER*8 filehandle : an open filehandle
- in INTEGER step : Set the current timestep in the file to this -

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER I
-INTEGER nstep
-...
-do I=1,nstep
-	call h5pt_setstep(file,I)
-... more code ...
-enddo
-
-

-
- - - -

Setting the Number of Particles

-

-This function's sole purpose is to -prevent needless creation of new HDF5 DataSpace handles if -the number of particles is invariant throughout the sim. -That's its only reason for existence. After you call this -subroutine, all subsequent operations will assume this -number of particles will be written. -

-FORTRAN Prototype
-EXTERNAL h5pt_setnpoints
-SUBROUTINE h5pt_setnpoints(filehandle,npoints)
- in INTEGER*8 filehandle : an open filehandle
- in INTEGER*8 npoints : The number of particles on *this* processor

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER*8 npoints
-
-...
-call h5pt_setnpoints(file,npoints)
-...
-
- -
- -

Writing Datasets

-
-

-After setting the number of particles with -h5pt_setnpoints() -and the current timestep using -h5pt_setstep(), you can start -writing datasets into the file. Each dataset has a name -associated with it (chosen by the user) in order to facilitate -later retrieval. The writing routines also implicitly store -the datatype of the array so that the array can be -reconstructed properly on other systems with incompatible type -representations. The data is committed to disk before the -routine returns. All data that is written after setting the -timestep is associated with that timestep. While the number of -particles can change for each timestep, you cannot change the -number of particles in the middle of a given timestep. -

-FORTRAN Prototypes
-

-The two data types supported for the moment are REAL*8 and INTEGER*8 (float64 and int64). -

-EXTERNAL h5pt_writedata_r8
-SUBROUTINE h5pt_writedata_r8(filehandle,name,data)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the data we are writing eg. "X" or "Y" or "PX" etc...
- in REAL*8 data(*) : The dataarray to write

-
-EXTERNAL h5pt_writedata_i8
-SUBROUTINE h5pt_writedata_i8(filehandle,name,data)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the data we are writing eg. "X" or "Y" or "PX" etc...
- in INTEGER*8 data(*) : The dataarray to write

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER nstep
-INTEGER I
-REAL*8,ALLOCATABLE:: X(:)
-
-...
-do I=1,nstep
-	call h5pt_setstep(file,I)
-	call h5pt_writedata_r8(file,"x",X)
-enddo
-...
-
-
- -

Reading the Number of Time Steps

-
-

-This reads the number of datasteps that are - currently stored in the datafile. - It works for both reading and writing of files, but is probably - only typically used when you are reading. - -

-FORTRAN Prototypes
-INTEGER h5pt_getnsteps
-FUNCTION h5pt_getnsteps(filehandle)
- in INTEGER*8 filehandle : an open filehandle
- returns INTEGER : number of timesteps stored in the file

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER nstep
-
-file = h5pt_openr("testfilef.h5")
-nstep = h5pt_getnsteps(file)
-
-
- - -

Reading the Number of Particles

-
-

-This reads the number of particles that are currently stored in the current time step. It will arbitrarily select a timestep if you haven't already set the timestep with H5PartSetStep(). - -

-FORTRAN Prototypes
-INTEGER h5pt_getnpointss
-FUNCTION h5pt_getnpoints(filehandle)
- in INTEGER*8 filehandle : an open filehandle
- returns INTEGER : number of particles in the current time step

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER*8 npoints
-INTEGET step;
-
-file = h5pt_openr("testfilef.h5")
-call h5pt_setstep(file,0)
-npoints = h5pt_getnpoints(file)
-...
-
-
- - - - - -

Reading Datasets

-
-

-After setting the time step and getting the number of particles to allocate the data arrays, you can start to read the data. -

-FORTRAN Prototypes
-INTEGER h5pt_readdata_r8
-FUNCTION h5pt_readdata_r8(filehandle,name,data)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the data we are writing, eg. "X" or "Y" or "PX" etc...
- out REAL*8 data(*) : The data array to read. The number of points to read is either the number within - the view setby h5pt_setview() or the default (the total number of particles in the file).
- - - -Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER err
-INTEGER*8,ALLOCATABLE:: ID(:)
-
-...
-call h5pt_setstep(file,step)
-err=h5pt_readdata_i8(file,"id",ID)
-...
-
-
-

Reading the Number and Names of Datasets

-

-H5Part provides funtions to find out how many datasets are stored at a particular timestep -and what their names are if you don't know what they are a-priori. -

-FORTRAN Prototypes
-INTEGER h5pt_getndatasets
-FUNCTION h5pt_getndatasets(filehandle)
- in INTEGER*8 filehandle : an open filehandle
- returns INTEGER*8 : number of datasets stored per timestep

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER ndata
-
-...
-call h5pt_setstep(file,1)
-ndata = h5pt_getndatasets(file)
-...
-
-
-FORTRAN Prototypes
-INTEGER h5pt_getdatasetname
-FUNCTION h5pt_getdatasetname(filehandle,index,name)
- in INTEGER*8 filehandle : an open filehandle
- in INTEGER index : Index for a given dataset name
- out CHARACTER name(*) returns the name of the dataset at that index
- returns INTEGER, 1 on success 0 on failure.

-Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-INTEGER err
-CHARACTER,ALLOCATABLE:: name(:)
-
-...
-err=h5pt_getdatasetname(file, 1, name)
-...
-
-
- - -

Attributes Interface

-

-In the current H5Part implemtation there are two types of attributes: file attributes which are bound to the file - and step attributes which are bound to the current timestep. You - must set the timestep explicitly before writing the attributes (just - as you must do when you write a new dataset. Currently there are no - attributes that are bound to a particular data array, but this could - easily be done if required. -

-FORTRAN Prototypes
-INTEGER h5pt_getnstepattribs
-FUNCTION h5pt_getnstepattribs(filehandle)
- in INTEGER*8 filehandle : an open filehandle
- returns INTEGER : number of attributes bound to this particular step
-
-
-INTEGER h5pt_getnfileattribs
-FUNCTION h5pt_getnfileattribs(filehandle)
- in INTEGER*8 filehandle : an open filehandle
- returns INTEGER : number of attributes bound to the file
-
-
-INTEGER h5pt_getstepattribinfo
-FUNCTION h5pt_getstepattribinfo(filehandle,idx,attribname,nelem)
- in INTEGER*8 filehandle : an open filehandle
- in INTEGER idx : index of the attribute being queried
- out CHARACTER name(*) : The name of the attribute
- out INTEGER nelem : Number of elements in the attrib array
- returns INTEGER, 1 on success 0 on failure.
-
-
-INTEGER h5pt_getfileattribinfo
-FUNCTION h5pt_getfileattribinfo(filehandle,idx,attribname,nelem)
- in INTEGER*8 filehandle : an open filehandle
- in INTEGER idx : index of the attribute being queried
- out CHARACTER name(*) : The name of the attribute
- out INTEGER nelem : Number of elements in the attrib array
- returns INTEGER, 1 on success 0 on failure. -
-
- - - - - -
- -

Writing Attributes

-
-

-An attribute can be bound to the file or after setting the time step to this time step. -

-FORTRAN Prototypes
-INTEGER h5pt_writefileattrib_r8
- -FUNCTION h5pt_writefileattrib_r8(filehandle,name,attrib,nelem)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the attribute
- in REAL*8 attrib(*) : The array of data to write into the attribute
- in INTEGER nelem : Number of elements in the attrib array
- returns INTEGER, 1 on success 0 on failure
-
-
-INTEGER h5pt_writefileattrib_i8
-FUNCTION h5pt_writefileattrib_i8(filehandle,name,attrib,nelem)
- in INTEGER*8 filehandle : The filehandle
- in CHARACTER name(*) : The name of the attribute
- in INTEGER*8 attrib(*) : The array of data to write into the attribute
- in INTEGER nelem : Number of elements in the attrib array
- returns INTEGER, 1 on success 0 on failure
-
-
-INTEGER h5pt_writefileattrib_string
-FUNCTION h5pt_writefileattrib_string(filehandle,name,string)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the attribute
- in CHARACTER*8 attrib(*) : The array of data to write into the attribute
- returns INTEGER, 1 on success 0 on failure
-
-
-INTEGER h5pt_writestepattrib_r8
-FUNCTION h5pt_writestepattrib_r8(filehandle,name,attrib,nelem)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the attribute
- in REAL*8 attrib(*) : The array of data to write into the attribute
- in INTEGER nelem : Number of elements in the attrib array - returns INTEGER, 1 on success 0 on failure
-
-
-INTEGER h5pt_writestepattrib_i8
-FUNCTION h5pt_writestepattrib_i8(filehandle,name,attrib,nelem)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the attribute
- in INTEGER*8 attrib(*) : The array of data to write into the attribute
- in INTEGER nelem : Number of elements in the attrib array
- returns INTEGER, 1 on success 0 on failure
-
-
-INTEGER h5pt_writestepattrib_string
-FUNCTION h5pt_writestepattrib_string(filehandle,name,string)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER name(*) : The name of the attribute
- in CHARACTER*8 attrib(*) : The array of data to write into the attribute
- returns INTEGER, 1 on success 0 on failure
-
- -Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-REAL*8 REALTIME
-INTEGER err
-
-...
-err=h5pt_writefileattrib_string(file,"Annotation","Testing 1 2 3")
-err=h5pt_writestepattrib_r8(file,"RealTime",REALTIME,1)
-...
-
-
- -
- -

Reading Attributes

-
-

-As with the writing of attributes, there are two basic reading interfaces one that reads file bound attributes and one that reads -step bound attributes. If the step is not set the current one will be used. -

-FORTRAN Prototypes
- -INTEGER h5pt_readstepattrib
-FUNCTION h5pt_readstepattrib(filehandle,name,data)
- in INTEGER*8 filehandle : an open filehandle
- in CHARACTER attributename(*) : name of the attribute to read
- out data(*) : the attribute data will be read into this array
- returns INTEGER, 1 on success 0 on failure
-
-
-INTEGER h5pt_readfileattrib
-FUNCTION h5pt_readfileattrib(filehandle,name,data)
- in INTEGER*8 filehandle an open filehandle
- in CHARACTER attributename(*) : name of the attribute to read
- out data(*) : the attribute data will be read into this array
- returns INTEGER, 1 on success 0 on failure
-
- -Example Use
-
-include 'H5Part.inc'
-INTEGER*8 file
-REAL*8 REALTIME
-
-...
-call h5pt_setstep(file,0)
-err=h5pt_readstepattrib(file,"RealTime",data)
-...
-
- - -
diff --git a/doc/collision_6.png b/doc/collision_6.png deleted file mode 100755 index 84b2636..0000000 Binary files a/doc/collision_6.png and /dev/null differ diff --git a/doc/collision_6.s.png b/doc/collision_6.s.png deleted file mode 100755 index 62dd39b..0000000 Binary files a/doc/collision_6.s.png and /dev/null differ diff --git a/doc/h5part.html b/doc/h5part.html deleted file mode 100644 index 9391a09..0000000 --- a/doc/h5part.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -H5Part: a Portable High Performance Parallel Data Interface to HDF5 - - - - - -
-

H5Part: a Portable High Performance Parallel Data Interface to HDF5

- -

Motivation

-

- - - - - - -
- -
-Beam-beam collision simulation. -
-

-

-Particle based simulations of accelerator beam-lines, especially in -six dimensional phase space, generate vast amounts of data. Even -though a subset of statistical information regarding phase space -or analysis needs to be preserved, reading and writing such -enormous restart files on massively parallel supercomputing -systems remains challenging.

-

- -

-H5Part is a very simple data storage schema and provides an -API that simplifies the reading/writing of the data to the HDF5 -file format. An important foundation for a stable visualization and data -analysis environment is a stable and portable file storage format and -its associated APIs. The presence of a "common file storage format," -including associated APIs, will help foster a fundamental level of -interoperability across the project's software infrastructure. It will -also help ensure that key data analysis capabilities are present -during the earliest phases of the software development effort. -

-

-H5Part is built on top of the HDF5 (Hierarchical Data Format). -HDF5 offers a self-describing machine-independent -binary file format that supports scalable parallel I/O -performance for MPI codes on a variety of supercomputing -systems, and works equally well on laptop computers. The API is -available for C, C++, and Fortran codes. The H5Part file format and APIs -enable disparate research groups with different simulation -implementations to transparently share datasets and data -analysis tools. For instance, the common file format will enable -groups that depend on completely different simulation -implementations to share data analysis tools. -

-

H5Part file organization and API

-

-The proposed file storage format uses HDF5 for the lowlevel -file storage and a simple API to provide a high-level -interface to that file format. A programmer can either use -the H5Part API to access the data files or write directly to -the file format using some simple conventions for organizing -and naming the objects stored in the file. -

-

-In order to store Particle Data in the HDF5 file format, -we have formalized the hierarchical arrangement of the -datasets and naming conventions for the groups and associated -datasets. The sample H5Part API formally encodes -these conventions in order to provide a simple and uniform -way to access these files from C, C++, and Fortran codes. -The API makes it easier to write very portable data adaptors -for visualization tools in order to expand the number of -tools available to access the data. Even so, anyone can use -the HDF5 h5ls utility to examine the organization of the -H5Part files and even write their own HDF5-based interface -for reading and writing the file format. The standards -offered by the sample API are completely independent of -the standard for organizing data within the file.The file -format supports the storage of multiple timesteps -of datasets that contain multiple fields. -

- - -

Downloading and Installing H5Part

- -

Bindings

- - -

H5Part Visualization Tools

- -
- diff --git a/doc/layout.png b/doc/layout.png deleted file mode 100644 index 69d133a..0000000 Binary files a/doc/layout.png and /dev/null differ