[yt-svn] commit/yt: 5 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Mon Mar 24 11:47:12 PDT 2014
5 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/b6280ff897df/
Changeset: b6280ff897df
Branch: yt-3.0
User: MatthewTurk
Date: 2014-03-23 23:28:06
Summary: Changing RunTime to Runtime.
Affected #: 1 file
diff -r 4646247054fb995eb10d56ea41af868479098bdb -r b6280ff897df7c32007f941169d7d01ea07f6fe9 yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -178,9 +178,9 @@
dx[i].append(DRE[2] - DLE[1])
self.level_dds = np.array(dx, dtype="float64")
if int(header_file.next()) != 0:
- raise RunTimeError("yt only supports cartesian coordinates.")
+ raise RuntimeError("yt only supports cartesian coordinates.")
if int(header_file.next()) != 0:
- raise RunTimeError("INTERNAL ERROR! This should be a zero.")
+ raise RuntimeError("INTERNAL ERROR! This should be a zero.")
# each level is one group with ngrids on it.
# each grid has self.dimensionality number of lines of 2 reals
https://bitbucket.org/yt_analysis/yt/commits/6cb14e8a4f4c/
Changeset: 6cb14e8a4f4c
Branch: yt-3.0
User: MatthewTurk
Date: 2014-03-23 23:54:50
Summary: Updating cylindrical coordinates and adding for Boxlib.
Affected #: 2 files
diff -r b6280ff897df7c32007f941169d7d01ea07f6fe9 -r 6cb14e8a4f4c4bd138fd3f199b553143f31a4f0b yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -177,8 +177,18 @@
if self.dimensionality < 3:
dx[i].append(DRE[2] - DLE[1])
self.level_dds = np.array(dx, dtype="float64")
- if int(header_file.next()) != 0:
- raise RuntimeError("yt only supports cartesian coordinates.")
+ coordinate_type = int(header_file.next())
+ if self.pf.geometry == "cartesian":
+ default_ybounds = (0.0, 1.0)
+ default_zbounds = (0.0, 1.0)
+ elif self.pf.geometry == "cylindrical":
+ # Now we check for dimensionality issues
+ if self.dimensionality != 2:
+ raise RuntimeError("yt needs cylindrical to be 2D")
+ self.level_dds[:,2] = 2*np.pi
+ default_zbounds = (0.0, 2*np.pi)
+ else:
+ raise RuntimeError("yt only supports cartesian and cylindrical coordinates.")
if int(header_file.next()) != 0:
raise RuntimeError("INTERNAL ERROR! This should be a zero.")
@@ -196,11 +206,11 @@
if self.dimensionality > 1:
ylo, yhi = [float(v) for v in header_file.next().split()]
else:
- ylo, yhi = 0.0, 1.0
+ ylo, yhi = default_ybounds
if self.dimensionality > 2:
zlo, zhi = [float(v) for v in header_file.next().split()]
else:
- zlo, zhi = 0.0, 1.0
+ zlo, zhi = default_zbounds
self.grid_left_edge[grid_counter + gi, :] = [xlo, ylo, zlo]
self.grid_right_edge[grid_counter + gi, :] = [xhi, yhi, zhi]
# Now we get to the level header filename, which we open and parse.
@@ -569,6 +579,14 @@
# Skip timesteps per level
header_file.readline()
self._header_mesh_start = header_file.tell()
+ header_file.next()
+ coordinate_type = int(header_file.next())
+ if coordinate_type == 0:
+ self.geometry = "cartesian"
+ elif coordinate_type == 1:
+ self.geometry = "cylindrical"
+ else:
+ raise RuntimeError("yt does not yet support spherical geometry")
# overrides for 1/2-dimensional data
if self.dimensionality == 1:
@@ -597,12 +615,12 @@
self.periodicity = ensure_tuple(tmp)
def _setup2d(self):
-# self._index_class = BoxlibHierarchy2D
-# self._fieldinfo_fallback = Orion2DFieldInfo
self.domain_left_edge = \
np.concatenate([self.domain_left_edge, [0.0]])
self.domain_right_edge = \
np.concatenate([self.domain_right_edge, [1.0]])
+ if self.geometry == "cylindrical":
+ self.domain_right_edge[2] = 2.0 * np.pi
tmp = self.domain_dimensions.tolist()
tmp.append(1)
self.domain_dimensions = np.array(tmp)
diff -r b6280ff897df7c32007f941169d7d01ea07f6fe9 -r 6cb14e8a4f4c4bd138fd3f199b553143f31a4f0b yt/geometry/cylindrical_coordinates.py
--- a/yt/geometry/cylindrical_coordinates.py
+++ b/yt/geometry/cylindrical_coordinates.py
@@ -36,54 +36,37 @@
registry.add_field(("index", "dy"), function=_unknown_coord)
registry.add_field(("index", "x"), function=_unknown_coord)
registry.add_field(("index", "y"), function=_unknown_coord)
+ def _get_coord_fields(axi, units = "code_length"):
+ def _dds(field, data):
+ rv = data.pf.arr(data.fwidth[...,axi], units)
+ return data._reshape_vals(rv)
+ def _coords(field, data):
+ rv = data.pf.arr(data.fcoords[...,axi], units)
+ return data._reshape_vals(rv)
+ return _dds, _coords
+ f1, f2 = _get_coord_fields(0)
+ registry.add_field(("index", "dr"), function = f1,
+ display_field = False,
+ units = "code_length")
+ registry.add_field(("index", "r"), function = f2,
+ display_field = False,
+ units = "code_length")
- def _dr(field, data):
- return np.ones(data.ActiveDimensions, dtype='float64') * data.dds[0]
- registry.add_field(("index", "dr"),
- function=_dr,
- display_field=False,
- validators=[ValidateSpatial(0)])
+ f1, f2 = _get_coord_fields(1)
+ registry.add_field(("index", "dz"), function = f1,
+ display_field = False,
+ units = "code_length")
+ registry.add_field(("index", "z"), function = f2,
+ display_field = False,
+ units = "code_length")
- def _dz(field, data):
- return np.ones(data.ActiveDimensions, dtype='float64') * data.dds[1]
- registry.add_field(("index", "dz"),
- function=_dz,
- display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _dtheta(field, data):
- return np.ones(data.ActiveDimensions, dtype='float64') * data.dds[2]
- registry.add_field(("index", "dtheta"),
- function=_dtheta,
- display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _coordR(field, data):
- dim = data.ActiveDimensions[0]
- return (np.ones(data.ActiveDimensions, dtype='float64')
- * np.arange(data.ActiveDimensions[0])[:,None,None]
- +0.5) * data["index", "dr"] + data.LeftEdge[0]
- registry.add_field(("index", "r"),
- function=_coordR, display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _coordZ(field, data):
- dim = data.ActiveDimensions[1]
- return (np.ones(data.ActiveDimensions, dtype='float64')
- * np.arange(data.ActiveDimensions[1])[None,:,None]
- +0.5) * data["index", "dz"] + data.LeftEdge[1]
- registry.add_field(("index", "z"),
- function=_coordZ, display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _coordTheta(field, data):
- dim = data.ActiveDimensions[2]
- return (np.ones(data.ActiveDimensions, dtype='float64')
- * np.arange(data.ActiveDimensions[2])[None,None,:]
- +0.5) * data["index", "dtheta"] + data.LeftEdge[2]
- registry.add_field(("index", "theta"),
- function=_coordTheta, display_field=False,
- validators=[ValidateSpatial(0)])
+ f1, f2 = _get_coord_fields(2, "")
+ registry.add_field(("index", "dtheta"), function = f1,
+ display_field = False,
+ units = "")
+ registry.add_field(("index", "theta"), function = f2,
+ display_field = False,
+ units = "")
def _CylindricalVolume(field, data):
return data["index", "dtheta"] \
@@ -91,7 +74,8 @@
* data["index", "dr"] \
* data["index", "dz"]
registry.add_field(("index", "cell_volume"),
- function=_CylindricalVolume)
+ function=_CylindricalVolume,
+ units = "code_length**3")
def pixelize(self, dimension, data_source, field, bounds, size, antialias = True):
https://bitbucket.org/yt_analysis/yt/commits/68c7b377b422/
Changeset: 68c7b377b422
Branch: yt-3.0
User: MatthewTurk
Date: 2014-03-24 00:56:51
Summary: A few more boxlib fields
Affected #: 1 file
diff -r 6cb14e8a4f4c4bd138fd3f199b553143f31a4f0b -r 68c7b377b4228da4deed0fe5f27fd76fe631eecc yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -49,6 +49,8 @@
("ymom", (mom_units, ["momentum_y"], None)),
("zmom", (mom_units, ["momentum_z"], None)),
("temperature", ("K", ["temperature"], None)),
+ ("x_velocity", ("cm/s", ["velocity_x"], None)),
+ ("y_velocity", ("cm/s", ["velocity_y"], None)),
)
known_particle_fields = (
https://bitbucket.org/yt_analysis/yt/commits/4abe29207508/
Changeset: 4abe29207508
Branch: yt-3.0
User: MatthewTurk
Date: 2014-03-24 18:56:34
Summary: Move _get_coord_fields to top-level in a module.
Affected #: 3 files
diff -r 68c7b377b4228da4deed0fe5f27fd76fe631eecc -r 4abe29207508e6a3a167117c748d79ed33dd04dd yt/geometry/cartesian_coordinates.py
--- a/yt/geometry/cartesian_coordinates.py
+++ b/yt/geometry/cartesian_coordinates.py
@@ -17,7 +17,8 @@
import numpy as np
from .coordinate_handler import \
CoordinateHandler, \
- _unknown_coord
+ _unknown_coord, \
+ _get_coord_fields
class CartesianCoordinateHandler(CoordinateHandler):
@@ -25,14 +26,6 @@
super(CartesianCoordinateHandler, self).__init__(pf)
def setup_fields(self, registry):
- def _get_coord_fields(axi, ax):
- def _dds(field, data):
- rv = data.pf.arr(data.fwidth[...,axi], 'code_length')
- return data._reshape_vals(rv)
- def _coords(field, data):
- rv = data.pf.arr(data.fcoords[...,axi], 'code_length')
- return data._reshape_vals(rv)
- return _dds, _coords
for axi, ax in enumerate('xyz'):
f1, f2 = _get_coord_fields(axi, ax)
registry.add_field(("index", "d%s" % ax), function = f1,
diff -r 68c7b377b4228da4deed0fe5f27fd76fe631eecc -r 4abe29207508e6a3a167117c748d79ed33dd04dd yt/geometry/coordinate_handler.py
--- a/yt/geometry/coordinate_handler.py
+++ b/yt/geometry/coordinate_handler.py
@@ -32,6 +32,15 @@
def _unknown_coord(field, data):
raise YTCoordinateNotImplemented
+def _get_coord_fields(axi, units = "code_length"):
+ def _dds(field, data):
+ rv = data.pf.arr(data.fwidth[...,axi], units)
+ return data._reshape_vals(rv)
+ def _coords(field, data):
+ rv = data.pf.arr(data.fcoords[...,axi], units)
+ return data._reshape_vals(rv)
+ return _dds, _coords
+
class CoordinateHandler(object):
def __init__(self, pf):
diff -r 68c7b377b4228da4deed0fe5f27fd76fe631eecc -r 4abe29207508e6a3a167117c748d79ed33dd04dd yt/geometry/cylindrical_coordinates.py
--- a/yt/geometry/cylindrical_coordinates.py
+++ b/yt/geometry/cylindrical_coordinates.py
@@ -18,8 +18,8 @@
from yt.units.yt_array import YTArray
from .coordinate_handler import \
CoordinateHandler, \
- _unknown_coord
-
+ _unknown_coord, \
+ _get_coord_fields
#
# Cylindrical fields
#
@@ -36,14 +36,6 @@
registry.add_field(("index", "dy"), function=_unknown_coord)
registry.add_field(("index", "x"), function=_unknown_coord)
registry.add_field(("index", "y"), function=_unknown_coord)
- def _get_coord_fields(axi, units = "code_length"):
- def _dds(field, data):
- rv = data.pf.arr(data.fwidth[...,axi], units)
- return data._reshape_vals(rv)
- def _coords(field, data):
- rv = data.pf.arr(data.fcoords[...,axi], units)
- return data._reshape_vals(rv)
- return _dds, _coords
f1, f2 = _get_coord_fields(0)
registry.add_field(("index", "dr"), function = f1,
display_field = False,
https://bitbucket.org/yt_analysis/yt/commits/bf4b8d5911ea/
Changeset: bf4b8d5911ea
Branch: yt-3.0
User: samskillman
Date: 2014-03-24 19:47:01
Summary: Merged in MatthewTurk/yt/yt-3.0 (pull request #747)
Cylindrical coordinates for boxlib
Affected #: 5 files
diff -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 -r bf4b8d5911ea438b461a0df59f17c2260262feb9 yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -177,10 +177,20 @@
if self.dimensionality < 3:
dx[i].append(DRE[2] - DLE[1])
self.level_dds = np.array(dx, dtype="float64")
+ coordinate_type = int(header_file.next())
+ if self.pf.geometry == "cartesian":
+ default_ybounds = (0.0, 1.0)
+ default_zbounds = (0.0, 1.0)
+ elif self.pf.geometry == "cylindrical":
+ # Now we check for dimensionality issues
+ if self.dimensionality != 2:
+ raise RuntimeError("yt needs cylindrical to be 2D")
+ self.level_dds[:,2] = 2*np.pi
+ default_zbounds = (0.0, 2*np.pi)
+ else:
+ raise RuntimeError("yt only supports cartesian and cylindrical coordinates.")
if int(header_file.next()) != 0:
- raise RunTimeError("yt only supports cartesian coordinates.")
- if int(header_file.next()) != 0:
- raise RunTimeError("INTERNAL ERROR! This should be a zero.")
+ raise RuntimeError("INTERNAL ERROR! This should be a zero.")
# each level is one group with ngrids on it.
# each grid has self.dimensionality number of lines of 2 reals
@@ -196,11 +206,11 @@
if self.dimensionality > 1:
ylo, yhi = [float(v) for v in header_file.next().split()]
else:
- ylo, yhi = 0.0, 1.0
+ ylo, yhi = default_ybounds
if self.dimensionality > 2:
zlo, zhi = [float(v) for v in header_file.next().split()]
else:
- zlo, zhi = 0.0, 1.0
+ zlo, zhi = default_zbounds
self.grid_left_edge[grid_counter + gi, :] = [xlo, ylo, zlo]
self.grid_right_edge[grid_counter + gi, :] = [xhi, yhi, zhi]
# Now we get to the level header filename, which we open and parse.
@@ -569,6 +579,14 @@
# Skip timesteps per level
header_file.readline()
self._header_mesh_start = header_file.tell()
+ header_file.next()
+ coordinate_type = int(header_file.next())
+ if coordinate_type == 0:
+ self.geometry = "cartesian"
+ elif coordinate_type == 1:
+ self.geometry = "cylindrical"
+ else:
+ raise RuntimeError("yt does not yet support spherical geometry")
# overrides for 1/2-dimensional data
if self.dimensionality == 1:
@@ -597,12 +615,12 @@
self.periodicity = ensure_tuple(tmp)
def _setup2d(self):
-# self._index_class = BoxlibHierarchy2D
-# self._fieldinfo_fallback = Orion2DFieldInfo
self.domain_left_edge = \
np.concatenate([self.domain_left_edge, [0.0]])
self.domain_right_edge = \
np.concatenate([self.domain_right_edge, [1.0]])
+ if self.geometry == "cylindrical":
+ self.domain_right_edge[2] = 2.0 * np.pi
tmp = self.domain_dimensions.tolist()
tmp.append(1)
self.domain_dimensions = np.array(tmp)
diff -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 -r bf4b8d5911ea438b461a0df59f17c2260262feb9 yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -47,6 +47,8 @@
("ymom", (mom_units, ["momentum_y"], None)),
("zmom", (mom_units, ["momentum_z"], None)),
("temperature", ("K", ["temperature"], None)),
+ ("x_velocity", ("cm/s", ["velocity_x"], None)),
+ ("y_velocity", ("cm/s", ["velocity_y"], None)),
)
known_particle_fields = (
diff -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 -r bf4b8d5911ea438b461a0df59f17c2260262feb9 yt/geometry/cartesian_coordinates.py
--- a/yt/geometry/cartesian_coordinates.py
+++ b/yt/geometry/cartesian_coordinates.py
@@ -17,7 +17,8 @@
import numpy as np
from .coordinate_handler import \
CoordinateHandler, \
- _unknown_coord
+ _unknown_coord, \
+ _get_coord_fields
class CartesianCoordinateHandler(CoordinateHandler):
@@ -25,14 +26,6 @@
super(CartesianCoordinateHandler, self).__init__(pf)
def setup_fields(self, registry):
- def _get_coord_fields(axi, ax):
- def _dds(field, data):
- rv = data.pf.arr(data.fwidth[...,axi], 'code_length')
- return data._reshape_vals(rv)
- def _coords(field, data):
- rv = data.pf.arr(data.fcoords[...,axi], 'code_length')
- return data._reshape_vals(rv)
- return _dds, _coords
for axi, ax in enumerate('xyz'):
f1, f2 = _get_coord_fields(axi, ax)
registry.add_field(("index", "d%s" % ax), function = f1,
diff -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 -r bf4b8d5911ea438b461a0df59f17c2260262feb9 yt/geometry/coordinate_handler.py
--- a/yt/geometry/coordinate_handler.py
+++ b/yt/geometry/coordinate_handler.py
@@ -32,6 +32,15 @@
def _unknown_coord(field, data):
raise YTCoordinateNotImplemented
+def _get_coord_fields(axi, units = "code_length"):
+ def _dds(field, data):
+ rv = data.pf.arr(data.fwidth[...,axi], units)
+ return data._reshape_vals(rv)
+ def _coords(field, data):
+ rv = data.pf.arr(data.fcoords[...,axi], units)
+ return data._reshape_vals(rv)
+ return _dds, _coords
+
class CoordinateHandler(object):
def __init__(self, pf):
diff -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 -r bf4b8d5911ea438b461a0df59f17c2260262feb9 yt/geometry/cylindrical_coordinates.py
--- a/yt/geometry/cylindrical_coordinates.py
+++ b/yt/geometry/cylindrical_coordinates.py
@@ -18,8 +18,8 @@
from yt.units.yt_array import YTArray
from .coordinate_handler import \
CoordinateHandler, \
- _unknown_coord
-
+ _unknown_coord, \
+ _get_coord_fields
#
# Cylindrical fields
#
@@ -36,54 +36,29 @@
registry.add_field(("index", "dy"), function=_unknown_coord)
registry.add_field(("index", "x"), function=_unknown_coord)
registry.add_field(("index", "y"), function=_unknown_coord)
+ f1, f2 = _get_coord_fields(0)
+ registry.add_field(("index", "dr"), function = f1,
+ display_field = False,
+ units = "code_length")
+ registry.add_field(("index", "r"), function = f2,
+ display_field = False,
+ units = "code_length")
- def _dr(field, data):
- return np.ones(data.ActiveDimensions, dtype='float64') * data.dds[0]
- registry.add_field(("index", "dr"),
- function=_dr,
- display_field=False,
- validators=[ValidateSpatial(0)])
+ f1, f2 = _get_coord_fields(1)
+ registry.add_field(("index", "dz"), function = f1,
+ display_field = False,
+ units = "code_length")
+ registry.add_field(("index", "z"), function = f2,
+ display_field = False,
+ units = "code_length")
- def _dz(field, data):
- return np.ones(data.ActiveDimensions, dtype='float64') * data.dds[1]
- registry.add_field(("index", "dz"),
- function=_dz,
- display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _dtheta(field, data):
- return np.ones(data.ActiveDimensions, dtype='float64') * data.dds[2]
- registry.add_field(("index", "dtheta"),
- function=_dtheta,
- display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _coordR(field, data):
- dim = data.ActiveDimensions[0]
- return (np.ones(data.ActiveDimensions, dtype='float64')
- * np.arange(data.ActiveDimensions[0])[:,None,None]
- +0.5) * data["index", "dr"] + data.LeftEdge[0]
- registry.add_field(("index", "r"),
- function=_coordR, display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _coordZ(field, data):
- dim = data.ActiveDimensions[1]
- return (np.ones(data.ActiveDimensions, dtype='float64')
- * np.arange(data.ActiveDimensions[1])[None,:,None]
- +0.5) * data["index", "dz"] + data.LeftEdge[1]
- registry.add_field(("index", "z"),
- function=_coordZ, display_field=False,
- validators=[ValidateSpatial(0)])
-
- def _coordTheta(field, data):
- dim = data.ActiveDimensions[2]
- return (np.ones(data.ActiveDimensions, dtype='float64')
- * np.arange(data.ActiveDimensions[2])[None,None,:]
- +0.5) * data["index", "dtheta"] + data.LeftEdge[2]
- registry.add_field(("index", "theta"),
- function=_coordTheta, display_field=False,
- validators=[ValidateSpatial(0)])
+ f1, f2 = _get_coord_fields(2, "")
+ registry.add_field(("index", "dtheta"), function = f1,
+ display_field = False,
+ units = "")
+ registry.add_field(("index", "theta"), function = f2,
+ display_field = False,
+ units = "")
def _CylindricalVolume(field, data):
return data["index", "dtheta"] \
@@ -91,7 +66,8 @@
* data["index", "dr"] \
* data["index", "dz"]
registry.add_field(("index", "cell_volume"),
- function=_CylindricalVolume)
+ function=_CylindricalVolume,
+ units = "code_length**3")
def pixelize(self, dimension, data_source, field, bounds, size, antialias = True):
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list