[yt-dev] Issue #1210: Frontend Documentation (yt_analysis/yt)

Axel Huebl issues-reply at bitbucket.org
Tue Apr 12 19:45:46 PDT 2016


New issue 1210: Frontend Documentation
https://bitbucket.org/yt_analysis/yt/issues/1210/frontend-documentation

Axel Huebl:

Hi fabulous folks at yt! :)

@ngoldbaum [catched](https://github.com/openPMD/openPMD-yt/issues/7) my at our GitHub frontend project for [openPMD](https://github.com/openPMD/openPMD-standard) files.

What we are trying to read into yt is a simple 2D and 3D, domain-decomposited particle-mesh domain. Our mesh is regularly spaced and cartesian and our particles are stored in as array of struct in long, contiguous 1D arrays. Additionally, we have an index table called `particlePatches` that can be used to read chunks of particles from the 1D particle arrays (guaranteeing that in its specific spatial extend no other chunks of particles are also present).

We write all our data efficiently via MPI-I/O in one parallel HDF5 file (and ADIOS `.bp` files, but let us stick with HDF5 for now).

### Ask your question, man!

Long story short, domain-decomposited data structures are e.g., implemented in the `FITS` frontend.

The following quesitons arise:

- What is the general concept to read data into yt? Does all data need to be in the same domain (e.g., have the same spatial extent)?

- If I have several domains, a discrete, spaced field domain and a position-wise continuous particle domain (with finite "density" shape on the particles) - how are they represented to the front-end?

- How would one implement to load a [staggered grid](https://en.wikipedia.org/wiki/Finite-difference_time-domain_method) of fields?

- What classes and methods actually need to be implemented? What are their interfaces (input parameters and return types)? What private members need to be populated?

- How to describe a [disjoint](https://en.wikipedia.org/wiki/Disjoint_sets) domain decomposition in both domains (mesh & particles) so one can read those in parallel?

- is `yt.load` supposed to read a single file or is it expected to handle full time series (if I give it a prefix that can match several files that might make one up)?

### Our Current Status

We (think) we found a way to read mesh (field) values from our files in a generic way for now
  https://github.com/openPMD/openPMD-yt/pull/6

Nevertheless, describing the parallelization we used (simple 3D domain decomposition) and getting particles in seems to be a bit tricky.

This issue is about @ngoldbaum idea to tell specific questions so one can improve the documentation (also in-code documentation) of the frontends in yt. Any help is very much appreciated :)

### Resources

- our file format in fancy slides: http://openPMD.org
- our file format in many words: https://github.com/openPMD/openPMD-standard
- our half-way frontend: https://github.com/openPMD/openPMD-yt
- a short-term intern of us contacting the mailing list: http://lists.spacepope.org/htdig.cgi/yt-dev-spacepope.org/2015-September/005589.html
- some example files: https://github.com/openPMD/openPMD-example-datasets
  (I will add an example with parallel/tiled `particlePatches` these days)


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-dev-spacepope.org/attachments/20160413/3b0a04f1/attachment.htm>


More information about the yt-dev mailing list