[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