[yt-users] YT 2.7 - Getting field values in code units

James Larrue-Baulch james.larrue at diopolis.com
Mon Jul 6 13:26:30 PDT 2015


Thanks, Nathan.  In the end, I grabbed the conversion factor from the 
Enzo data file, then effectively did:

ray[xFieldName] = ray[xFieldName] / conversionFactorFromEnzoDataFile

James

On 15-07-04 12:53 AM, Nathan Goldbaum wrote:
>
>
> On Friday, July 3, 2015, James Larrue-Baulch 
> <james.larrue at diopolis.com <mailto:james.larrue at diopolis.com>> wrote:
>
>     Hello,
>
>     I have been working on a system with YT 2.7-dev (changeset
>     1b93a1840f38) and trying to graph field values in code units,
>     specifically the density, but I cannot figure out how to convert
>     to code units in YT 2.  My data is from an Enzo cosmology
>     simulation (i.e. expansion ON).
>
>     If I were using YT 3, I believe the following would work to
>     convert to any units desired:
>
>     dataSet = load(inputDataFileName);
>     hierarchy = dataSet.index;
>     maxValue = hierarchy.find_max(dataFieldName)
>     ray = hierarchy.ortho_ray(0, (maxValue[1][1], maxValue[1][2]));
>     ray[xFieldName].convert_to_units(xAxisUnit);
>     // use "code_mass", "code_length", "code_time", etc. to get code
>     units.
>
>     With YT 2, I am trying:
>
>     dataSet = load(inputDataFileName);
>     hierarchy = dataSet.hierarchy;
>     maxValue = hierarchy.find_max(dataFieldName)
>     ray = hierarchy.ortho_ray(0, (maxValue[1][1], maxValue[1][2]));
>     ray[xFieldName] = ray[xFieldName] * dataSet.units[xAxisUnit];
>
>     This works fine, if my "xAxisUnit" is a length unit, but no other
>     units seem to be recognized.  While testing density, I tried to
>     convert from cgs to mks:
>
>     KeyError: 'kg/m^3'
>
>     I listed the values in dataSet.units and they look to be only
>     length units.
>
>     Should I just give up on YT 2 and move to a machine that has YT 3,
>     or is it possible to convert density units with YT 2?
>
>
> Specifically for Enzo this is really awkward in yt 2.7. Since Enzo 
> field named are used everywhere internally, and we expect them to be 
> CGS, getting the Enzo data in code units is actually really awkward.
>
> There a way to do it by hard-coding the CGS conversion factors to 
> unity (sorry I don't remember the precise syntax offhand, I think Dave 
> Collins asked about something similar a year or two ago), but honestly 
> it would likely be easier to just move to update your yt installation.
>
> Usually these days the first thing I do on a cluster is set up a 
> bare-bones Python environment in my home folder using miniconda. I 
> then install yt's dependencies, and then yt itself. Everything is in 
> my home folder, so I don't need root privileges. Since conda packages 
> are binaries, this process is also a lot faster than running the 
> install script. If you need to run the development version of yt, you 
> can install mercurial, clone the yt repository and install it using 
> "setup.py develop" for easy in-place hacking.
>
> Hope that helps,
>
> Nathan
>
>     Regards,
>
>     James
>
>     PS The full script I am using is:
>
>     https://bitbucket.org/james_larrue/enzo-3.0-experimental/src/f425b7d5a10bf0da7cfd2fc146a464305f83d256/src/python/enzo-dataExporter.py?at=enzo-dev
>
>     but it contains much more code than my immediate goal.
>     _______________________________________________
>     yt-users mailing list
>     yt-users at lists.spacepope.org
>     http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20150706/c3fb2d52/attachment.htm>


More information about the yt-users mailing list