[Yt-svn] yt-commit r759 - branches/yt-generalization/yt/lagos
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Tue Sep 9 01:40:49 PDT 2008
Author: mturk
Date: Tue Sep 9 01:40:49 2008
New Revision: 759
URL: http://yt.spacepope.org/changeset/759
Log:
Added explicit function handles to add_field calls.
Modified:
branches/yt-generalization/yt/lagos/EnzoFields.py
branches/yt-generalization/yt/lagos/UniversalFields.py
Modified: branches/yt-generalization/yt/lagos/EnzoFields.py
==============================================================================
--- branches/yt-generalization/yt/lagos/EnzoFields.py (original)
+++ branches/yt-generalization/yt/lagos/EnzoFields.py Tue Sep 9 01:40:49 2008
@@ -42,6 +42,7 @@
def _Metallicity(field, data):
return data["Metal_Fraction"] / 0.0204
add_field("Metallicity", units=r"Z_{\rm{Solar}}",
+ function=_Metallicity,
validators=ValidateDataField("Metal_Density"),
projection_conversion="1")
@@ -61,7 +62,8 @@
data["x-velocity"]**2.0
+ data["y-velocity"]**2.0
+ data["z-velocity"]**2.0 )
- add_field("ThermalEnergy", units=r"\rm{ergs}/\rm{cm^3}")
+add_field("ThermalEnergy", function=_ThermalEnergy,
+ units=r"\rm{ergs}/\rm{cm^3}")
def _NumberDensity(field, data):
# We can assume that we at least have Density
@@ -94,6 +96,7 @@
def _ConvertNumberDensity(data):
return 1.0/mh
add_field("NumberDensity", units=r"\rm{cm}^{-3}",
+ function=_NumberDensity,
convert_function=_ConvertNumberDensity)
# Now we add all the fields that we want to control, but we give a null function
@@ -110,18 +113,18 @@
for field in _default_fields:
add_field(field, function=lambda a, b: None, take_log=True,
validators=[ValidateDataField(field)], units=r"\rm{g}/\rm{cm}^3")
-fieldInfo["x-velocity"].projection_conversion='1'
-fieldInfo["y-velocity"].projection_conversion='1'
-fieldInfo["z-velocity"].projection_conversion='1'
+EnzoFieldInfo["x-velocity"].projection_conversion='1'
+EnzoFieldInfo["y-velocity"].projection_conversion='1'
+EnzoFieldInfo["z-velocity"].projection_conversion='1'
# Now we override
def _convertDensity(data):
return data.convert("Density")
for field in ["Density"] + [ "%s_Density" % sp for sp in _speciesList ]:
- fieldInfo[field]._units = r"\rm{g}/\rm{cm}^3"
- fieldInfo[field]._projected_units = r"\rm{g}/\rm{cm}^2"
- fieldInfo[field]._convert_function=_convertDensity
+ EnzoFieldInfo[field]._units = r"\rm{g}/\rm{cm}^3"
+ EnzoFieldInfo[field]._projected_units = r"\rm{g}/\rm{cm}^2"
+ EnzoFieldInfo[field]._convert_function=_convertDensity
add_field("Dark_Matter_Density", function=lambda a,b: None,
convert_function=_convertDensity,
@@ -131,16 +134,16 @@
def _convertEnergy(data):
return data.convert("x-velocity")**2.0
-fieldInfo["Gas_Energy"]._units = r"\rm{ergs}/\rm{g}"
-fieldInfo["Gas_Energy"]._convert_function = _convertEnergy
-fieldInfo["Total_Energy"]._units = r"\rm{ergs}/\rm{g}"
-fieldInfo["Total_Energy"]._convert_function = _convertEnergy
-fieldInfo["Temperature"]._units = r"\rm{K}"
+EnzoFieldInfo["Gas_Energy"]._units = r"\rm{ergs}/\rm{g}"
+EnzoFieldInfo["Gas_Energy"]._convert_function = _convertEnergy
+EnzoFieldInfo["Total_Energy"]._units = r"\rm{ergs}/\rm{g}"
+EnzoFieldInfo["Total_Energy"]._convert_function = _convertEnergy
+EnzoFieldInfo["Temperature"]._units = r"\rm{K}"
def _convertVelocity(data):
return data.convert("x-velocity")
for ax in ['x','y','z']:
- f = fieldInfo["%s-velocity" % ax]
+ f = EnzoFieldInfo["%s-velocity" % ax]
f._units = r"\rm{cm}/\rm{s}"
f._convert_function = _convertVelocity
f.take_log = False
Modified: branches/yt-generalization/yt/lagos/UniversalFields.py
==============================================================================
--- branches/yt-generalization/yt/lagos/UniversalFields.py (original)
+++ branches/yt-generalization/yt/lagos/UniversalFields.py Tue Sep 9 01:40:49 2008
@@ -56,17 +56,20 @@
def _dx(field, data):
return data.dx
return na.ones(data.ActiveDimensions, dtype='float64') * data.dx
-add_field('dx', display_field=False, validators=[ValidateSpatial(0)])
+add_field('dx', function=_dx, display_field=False,
+ validators=[ValidateSpatial(0)])
def _dy(field, data):
return data.dy
return na.ones(data.ActiveDimensions, dtype='float64') * data.dy
-add_field('dy', display_field=False, validators=[ValidateSpatial(0)])
+add_field('dy', function=_dy, display_field=False,
+ validators=[ValidateSpatial(0)])
def _dz(field, data):
return data.dz
return na.ones(data.ActiveDimensions, dtype='float64') * data.dz
-add_field('dz', display_field=False, validators=[ValidateSpatial(0)])
+add_field('dz', function=_dz,
+ display_field=False, validators=[ValidateSpatial(0)])
def _coordX(field, data):
dim = data.ActiveDimensions[0]
@@ -94,22 +97,26 @@
def _GridLevel(field, data):
return na.ones(data["Density"].shape)*(data.Level)
-add_field("GridLevel", validators=[#ValidateProperty('Level'),
- ValidateSpatial(0)])
+add_field("GridLevel", function=_GridLevel,
+ validators=[#ValidateProperty('Level'),
+ ValidateSpatial(0)])
def _GridIndices(field, data):
return na.ones(data["Density"].shape)*(data.id-data._id_offset)
-add_field("GridIndices", validators=[#ValidateProperty('id'),
- ValidateSpatial(0)], take_log=False)
+add_field("GridIndices", function=_GridIndices,
+ validators=[#ValidateProperty('id'),
+ ValidateSpatial(0)], take_log=False)
def _OnesOverDx(field, data):
return na.ones(data["Density"].shape,
dtype=data["Density"].dtype)/data['dx']
-add_field("OnesOverDx", display_field=False)
+add_field("OnesOverDx", function=_OnesOverDx,
+ display_field=False)
def _Ones(field, data):
return na.ones(data.ActiveDimensions, dtype='float64')
-add_field("Ones", validators=[ValidateSpatial(0)],
+add_field("Ones", function=_Ones,
+ validators=[ValidateSpatial(0)],
projection_conversion="unitary",
display_field = False)
add_field("CellsPerBin", function=_Ones, validators=[ValidateSpatial(0)],
@@ -118,7 +125,8 @@
def _SoundSpeed(field, data):
return ( data.pf["Gamma"]*data["Pressure"] / \
data["Density"] )**(1.0/2.0)
-add_field("SoundSpeed", units=r"\rm{cm}/\rm{s}")
+add_field("SoundSpeed", function=_SoundSpeed,
+ units=r"\rm{cm}/\rm{s}")
def particle_func(p_field):
def _Particles(field, data):
@@ -161,7 +169,8 @@
return data.convert("Density")*(data.convert("cm")**3.0)
def _convertParticleMassMsun(data):
return data.convert("Density")*((data.convert("cm")**3.0)/1.989e33)
-add_field("ParticleMass", validators=[ValidateSpatial(0)],
+add_field("ParticleMass",
+ function=_ParticleMass, validators=[ValidateSpatial(0)],
particle_type=True, convert_function=_convertParticleMass)
add_field("ParticleMassMsun",
function=_ParticleMass, validators=[ValidateSpatial(0)],
@@ -170,7 +179,7 @@
def _MachNumber(field, data):
"""M{|v|/t_sound}"""
return data["VelocityMagnitude"] / data["SoundSpeed"]
-add_field("MachNumber")
+add_field("MachNumber", function=_MachNumber)
def _CourantTimeStep(field, data):
t1 = data['dx'] / (
@@ -186,7 +195,8 @@
def _convertCourantTimeStep(data):
# SoundSpeed and z-velocity are in cm/s, dx is in code
return data.convert("cm")
-add_field("CourantTimeStep", convert_function=_convertCourantTimeStep,
+add_field("CourantTimeStep", function=_CourantTimeStep,
+ convert_function=_convertCourantTimeStep,
units=r"$\rm{s}$")
def _VelocityMagnitude(field, data):
@@ -197,16 +207,21 @@
return ( (data["x-velocity"]-bulk_velocity[0])**2.0 + \
(data["y-velocity"]-bulk_velocity[1])**2.0 + \
(data["z-velocity"]-bulk_velocity[2])**2.0 )**(1.0/2.0)
-add_field("VelocityMagnitude", take_log=False, units=r"\rm{cm}/\rm{s}")
+add_field("VelocityMagnitude", function=_VelocityMagnitude,
+ take_log=False, units=r"\rm{cm}/\rm{s}")
def _TangentialOverVelocityMagnitude(field, data):
return na.abs(data["TangentialVelocity"])/na.abs(data["VelocityMagnitude"])
-add_field("TangentialOverVelocityMagnitude", take_log=False)
+add_field("TangentialOverVelocityMagnitude",
+ function=_TangentialOverVelocityMagnitude,
+ take_log=False)
def _TangentialVelocity(field, data):
return na.sqrt(data["VelocityMagnitude"]**2.0
- data["RadialVelocity"]**2.0)
-add_field("TangentialVelocity", take_log=False, units=r"\rm{cm}/\rm{s}")
+add_field("TangentialVelocity",
+ function=_TangentialVelocity,
+ take_log=False, units=r"\rm{cm}/\rm{s}")
def _Pressure(field, data):
"""M{(Gamma-1.0)*rho*E}"""
@@ -215,14 +230,14 @@
else:
return (data.pf["Gamma"] - 1.0) * \
data["Density"] * data["ThermalEnergy"]
-add_field("Pressure", units=r"\rm{dyne}/\rm{cm}^{2}")
+add_field("Pressure", function=_Pressure, units=r"\rm{dyne}/\rm{cm}^{2}")
# for Orion, units are different...how to do this?
# add_field("ThermalEnergy", units=r"\rm{ergs}/\rm{g}")
def _Entropy(field, data):
return data["Density"]**(-2./3.) * \
data["Temperature"]
-add_field("Entropy", units="WhoKnows")
+add_field("Entropy", function=_Entropy, units="WhoKnows")
def _Height(field, data):
# We take the dot product of the radius vector with the height-vector
@@ -242,7 +257,8 @@
return data.convert("cm")
def _convertHeightAU(data):
return data.convert("au")
-add_field("Height", convert_function=_convertHeight,
+add_field("Height", function=_Height,
+ convert_function=_convertHeight,
validators=[ValidateParameter("height_vector")],
units=r"cm", display_field=False)
add_field("HeightAU", function=_Height,
@@ -262,7 +278,8 @@
+ r_vec[1,:] * h_vec[1] \
+ r_vec[2,:] * h_vec[2]
return na.arccos(dp)
-add_field("DiskAngle", take_log=False,
+add_field("DiskAngle", function=_DiskAngle,
+ take_log=False,
validators=[ValidateParameter("height_vector"),
ValidateParameter("center")],
display_field=False)
@@ -279,14 +296,15 @@
t_dyn_coeff = (3*pi/(16*G))**0.5 \
* data.convert("Time")
return t_dyn_coeff
-add_field("DynamicalTime", units=r"\rm{s}",
+add_field("DynamicalTime", function=_DynamicalTime,
+ units=r"\rm{s}",
convert_function=_ConvertDynamicalTime)
def _CellMass(field, data):
return data["Density"] * data["CellVolume"]
def _convertCellMassMsun(data):
return 5.027854e-34 # g^-1
-add_field("CellMass", units=r"\rm{g}")
+add_field("CellMass", function=_CellMass, units=r"\rm{g}")
add_field("CellMassMsun", units=r"M_{\odot}",
function=_CellMass,
convert_function=_convertCellMassMsun)
@@ -317,7 +335,7 @@
*data["Temperature"]**0.5)
def _convertXRayEmissivity(data):
return 2.168e60
-add_field("XRayEmissivity",
+add_field("XRayEmissivity", function=_XRayEmissivity,
convert_function=_convertXRayEmissivity,
projection_conversion="1")
@@ -329,7 +347,7 @@
return (vel*data["Density"])
def _convertSZKinetic(data):
return 0.88*((sigma_thompson/mh)/clight)
-add_field("SZKinetic",
+add_field("SZKinetic", function=_SZKinetic,
convert_function=_convertSZKinetic,
validators=[ValidateParameter('axis')])
@@ -338,7 +356,7 @@
def _convertSZY(data):
conv = (0.88/mh) * (kboltz)/(me * clight*clight) * sigma_thompson
return conv
-add_field("SZY", convert_function=_convertSZY)
+add_field("SZY", function=_SZY, convert_function=_convertSZY)
def __gauss_kern(size):
""" Returns a normalized 2D gauss kernel array for convolutions """
@@ -358,7 +376,9 @@
def _SmoothedDensity(field, data):
return __blur_image(data["Density"], 1)
-add_field("SmoothedDensity", validators=[ValidateSpatial(2)])
+add_field("SmoothedDensity",
+ function=_SmoothedDensity,
+ validators=[ValidateSpatial(2)])
def _AveragedDensity(field, data):
nx, ny, nz = data["Density"].shape
@@ -373,7 +393,9 @@
new_field2 = na.zeros((nx,ny,nz))
new_field2[1:-1,1:-1,1:-1] = new_field/weight_field
return new_field2
-add_field("AveragedDensity", validators=[ValidateSpatial(1)])
+add_field("AveragedDensity",
+ function=_AveragedDensity,
+ validators=[ValidateSpatial(1)])
def _DivV(field, data):
# We need to set up stencils
@@ -399,7 +421,8 @@
return na.abs(new_field)
def _convertDivV(data):
return data.convert("cm")**-1.0
-add_field("DivV", validators=[ValidateSpatial(1,
+add_field("DivV", function=_DivV,
+ validators=[ValidateSpatial(1,
["x-velocity","y-velocity","z-velocity"])],
units=r"\rm{s}^{-1}",
convert_function=_convertDivV)
@@ -407,7 +430,7 @@
def _Contours(field, data):
return na.ones(data["Density"].shape)*-1
add_field("Contours", validators=[ValidateSpatial(0)], take_log=False,
- display_field=False)
+ display_field=False, function=_Contours)
add_field("tempContours", function=_Contours, validators=[ValidateSpatial(0)],
take_log=False, display_field=False)
@@ -430,6 +453,7 @@
def _convertSpecificAngularMomentum(data):
return data.convert("cm")
add_field("SpecificAngularMomentum",
+ function=_SpecificAngularMomentum,
convert_function=_convertSpecificAngularMomentum, vector_field=True,
units=r"\rm{cm}^2/\rm{s}", validators=[ValidateParameter('center')])
def _convertSpecificAngularMomentumKMSMPC(data):
@@ -547,6 +571,7 @@
- bulk_velocity[...,na.newaxis]
return na.dot(x_vec, v_vec)
add_field("CuttingPlaneVelocityX",
+ function=_CuttingPlaneVelocityX,
validators=[ValidateParameter("cp_%s_vec" % ax)
for ax in 'xyz'], units=r"\rm{km}/\rm{s}")
def _CuttingPlaneVelocityY(field, data):
@@ -559,6 +584,7 @@
- bulk_velocity[...,na.newaxis]
return na.dot(y_vec, v_vec)
add_field("CuttingPlaneVelocityY",
+ function=_CuttingPlaneVelocityY,
validators=[ValidateParameter("cp_%s_vec" % ax)
for ax in 'xyz'], units=r"\rm{km}/\rm{s}")
@@ -576,20 +602,20 @@
add_field("JeansMassMsun",function=_JeansMassMsun,
units=r"\rm{M_{\odot}}")
-def _convertMomentum(data):
- return data.convert("x-velocity")*data.convert("Density")*1e5 # want this in cm/s not km/s
-for ax in ['x','y','z']:
- f = fieldInfo["%s-momentum" % ax]
- f._units = r"\rm{erg\ s}/\rm{cm^3}"
- f._convert_function = _convertMomentum
- f.take_log = False
-
-fieldInfo["Temperature"].units = r"K"
-
-if __name__ == "__main__":
- k = fieldInfo.keys()
- k.sort()
- for f in k:
- e = FieldDetector()
- fieldInfo[f](e)
- print f + ":", ", ".join(e.requested)
+#def _convertMomentum(data):
+# return data.convert("x-velocity")*data.convert("Density")*1e5 # want this in cm/s not km/s
+#for ax in ['x','y','z']:
+# f = fieldInfo["%s-momentum" % ax]
+# f._units = r"\rm{erg\ s}/\rm{cm^3}"
+# f._convert_function = _convertMomentum
+# f.take_log = False
+#
+#fieldInfo["Temperature"].units = r"K"
+#
+#if __name__ == "__main__":
+# k = fieldInfo.keys()
+# k.sort()
+# for f in k:
+# e = FieldDetector()
+# fieldInfo[f](e)
+# print f + ":", ", ".join(e.requested)
More information about the yt-svn
mailing list