[yt-users] Error in TotalMass in RAMSES

Sam Geen samgeen at astro.ox.ac.uk
Mon Feb 3 05:34:42 PST 2014


Hi,

I'm trying to find the total energy (kinetic and thermal) in grid cells 
in a gas-only simulation in RAMSES. I was playing with the functions in 
the documentation when I ran into an error "YTCouldNotGenerateField: 
Could field '('all', 'particle_mass')' in info_00014 could not be 
generated." (full log below)

I'm unsure if this is a problem with the RAMSES frontend throwing an 
error if there are no particles present, or something else (e.g. whether 
it's not supposed to work with gas-only simulations). I'm sure there's 
probably a better way to achieve what I was trying to do, but I thought 
I'd post this up here in case it's a bug.

Incidentally - would it be a problem if the RAMSES accepted 
"output_XXXXX" rather than just "output_XXXXX/info_XXXXX.txt"? The 
latter is more cumbersome, but I suppose the former might cause problems 
if another code also uses the format "output_XXXXX".

Cheers,

Sam

---
(c.f. 
http://yt-project.org/docs/dev/analyzing/objects.html#processing-objects-derived-quantities)
In [18]: dd.quantities["TotalMass"]()
yt : [DEBUG    ] 2014-02-03 12:42:12,067 Filling Density with 174760 
(2.287e-02 9.034e+01) (174760 zones)
---------------------------------------------------------------------------
YTCouldNotGenerateField                   Traceback (most recent call last)
<ipython-input-18-7ea9fe75efad> in <module>()
----> 1 dd.quantities["TotalMass"]()

/home/samgeen/Programming/yt/yt/yt/data_objects/derived_quantities.pyc 
in __call__(self, *args, **kwargs)
      63         chunks = self._data_source.chunks([], chunking_style="io")
      64         for ds in parallel_objects(chunks, -1):
---> 65             rv = self.func(ds, *args, **kwargs)
      66             if not iterable(rv): rv = (rv,)
      67             for i in range(self.n_ret): retvals[i].append(rv[i])

/home/samgeen/Programming/yt/yt/yt/data_objects/derived_quantities.pyc 
in _TotalMass(data)
     119         cell_mass = 0.0
     120     try:
--> 121         particle_mass = _TotalQuantity(data,["ParticleMassMsun"])
     122     except KeyError:
     123         particle_mass = 0.0

/home/samgeen/Programming/yt/yt/yt/data_objects/derived_quantities.pyc 
in _TotalQuantity(data, fields)
     697     totals = []
     698     for field in fields:
--> 699         if data[field].size < 1:
     700 totals.append(np.zeros(1,dtype=prec_accum[data[field].dtype])[0])
     701             continue

/home/samgeen/Programming/yt/yt/yt/data_objects/data_containers.pyc in 
__getitem__(self, key)
     189                 return self.field_data[f]
     190             else:
--> 191                 self.get_data(f)
     192         # Note that this is less succinct so that we can 
account for the case
     193         # when there are, for example, no elements in the object.

/home/samgeen/Programming/yt/yt/yt/data_objects/data_containers.pyc in 
get_data(self, fields)
     580         self.field_data.update(read_particles)
     581         fields_to_generate += gen_fluids + gen_particles
--> 582         self._generate_fields(fields_to_generate)
     583
     584     def _generate_fields(self, fields_to_generate):

/home/samgeen/Programming/yt/yt/yt/data_objects/data_containers.pyc in 
_generate_fields(self, fields_to_generate)
     596                 if field in self.field_data: continue
     597                 try:
--> 598                     self.field_data[field] = 
self._generate_field(field)
     599                 except GenerationInProgress as gip:
     600                     for f in gip.fields:

/home/samgeen/Programming/yt/yt/yt/data_objects/data_containers.pyc in 
_generate_field(self, field)
     221                 tr = self._generate_fluid_field(field)
     222             if tr is None:
--> 223                 raise YTCouldNotGenerateField(field, self.pf)
     224             return tr
     225

YTCouldNotGenerateField: Could field '('all', 'particle_mass')' in 
info_00014 could not be generated.





More information about the yt-users mailing list