Ahh, I think I see the issue.  hg has very strong backward
compatibility; however, if a higher versioned hg operates on a repo,
it can up-convert it.  So what I think is happening is that you're
using an old hg on a repo that's been updated by a newer hg.  Any
chance you've switched to, say, the system mercurial after using a
personally-installed one?

Not intentionally: I normally opt for the install script. But I may have done it under careful direction at some point. Is the best thing to do a refresh install from the repo?

Elizabeth
 


Also, I think this is what's preventing "yt update" from working!

-Matt


E.


On 25 April 2014 17:44, Matthew Turk <matthewturk@gmail.com> wrote:

Hi Elizabeth,

On Fri, Apr 25, 2014 at 4:38 AM, Elizabeth Tasker
<tasker@astro1.sci.hokudai.ac.jp> wrote:
Hi Matt,

Thanks! This is:

yt module located at:
   /home/tasker/yt-new2/src/yt-hg

The current version of the code is:

---
81c2f6f5f983
---


Elizabeth

I've just checked, and I am able to replicate the error with this
changeset using this script:

from yt.mods import *
pf = load("IsolatedGalaxy/galaxy0030/galaxy0030")
level = 0
left = [0.0, 0.0, 0.0]
dims = [16, 16, 16]
cgrid = pf.h.covering_grid(level, left_edge = left, dims=dims,
num_ghost_zones=2)

However, when I update to the current tip of the yt branch,
1a67d558b51c, it works.  :)

-Matt



On 25 April 2014 17:34, Matthew Turk <matthewturk@gmail.com> wrote:

Hi Elizabeth,

On Fri, Apr 25, 2014 at 3:40 AM, Elizabeth Tasker
<tasker@astro1.sci.hokudai.ac.jp> wrote:
Hi,

I've hit a problem with the latest version of yt and covering grid
that
is
linked with the number of ghostzones. My code looked like:

for dim in range(3):

     left.append(cloud_position[c][dim] - 0.5*width[dim])
     right.append(cloud_position[c][dim] + 0.5*width[dim])
     dims.append(int(round((right[dim]-left[dim])/cellsize)))

   cgrid = pf.h.covering_grid(level,
                              left_edge = left,
                              dims=dims,
                              num_ghost_zones=2)


but gives me:

TypeError                                 Traceback (most recent call
last)
/home/tasker/yt-new2/src/yt-hg/scripts/iyt in <module>()
----> 1 execfile("export_hdf5_cube.py")

/home/tasker/yt-new2/src/yt-hg/scripts/iyt in <module>()
    51                                left_edge = left,
    52                                dims=dims,
---> 53                                num_ghost_zones=2)
    54
    55

/home/tasker/yt-new2/src/yt-hg/yt/data_objects/data_containers.pyc in
__init__(self, level, left_edge, dims, fields, pf, num_ghost_zones,
use_pbar, **kwargs)
  3689         self.level = level
  3690         rdx =
self.pf.domain_dimensions*self.pf.refine_by**level
-> 3691         rdx[np.where(dims - 2 * num_ghost_zones <= 1)] = 1
#
issue
602
  3692         self.dds = self.pf.domain_width /
rdx.astype("float64")
  3693         self.ActiveDimensions = np.array(dims, dtype='int32')

TypeError: unsupported operand type(s) for -: 'list' and 'int'




This happens regardless of whether I use num_ghost_zones or not. If I
don't
have ghost_zones set, the error occurs at line 52, but still points
to
line
3691. Dims and left look fine:

In [9]: dims
Out[9]: [64, 64, 64]

In [10]: left
Out[10]: [20.424700000000001, 11.512700000000001, 15.7158]

In [11]: level
Out[11]: 5

In [14]: rdx = pf.domain_dimensions*pf.refine_by**level
In [15]: rdx
Out[15]: array([4096, 4096, 4096])


If I set num_ghost_zones = na.array([0,0,0]) then it runs. However,
if I
then try

cgrid["x"]

I hit more problems circulating around the same area:

ValueError                                Traceback (most recent call
last)
/home/tasker/yt-new2/src/yt-hg/scripts/iyt in <module>()
----> 1 cgrid["y"]

/home/tasker/yt-new2/src/yt-hg/yt/data_objects/data_containers.pyc in
__getitem__(self, key)
   316             if key not in self.fields:
   317                 self.fields.append(key)
--> 318             self.get_data(key)
   319         return self.field_data[key]
   320

/home/tasker/yt-new2/src/yt-hg/yt/data_objects/data_containers.pyc in
get_data(self, fields)
  3733                 try:
  3734                     #print "Generating", field
-> 3735                     self._generate_field(field)
  3736                     continue
  3737                 except NeedsOriginalGrid, ngt_exception:

/home/tasker/yt-new2/src/yt-hg/yt/data_objects/data_containers.pyc in
_generate_field(self, field)
  3764         if self.pf.field_info.has_key(field):
  3765             # First we check the validator; this might even
raise!
-> 3766             self.pf.field_info[field].check_available(self)
  3767             self[field] = self.pf.field_info[field](self)
  3768         else: # Can't find the field, try as it might


/home/tasker/yt-new2/src/yt-hg/yt/data_objects/field_info_container.pyc
in
check_available(self, data)
   354         """
   355         for validator in self.validators:
--> 356             validator(data)
   357         # If we don't get an exception, we're good to go
   358         return True


/home/tasker/yt-new2/src/yt-hg/yt/data_objects/field_info_container.pyc
in
__call__(self, data)
   482         if not data._spatial:
   483             raise NeedsGridType(self.ghost_zones,self.fields)
--> 484         if self.ghost_zones <= data._num_ghost_zones:
   485             return True
   486         raise NeedsGridType(self.ghost_zones,self.fields)

ValueError: The truth value of an array with more than one element is
ambiguous. Use a.any() or a.all()


cgrid["Density"] and the velocities are fine.

I'm suspecting this is because the position calculation in the code
is
not
expecting an array for the ghost zone number?

Oddly, I see from the mailing list is this reminiscent of a problem
nyx
was
having.

Yes, and it feels like this exact issue -- where dims are lists, not
arrays -- gets fixed over and over and over again.  :(  Can you report
which changeset you're on, and I'll push a fix?

-Matt


Elizabeth

_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org

_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org



_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org

_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org



_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org

_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org