yt development - Quad trees, Tickets and more
@ Matthew Turk | Thursday, Jun 2, 2011 | 3 minute read | Update at Thursday, Jun 2, 2011

It’s been a while since the last Development post — but in that time, some pretty fun things have been going on. These are some of the smaller things, but there are bigger things in store which I’ll write about next time.

QuadTree Projections

For a while, there has been the option to use a QuadTree data structure to conduct projections through a simulation volume. This was accessible through the quad_proj attribute, which respected the same interface as the normal proj interface. The old-style projection code required a spatial decomposition in parallel, and did not use the most efficient mechanism for identifying where cells go and which grids overlapped other grids.

The quad tree projection mostly avoided those issues; it could (theoretically) be parallelized with an arbitrary load- balancing scheme, and it should avoid having to calculate any overlaps, as they’re inherent to the data structure. However, parallelizing the final combine was never implemented — so while it showed good results for scaling in serial, it didn’t work in parallel.

However, as of today, it’s now parallel! For big simulations, it should provide a speedup of between 2 and 10 for projecting. For the 2.2 release, this will be the default mechanism for projecting. If you’re reading this, you’re encouraged to check it out by replacing the old-style projection with the new: pf.h.proj = pf.h.quad_proj

and then conducted any analysis you normally would. Testing and results for scaling would be greatly appreciated!

In-Memory Data Format

If you have some AMR data that you don’t want to write a full plugin or frontend for, you’re now in luck. One can use the Stream frontend to describe a hierarchy, create a data-reader or data-generator, and then feed this to yt. And example of this can be found here <http://matthewturk.bitbucket.org/html/ba3fd37b-842c-4641-b21e-2d3f5268eefe- stream_proxy-py.html>.

The first implementation of this will be for loading data in Paraview and conducting analysis on this data in yt.

Activation Script

We have a new contributor! Casey W. Stark added in activation scripts to the install_script. Using these means you no longer have to set your PYTHONPATH or LD_LIBRARY_PATH or PATH manually, as you can just source the activate scripts. Thanks, Casey!

Tickets! And Bug Reports!

All of the tickets from Trace have been migrated to BitBucket. All bug reports should be left there. Soon the wiki will be moved over, too, and Trac will be mothballed.

Cameron and I are working on a new bug reporting mechanism that can be run from the command line – yt bugreport – that should help ensure triaging of bugs occurs in a timely and meaningful fashion.

That’s it for this time. Happy simulating!

yt extension modules

yt has many extension packages to help you in your scientific workflow! Check these out, or create your own.

ytini

ytini is set of tools and tutorials for using yt as a tool inside the 3D visual effects software Houdini or a data pre-processor externally to Houdini.

Trident

Trident is a full-featured tool that projects arbitrary sightlines through astrophysical hydrodynamics simulations for generating mock spectral observations of the IGM and CGM.

pyXSIM

pyXSIM is a Python package for simulating X-ray observations from astrophysical sources.

ytree

Analyze merger tree data from multiple sources. It’s yt for merger trees!

yt_idv

yt_idv is a package for interactive volume rendering with yt! It provides interactive visualization using OpenGL for datasets loaded in yt. It is written to provide both scripting and interactive access.

widgyts

widgyts is a jupyter widgets extension for yt, backed by rust/webassembly to allow for browser-based, interactive exploration of data from yt.

yt_astro_analysis

yt_astro_analysis is the yt extension package for astrophysical analysis.

Make your own!!

Finally, check out our development docs on writing your own yt extensions!

Contributing to the Blog

Are you interested in contributing to the yt blog?

Check out our post on contributing to the blog for a guide! https://yt-project.github.io/blog/posts/contributing/

We welcome contributions from all members of the yt community. Feel free to reach out if you need any help.

the yt data hub

The yt hub at https://girder.hub.yt/ has a ton of resources to check out, whether you have yt installed or not.

The collections host all sorts of data that can be loaded with yt. Some have been used in publications, and others are used as sample frontend data for yt. Maybe there’s data from your simulation software?

The rafts host the yt quickstart notebooks, where you can interact with yt in the browser, without needing to install it locally. Check out some of the other rafts too, like the widgyts release notebooks – a demo of the widgyts yt extension pacakge; or the notebooks from the CCA workshop – a user’s workshop on using yt.

Social Links