[Yt-svn] yt-commit r557 - trunk/yt/raven
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Fri Jun 13 18:33:15 PDT 2008
Author: mturk
Date: Fri Jun 13 18:33:15 2008
New Revision: 557
URL: http://yt.spacepope.org/changeset/557
Log:
Added an add_vectors function to the simple volume rendering.
(incidentally, vectors? they sure can get confusing...)
Modified:
trunk/yt/raven/Plot3DInterface.py
Modified: trunk/yt/raven/Plot3DInterface.py
==============================================================================
--- trunk/yt/raven/Plot3DInterface.py (original)
+++ trunk/yt/raven/Plot3DInterface.py Fri Jun 13 18:33:15 2008
@@ -176,6 +176,31 @@
dims=[self.dims]*3, fields=[self.field])
return data_grid
+ def add_vectors(self, vfields, dims, offsets = None):
+ tr = na.array([
+ self.x0, (self.x1-self.x0)/(dims-1.0), 0 , 0,
+ self.y0, 0 , (self.y1-self.y0)/(dims-1.0), 0,
+ self.z0, 0 , 0 , (self.z1-self.z0)/(dims-1.0)
+ ])
+ dx = self.width / dims
+ max_level = na.unique(self.pf.h.gridDxs[self.pf.h.gridDxs>=dx]).argmax()+1
+ vector_grid = self.pf.h.smoothed_covering_grid(
+ level=max_level,
+ left_edge=self.center - self.width/2.0,
+ right_edge=self.center + self.width/2.0,
+ dims=[dims]*3, fields=vfields)
+ if offsets is not None:
+ for i,vfield in enumerate(vfields): vector_grid[vfield] -= offsets[i]
+ vec_mags = na.sqrt(na.array(
+ [vector_grid[vf].ravel()**2.0
+ for vf in vfields]).sum(axis=0))
+ dmin, dmax = vec_mags.min(), vec_mags.max()
+ v1, v2, v3 = [vector_grid[vfield] for vfield in vfields]
+ s2plot.s2vect3(v1, v2, v3,
+ dims, dims, dims,
+ 0, dims-1, 0, dims-1, 0, dims-1, 1.0/(dims*dmax),
+ 1, tr, 0, 1, dmin, dmax)
+
class VolumeRendering3DProfile(VolumeRendering):
def __init__(self, profile, field, **kwargs):
self.profile = profile
More information about the yt-svn
mailing list