[Yt-dev] Forked depo

Stephen Skory s at skory.us
Wed May 11 16:16:57 PDT 2011


Geoffrey,

> (I'll just talk here until people tell me to take it off list)

Nah, yt development belongs on yt-dev!

> How do you think I should integrate this?  Should the ellipsoid profiling
> be done alongside the saving of the halo object as an optional thing the
> user can turn on, or leave it as a separate thing?  If together, I'd say
> the information should be stored in the binary file instead of the ascii
> output (or else it'll be a **** TON of columns, it already has tons).  If
> separate, then when the user wants to construct the ellipsoid objects,
> they would have to read in the halo object's information, set center,
> r_max=A, and then from the output of the ellipsoid profiler read in B, C,
> e1, e2, and e3 can be calculated on the fly.

There are several issues of integration discussed here. I'll do them separately:

1. Ellipsoid data storage. I agree that the ellipsoid data probably
shouldn't be added to the HopAnalysis.out file by default. Most people
don't want it and it would add a bunch of new columns. However, I
think that if a user does want to save the ellipsoid data, it should
go in the HopAnalysis.out file as added columns for each halo. And
adding as many columns as necessary is fine. I think we want to avoid
adding new input/output files for halos. We already have three, which
is plenty by my count. This will not be terribly difficult to
integrate.

2. Ellipsoid data retrieval. There are three ways that halo data is
pulled off disk in yt, presently.
a. In halo_objects.py, with LoadHaloes. This would not be terribly
difficult to modify to support ellipsoid data columns. No problem.
b. In the halo_profiler. This would also not be terribly difficult,
but it raises some issues I discuss below (4).
c. Halo merger tree. The ellipsoid data has no bearing on the merger
tree because the merger tree doesn't care about halo shape, only
particle membership.

3. Ellipsoid in halo analysis. There are several places in
halo_objects.py that assumes the halo is a sphere. It won't be
terribly difficult to add a switch that the user can specify that the
ellipsoid should be used for analysis or data retrieval. No problem.

4. Halo profiling. If you want to profile halos using the ellipsoid
container, you're going to have to think a bit about how you think it
should be done. Currently, the halo profiler works using concentric
spheres, binning quantities based on radius. Do you want to bin your
profiles based on radius? Or concentric ellipsoid shell? If it's the
latter, that's also new code that has to be written, I think.

> Which way do you think is the best way of integration, or any better ideas?

I'm willing to help you with 1,2a, and 3. What I need from you is your
most up to date code for defining an ellipsoid from the particles in a
halo, or you can point it to me in your fork of yt. halo_objects.py is
now a pretty big beast that I think I only understand fully, so I'll
do the integration there. But if your ellipsoid derivation code is
similar to what I saw a few weeks ago (but improved and vectorized, I
hope!) in function, these three tasks won't be hard for me to do.

Task 4 I think requires you to think about how you want to analyze the
halos. It sounds like you might only care about total quantities
inside the halo ellipsoid, and if so, you don't need to worry about
the halo profiler. But my bet is that someday someone's gonna ask for
a halo profile and then you'll have to decide how you want to do that.

In summary, tl;dr, here's how I think you should do things:

1. See about implementing Britton's idea of reducing the number of
parameters. You know more about this than anyone else. You can decide
if it's practical or not.
2. Once that's settled, give me what I need to do steps 1,2a, and 3, above.
3. At the same time we'll merge in your ellipsoid data container.

Any other issues like bug fixes and halo profiler improvements can
come later. How does this sound, Geoffrey? Any other comments from the
peanut gallery?

-- 
Stephen Skory
s at skory.us
http://stephenskory.com/
510.621.3687 (google voice)



More information about the yt-dev mailing list