Clump Finding & Sink Particles

82 views
Skip to first unread message

John Regan

unread,
Jun 16, 2016, 5:33:03 AM6/16/16
to enzo...@googlegroups.com
Hi All,

I'm planning on implementing a sink particle mechanism similar to that outlined by Bleuler & Teyssier (2014). The main task I think would be the implementation of the clump finding prescription in Enzo-3.0. Just wondering if anyone had any thoughts on this good or bad e.g. this will work in RAMSES but not in Enzo because of x,y and z?

Cheers,
John

Brian O'Shea

unread,
Jun 23, 2016, 8:26:45 AM6/23/16
to enzo...@googlegroups.com
Hi John,

Sorry for my delay in response (at a conference, too much email, blah blah blah... my bad).  This seems like a really exciting project!

One significant difference that we see between Enzo and Ramses is that Ramses uses cell-based AMR, and Enzo uses a somewhat modified version of Berger & Colella AMR, which is patch-based.  Looking at the algorithm specified in Bleuler & Teyssier '14, I suspect that it'd be more challenging to calculate isocontours in density and saddle points in the distributions in Enzo than it is in Ramses, because (1) Enzo doesn't enforce single-level jumps in AMR and (2) the way that Enzo breaks up grids, which can mean a clump is spread across many grids (thus making an isodensity contour challenging to calculate without something like an active particle's feedback grid... which is serial and could be cumbersome).

BUT, there's an alternative solution.  Enzo-3 has a built-in interface to yt-3, and yt-3 has a clump finder (http://yt-project.org/docs/dev/cookbook/constructing_data_objects.html#cookbook-find-clumps).  It's possible to pass Enzo data to yt, and get information back from yt during simulation runtime, and to have this all work in parallel - Brian Crosby (my student here at MSU) has been doing this for something relating to the active particles already.  The Enzo/yt interface is a bit brittle, but Brian has been working on it quite a bit and would have some wisdom to share.  That said, his dissertation is due to his committee a week from tomorrow, so he might not be all that eager to talk until after July 1st...  :-)  Anyway, you could probably use the yt clump finder (possibly modified somewhat to meet your needs) and then get clump info back to Enzo for use in creating and/or modifying sink particles.

I hope this is useful!

Regards,
Brian


  

--
You received this message because you are subscribed to the Google Groups "enzo-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enzo-dev+u...@googlegroups.com.
To post to this group, send email to enzo...@googlegroups.com.
Visit this group at https://groups.google.com/group/enzo-dev.
For more options, visit https://groups.google.com/d/optout.

John Regan

unread,
Jun 23, 2016, 11:20:43 AM6/23/16
to enzo...@googlegroups.com
Hi Brian,

That sounds like very good insight alright. I'm not planning on getting stuck into the development until July anyway. Ask Brian Crosby to drop me a line once his dissertation is done with and I can start working on it after that. If YT could be used as the clump finder that might be a simple and practical solution for the clump finder configuration.

Great and thanks for the reply!

Cheers,
John


Matthew Turk

unread,
Jun 23, 2016, 11:24:02 AM6/23/16
to enzo...@googlegroups.com
Hi John,

The yt clump finder was initially described in
http://adsabs.harvard.edu/abs/2009ApJ...691..441S , but it's changed
since then. What it does now is decompose into non-overlapping tiles
(stored in a kd-tree), identify contours within a tile, and then
connect them across tiles. It does this with an upper and lower bound
on a field value, and looking for topologically connected sets. It
can be parallelized but isn't at present; doing so wouldn't be too
bad. Adding additional criteria to identification *after* identifying
topologically connected sets is straightforward.

-Matt

John Regan

unread,
Jun 23, 2016, 11:32:26 AM6/23/16
to enzo...@googlegroups.com
HI Matt,

OK great thanks! I'll have a look at the new version and test out calling the latest version from Enzo-3.0. I might come back with some more queries depending on how that goes!

Cheers,
John

John Regan

unread,
Jul 5, 2016, 10:00:55 AM7/5/16
to enzo...@googlegroups.com
Hi Matt,

You don't have an example of a working "user_script.py" file that is compatible with YT-3.0 do you?
There is one in the enzo repo under /run/Hydro/Hydro-3D/CollapseTestAccretingParticleAMR but it may have been for YT2.x? The test fail to run the script anyway with the error:

NameError: global name 'EnzoStaticOutputInMemory' is not defined
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    pf = EnzoStaticOutputInMemory()
NameError: global name 'EnzoStaticOutputInMemory' is not defined      File "./user_script.py", line 7, in main

Cheers,
John
Reply all
Reply to author
Forward
0 new messages