[yt-dev] Issue #1312: depositing particle velocities in gadget (yt_analysis/yt)

Desika Narayanan issues-reply at bitbucket.org
Tue Jan 17 12:31:52 PST 2017


New issue 1312: depositing particle velocities in gadget
https://bitbucket.org/yt_analysis/yt/issues/1312/depositing-particle-velocities-in-gadget

Desika Narayanan:

Trying to add a deposited particle field from gadget particle velocities (say, gas in this instance; https://paste.yt-project.org/show/6999/  ) returns error:





```

In [1]: run vel_proj
yt : [INFO     ] 2017-01-17 15:27:33,808 Calculating time from 3.448e-01 to be 1.108e+17 seconds
yt : [INFO     ] 2017-01-17 15:27:33,808 Assuming length units are in kpc/h (comoving)
yt : [INFO     ] 2017-01-17 15:27:33,825 Parameters: current_time              = 1.10758107325e+17 s
yt : [INFO     ] 2017-01-17 15:27:33,825 Parameters: domain_dimensions         = [2 2 2]
yt : [INFO     ] 2017-01-17 15:27:33,825 Parameters: domain_left_edge          = [ 0.  0.  0.]
yt : [INFO     ] 2017-01-17 15:27:33,826 Parameters: domain_right_edge         = [ 64000.  64000.  64000.]
yt : [INFO     ] 2017-01-17 15:27:33,826 Parameters: cosmological_simulation   = 1
yt : [INFO     ] 2017-01-17 15:27:33,826 Parameters: current_redshift          = 1.89999652869
yt : [INFO     ] 2017-01-17 15:27:33,826 Parameters: omega_lambda              = 0.721
yt : [INFO     ] 2017-01-17 15:27:33,827 Parameters: omega_matter              = 0.279
yt : [INFO     ] 2017-01-17 15:27:33,827 Parameters: hubble_constant           = 0.7
yt : [INFO     ] 2017-01-17 15:27:33,830 Allocating for 1.191e+07 particles (index particle type 'all')
yt : [INFO     ] 2017-01-17 15:27:35,746 Identified 8.088e+05 octs
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/Users/desika/Dropbox/scratch/vel_proj.py in <module>()
      6
      7 ds.add_deposited_particle_field( ('PartType0', 'particle_velocity_y'),"sum")
----> 8 print ad[('deposit', 'PartType0_sum_velocity_y')]
/Users/desika/yt/yt/data_objects/data_containers.pyc in __getitem__(self, key)
    279                 return self.field_data[f]
    280             else:
--> 281                 self.get_data(f)
    282         # fi.units is the unit expression string. We depend on the registry
    283         # hanging off the dataset to define this unit object.
/Users/desika/yt/yt/data_objects/data_containers.pyc in get_data(self, fields)
   1331
   1332         fields_to_generate += gen_fluids + gen_particles
-> 1333         self._generate_fields(fields_to_generate)
   1334         for field in list(self.field_data.keys()):
   1335             if field not in ofields:
/Users/desika/yt/yt/data_objects/data_containers.pyc in _generate_fields(self, fields_to_generate)
   1351                 fi = self.ds._get_field_info(*field)
   1352                 try:
-> 1353                     fd = self._generate_field(field)
   1354                     if fd is None:
   1355                         raise RuntimeError
/Users/desika/yt/yt/data_objects/data_containers.pyc in _generate_field(self, field)
    316                 tr = self._generate_particle_field(field)
    317             else:
--> 318                 tr = self._generate_fluid_field(field)
    319             if tr is None:
    320                 raise YTCouldNotGenerateField(field, self.ds)
/Users/desika/yt/yt/data_objects/data_containers.pyc in _generate_fluid_field(self, field)
    334             finfo.check_available(gen_obj)
    335         except NeedsGridType as ngt_exception:
--> 336             rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones)
    337         else:
    338             rv = finfo(gen_obj)
/Users/desika/yt/yt/data_objects/data_containers.pyc in _generate_spatial_fluid(self, field, ngz)
    354                     o = self._current_chunk.objs[0]
    355                     with o._activate_cache():
--> 356                         ind += o.select(self.selector, self[field], rv, ind)
    357         else:
    358             chunks = self.index._chunk(self, "spatial", ngz = ngz)
/Users/desika/yt/yt/data_objects/data_containers.pyc in __getitem__(self, key)
    279                 return self.field_data[f]
    280             else:
--> 281                 self.get_data(f)
    282         # fi.units is the unit expression string. We depend on the registry
    283         # hanging off the dataset to define this unit object.
/Users/desika/yt/yt/data_objects/data_containers.pyc in get_data(self, fields)
   1331
   1332         fields_to_generate += gen_fluids + gen_particles
-> 1333         self._generate_fields(fields_to_generate)
   1334         for field in list(self.field_data.keys()):
   1335             if field not in ofields:
/Users/desika/yt/yt/data_objects/data_containers.pyc in _generate_fields(self, fields_to_generate)
   1351                 fi = self.ds._get_field_info(*field)
   1352                 try:
-> 1353                     fd = self._generate_field(field)
   1354                     if fd is None:
   1355                         raise RuntimeError
/Users/desika/yt/yt/data_objects/data_containers.pyc in _generate_field(self, field)
    316                 tr = self._generate_particle_field(field)
    317             else:
--> 318                 tr = self._generate_fluid_field(field)
    319             if tr is None:
    320                 raise YTCouldNotGenerateField(field, self.ds)
/Users/desika/yt/yt/data_objects/data_containers.pyc in _generate_fluid_field(self, field)
    336             rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones)
    337         else:
--> 338             rv = finfo(gen_obj)
    339         return rv
    340
/Users/desika/yt/yt/fields/derived_field.pyc in __call__(self, data)
    218                 "for %s" % (self.name,))
    219         with self.unit_registry(data):
--> 220             dd = self._function(self, data)
    221         for field_name in data.keys():
    222             if field_name not in original_fields:
/Users/desika/yt/yt/data_objects/static_output.pyc in _deposit_field(field, data)
   1215             else:
   1216                 d = data.ds.arr(data.deposit(pos, [data[ptype, deposit_field]],
-> 1217                                              method=method, kernel_name=kernel_name),
   1218                                              input_units=units)
   1219             return d
/Users/desika/yt/yt/data_objects/octree_subset.pyc in deposit(self, positions, fields, method, kernel_name)
    193         fields = [np.asarray(f, dtype="float64") for f in fields]
    194         op.process_octree(self.oct_handler, self.domain_ind, pos, fields,
--> 195             self.domain_id, self._domain_offset)
    196         vals = op.finalize()
    197         if vals is None: return
/Users/desika/yt/yt/geometry/particle_deposit.pyx in yt.geometry.particle_deposit.ParticleDepositOperation.process_octree (yt/geometry/particle_deposit.c:4579)()
     61         nf = len(fields)
     62         cdef np.float64_t[::cython.view.indirect, ::1] field_pointers
---> 63         if nf > 0: field_pointers = OnceIndirect(fields)
     64         cdef np.float64_t pos[3]
     65         cdef np.float64_t[:] field_vals = np.empty(nf, dtype="float64")
ValueError: Buffer and memoryview are not contiguous in the same dimension.
```

Responsible: MatthewTurk


More information about the yt-dev mailing list