[FLASH-USERS] Visualizing 3D Cylindrical grid

Rahul Kashyap rkashyap at umassd.edu
Sat Jan 28 20:17:28 EST 2017


Thanks, Nathan. This is really helpful as being only solution among
visualization routines.

I'll look into it more carefully later and if annotate_grids or at least
cell edges works I'll be happy to let everyone know.

Cheers,
-Rahul

On Sat, Jan 28, 2017 at 8:09 PM, Nathan Goldbaum <nathan12343 at gmail.com>
wrote:

>
>
> On Sat, Jan 28, 2017 at 6:47 PM, Rahul Kashyap <rkashyap at umassd.edu>
> wrote:
>
>> Hi Nathan,
>>
>> Thanks. I think that was the problem. I was annotating grids. I have yt
>> 3.3.2; most recent is 3.3.3.
>>
>> Is it possible to do so now for cylindrical grids? It might be required
>> for my analysis at some point so, may be you could point me towards
>> tweaking yt to get it working.
>>
>
> That makes sense, thanks for the extra information.
>
> The annotate_grids function corresponds to the GridBoundaryCallback,
> defined here:
>
> https://bitbucket.org/yt_analysis/yt/src/23d0e83400c92b26416052a26d8944
> 4bdd1de9ed/yt/visualization/plot_modifications.py?at=yt&
> fileviewer=file-view-default#plot_modifications.py-562
>
> Indeed, it does not yet support non-cartesian geometries.
>
> If you look at the __call__ function of this class, you can see how it
> actually does the work of drawing the grid boundaries on the plot. Most of
> the code in that function deals with periodic boundary conditions, but if
> you look a little bit further you can see that right now it draws the grid
> boundaries assuming that they appear to be regular polygons using a
> matplotlib PolyCollection (see around line 670).
>
> For curvilinear grids this assumption will need to be relaxed.
>
> Rather than continuing to use PolyCollection, it might be beneficial to to
> look at the CellEdgesCallback, defined in the same file. This callback
> (which is used to draw lines at the edges of individual cells in a
> simulation) delegates the job of drawing the boundaries to the pixelization
> routine (the cython routine that does the hard work of actually drawing the
> pixelized representation of your AMR data). I suspect that will be a better
> approach going forward, since we will be able to support curvilinear
> geometries without having to figure out explicitly how to draw the grid
> boundaries using matplotlib primitives. That said, right now the
> `CellEdgesCallback` also only supports cartesian geometries because no one
> has updated the pixelizer for cylindrical geometries to draw cell or grid
> boundaries.
>
> For cylindrical geometries, the pixelizer is defined here:
>
> https://bitbucket.org/yt_analysis/yt/src/23d0e83400c92b26416052a26d8944
> 4bdd1de9ed/yt/utilities/lib/pixelization_routines.pyx?at=
> yt&fileviewer=file-view-default#pixelization_routines.pyx-321
>
> This is written in cython, which is a python-like language that compiles
> to C and is used heavily in yt for performance critical tasks.
>
> Hopefully that wasn't information overload. Obviously making is so the
> GridBoundariesCallback functions correctly for curvilinear geometries is
> something we will get around to eventually. Like most things in an open
> source project, we are limited by manpower and time. If you (or anyone else
> reading this) would like to contribute this feature that would be extremely
> appreciated. If you have any questions about how to contribute I'm very
> happy to help out.
>
> That said, if you feel like that is too much, that is also ok. We will get
> around to adding support for this, and improving support for curvilinear
> geometries is definitely on our roadmap.
>
> Sorry to not have an easy solution here, I hope my answer was helpful at
> some level.
>
> -Nathan
>
>
>>
>> Best,
>> -Rahul
>>
>>
>> %matplotlib inline
>> import yt
>>
>> path='super3d_hdf5_chk_0000'
>> ds = yt.load(path)
>>
>> s = yt.SlicePlot(ds, "r", ["density","temperature"], center=[0,0,0])
>> s.zoom(20.0)
>> #s.annotate_grids()
>> s.show()
>> s.save('temp_data/')
>> #"""
>>
>> On Sat, Jan 28, 2017 at 7:10 PM, Nathan Goldbaum <nathan12343 at gmail.com>
>> wrote:
>>
>>> Hi Rahul,
>>>
>>> I'm not able to reproduce the behavior you're seeing. The particular
>>> error you showed indicates that you are using some of the plot annotation
>>> functions that are attached to yt plot objects. Not all of these annotation
>>> functions support curvilinear geometries. Note that in principle many of
>>> these *could* be implemented, that just hasn't happened yet. Unfortunately
>>> the error doesn't say which of these functions is triggering the issue, so
>>> I can't tell that myself based on the information you've given.
>>>
>>> Is there any chance you can share a minimal working example that
>>> demonstrates the issue you're having?
>>>
>>> -Nathan
>>>
>>> On Sat, Jan 28, 2017 at 6:00 PM, Rahul Kashyap <rkashyap at umassd.edu>
>>> wrote:
>>>
>>>> Hi John,
>>>>
>>>> Thanks. Below is the error along with the call back. I'm using
>>>> SlicePlot function here.
>>>>
>>>> s = yt.SlicePlot(ds, "z", ["density","temperature",
>>>> "velocity_magnitude","pressure"], center="max")
>>>>
>>>> It gives me grid informations but, perhaps treats it as cartesian. The
>>>> angles are in radians.
>>>> I have provided link to a small FLASH file where data is trivial --
>>>> https://www.dropbox.com/s/4e01kp3fsd6e3fh/super3d_hdf5_chk_0000?dl=0
>>>>
>>>> Appreciated,
>>>> -Rahul
>>>>
>>>> ---------------------------------------------------------------------------YTDataTypeUnsupported                     Traceback (most recent call last)<ipython-input-9-5ab982893667> in <module>()    102 #                weight_field = ("CellMass")).save()    103 #s.show()--> 104 s.save('temp_data/')    105 #"""    106
>>>> /home/rkashyap/sw/miniconda2/lib/python2.7/site-packages/yt/visualization/plot_container.pyc in newfunc(*args, **kwargs)     76             # it is the responsibility of _setup_plots to     77             # call args[0].run_callbacks()---> 78             args[0]._setup_plots()     79         rv = f(*args, **kwargs)     80         return rv
>>>> /home/rkashyap/sw/miniconda2/lib/python2.7/site-packages/yt/visualization/plot_window.pyc in _setup_plots(self)    954     955         self._set_font_properties()--> 956         self.run_callbacks()    957         self._plot_valid = True    958
>>>> /home/rkashyap/sw/miniconda2/lib/python2.7/site-packages/yt/visualization/plot_window.pyc in run_callbacks(self)   1007                     callback(cbw)   1008                 except YTDataTypeUnsupported as e:-> 1009                     six.reraise(YTDataTypeUnsupported, e)   1010                 except Exception as e:   1011                     six.reraise(YTPlotCallbackError,
>>>> /home/rkashyap/sw/miniconda2/lib/python2.7/site-packages/six.pyc in reraise(tp, value, tb)
>>>> YTDataTypeUnsupported: This operation is not supported for data of geometry cylindrical; It supports data of geometries ('cartesian', 'spectral_cube')
>>>>
>>>>
>>>>
>>>> On Sat, Jan 28, 2017 at 6:18 PM, John ZuHone <jzuhone at gmail.com> wrote:
>>>>
>>>>> Hi Rahul,
>>>>>
>>>>> Could you detail exactly what the issue with yt was? We'd like to help
>>>>> out.
>>>>>
>>>>> John
>>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>> On Jan 28, 2017, at 3:12 PM, Rahul Kashyap <rkashyap at umassd.edu>
>>>>> wrote:
>>>>>
>>>>> Dear FLASH users,
>>>>>
>>>>> Has anyone come up with visualizing 3D cylindrical data set by FLASH?
>>>>>
>>>>> I tried VisIt by transforming coordinate from cylindrical to
>>>>> cartesian. This sets up the grid with z-coordinate from 0 to 6.28 i.e. 2*pi
>>>>> i.e. does not consider it as angle.
>>>>> It might be that it's due to the order of coordinates used by visit
>>>>> which is r,θ,z​ as opposed to r,z,θ​ in FLASH.
>>>>> yt has also not worked.
>>>>>
>>>>> Any help is highly appreciated.
>>>>>
>>>>> Thanks,
>>>>> -Rahul
>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://flash.rochester.edu/pipermail/flash-users/attachments/20170128/54d65560/attachment.htm>


More information about the flash-users mailing list