<div dir="ltr">I'll give that a shot.  Thanks!<br><br>d.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 23, 2013 at 12:40 PM, Matthew Turk <span dir="ltr"><<a href="mailto:matthewturk@gmail.com" target="_blank">matthewturk@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Tue, Jul 23, 2013 at 11:36 AM, David Collins <<a href="mailto:dcollins4096@gmail.com">dcollins4096@gmail.com</a>> wrote:<br>


> I've simplified my test a bit, and now I'm only examining MagneticField_C_1,<br>
> which is the name of the primitive field that lives in the file (This is an<br>
> old dataset, before the mhdct names were unified with the rest of Enzo)<br>
><br>
> I can query MagneticField_C_1 directly in parallel, but trying to do the<br>
> weighted average as above fails.  Adding preload=False does work--what does<br>
> that do and why does it work?<br>
><br>
> I'm adding the field with the following in the plugin file-- this is for<br>
> historical reasons, I guess, I haven't touched this in several years:<br>
><br>
> for fff in mag_fields:<br>
>     exec('maglam_%s = lambda a: a.convert("%s")'%(fff,fff))<br>
>     exec('add_field("%s",lambda a, b: None, convert_function = maglam_%s,<br>
> take_log = False)'%(fff,fff))<br>
><br>
> Is that a possible source of problem?<br>
<br>
</div>Yeah, I think so.  I would encourage you not to use execs but to use<br>
closures for this, but at the bare minimum changing from "lambda a, b:<br>
None" to NullFunc (defined in field_info_container.py) may fix the<br>
problem.<br>
<br>
-Matt<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> Thanks a ton,<br>
><br>
> d.<br>
><br>
><br>
><br>
><br>
> On Tue, Jul 23, 2013 at 12:08 PM, Matthew Turk <<a href="mailto:matthewturk@gmail.com">matthewturk@gmail.com</a>><br>
> wrote:<br>
>><br>
>> Hi Dave,<br>
>><br>
>> Usually this means that it's not getting a field -- sorry for the<br>
>> obtuse error message.  What happens if you try specifying<br>
>> preload=False, or if you query MagneticEnergy directly?<br>
>><br>
>> -Matt<br>
>><br>
>> On Tue, Jul 23, 2013 at 1:58 PM, David Collins <<a href="mailto:dcollins4096@gmail.com">dcollins4096@gmail.com</a>><br>
>> wrote:<br>
>> > Hi, all--<br>
>> ><br>
>> > I have an odd error trying to get some averaged quantities in parallel.<br>
>> > I'm<br>
>> > trying to do<br>
>> ><br>
>> ><br>
>> > pf.h.all_data().quantities['WeightedAverageQuantity']('MagneticEnergy','CellVolume')<br>
>> ><br>
>> > on two processors, and I get the following error:<br>
>> ><br>
>> > File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 396, in __call__<br>
>> > dd *= self._convert_function(data)<br>
>> > TypeError: unsupported operand type(s) for *=: 'NoneType' and 'int'<br>
>> ><br>
>> > It works fine in serial, and it works fine if I use "VelocityMagnitude"<br>
>> > instead of "MagneticEnergy"<br>
>> ><br>
>> > Does anyone have an idea about what I'm doing wrong?<br>
>> ><br>
>> > I run it as<br>
>> >> mpirun -np 2 python p23_go.py --parallel<br>
>> ><br>
>> > and the full trace back is:<br>
>> ><br>
>> > Traceback (most recent call last):<br>
>> >   File "ptmp.py", line 5, in <module><br>
>> >     bavg =<br>
>> > ad.quantities['WeightedAverageQuantity']('MagneticEnergy','CellVolume')<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/derived_quantities.py",<br>
>> > line 87, in __call__<br>
>> > Traceback (most recent call last):<br>
>> >   File "ptmp.py", line 5, in <module><br>
>> >     bavg =<br>
>> > ad.quantities['WeightedAverageQuantity']('MagneticEnergy','CellVolume')<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/derived_quantities.py",<br>
>> > line 87, in __call__<br>
>> >     self.func(e, *args, **kwargs)<br>
>> >     self.func(e, *args, **kwargs)<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/derived_quantities.py",<br>
>> > line 203, in _WeightedAverageQuantity<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/derived_quantities.py",<br>
>> > line 203, in _WeightedAverageQuantity<br>
>> >     num = (data[field] * data[weight]).sum()<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 257, in __missing__<br>
>> >     num = (data[field] * data[weight]).sum()<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 257, in __missing__<br>
>> >     vv = FI[item](self)<br>
>> >     vv = FI[item](self)<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 395, in __call__<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 395, in __call__<br>
>> >     dd = self._function(self, data)<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/universal_fields.py",<br>
>> > line 1016, in _MagneticEnergy<br>
>> >     dd = self._function(self, data)<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/universal_fields.py",<br>
>> > line 1016, in _MagneticEnergy<br>
>> >     return (data["Bx"]**2 + data["By"]**2 + data["Bz"]**2)/(8*np.pi)<br>
>> >     return (data["Bx"]**2 + data["By"]**2 + data["Bz"]**2)/(8*np.pi)<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 257, in __missing__<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 257, in __missing__<br>
>> >     vv = FI[item](self)<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 396, in __call__<br>
>> >     vv = FI[item](self)<br>
>> >   File<br>
>> ><br>
>> > "/nics/b/home/collins/local_2013_03_12/src/yt-hg/yt/data_objects/field_info_container.py",<br>
>> > line 396, in __call__<br>
>> >     dd *= self._convert_function(data)<br>
>> > TypeError: unsupported operand type(s) for *=: 'NoneType' and 'int'<br>
>> >     dd *= self._convert_function(data)<br>
>> > TypeError: unsupported operand type(s) for *=: 'NoneType' and 'int'<br>
>> ><br>
>> > Thanks a ton!<br>
>> ><br>
>> ><br>
>> > --<br>
>> > -- Sent from a computer.<br>
>> ><br>
>> > _______________________________________________<br>
>> > yt-users mailing list<br>
>> > <a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
>> > <a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
>> ><br>
>> _______________________________________________<br>
>> yt-users mailing list<br>
>> <a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
>> <a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
><br>
><br>
><br>
><br>
> --<br>
> -- Sent from a computer.<br>
><br>
> _______________________________________________<br>
> yt-users mailing list<br>
> <a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
> <a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
><br>
_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr">-- Sent from a computer.<br></div>
</div>