[yt-svn] commit/yt: 2 new changesets
Bitbucket
commits-noreply at bitbucket.org
Tue Mar 27 15:11:38 PDT 2012
2 new commits in yt:
https://bitbucket.org/yt_analysis/yt/changeset/0061d9b65795/
changeset: 0061d9b65795
branch: yt
user: ngoldbaum
date: 2012-03-22 23:11:27
summary: Updating the FLASH frontend to read in runtime parameters and scalars.
Also added a thermal energy field and detection for CGS units.
affected #: 2 files
diff -r e08c15b9ef014ccfb62ce558ff5442ba01612e8c -r 0061d9b65795c67436334ee716416fe133dd99da yt/frontends/flash/data_structures.py
--- a/yt/frontends/flash/data_structures.py
+++ b/yt/frontends/flash/data_structures.py
@@ -230,6 +230,9 @@
self.parameters["EOSType"] = -1
if self.cosmological_simulation == 1:
self._setup_comoving_units()
+ if "pc_unitsbase" in self.parameters:
+ if self.parameters["pc_unitsbase"] == "CGS":
+ self.setup_cgs_units()
else:
self._setup_nounits_units()
self.time_units['1'] = 1
@@ -265,6 +268,22 @@
for unit in mpc_conversion.keys():
self.units[unit] = mpc_conversion[unit] / mpc_conversion["cm"]
+ def _setup_cgs_units(self):
+ self.conversion_factors['dens'] = 1.0
+ self.conversion_factors['pres'] = 1.0
+ self.conversion_factors['eint'] = 1.0
+ self.conversion_factors['ener'] = 1.0
+ self.conversion_factors['temp'] = 1.0
+ self.conversion_factors['velx'] = 1.0
+ self.conversion_factors['vely'] = 1.0
+ self.conversion_factors['velz'] = 1.0
+ self.conversion_factors['particle_velx'] = 1.0
+ self.conversion_factors['particle_vely'] = 1.0
+ self.conversion_factors['particle_velz'] = 1.0
+ self.conversion_factors["Time"] = 1.0
+ for unit in mpc_conversion.keys():
+ self.units[unit] = mpc_conversion[unit] / mpc_conversion["cm"]
+
def _setup_nounits_units(self):
self.conversion_factors['dens'] = 1.0
self.conversion_factors['pres'] = 1.0
@@ -277,7 +296,6 @@
self.conversion_factors['particle_velx'] = 1.0
self.conversion_factors['particle_vely'] = 1.0
self.conversion_factors['particle_velz'] = 1.0
- z = 0
mylog.warning("Setting 1.0 in code units to be 1.0 cm")
if not self.has_key("TimeUnits"):
mylog.warning("No time units. Setting 1.0 = 1 second.")
@@ -309,24 +327,37 @@
self._handle["sim info"][:]["file format version"])
else:
raise RuntimeError("Can't figure out FLASH file version.")
+ # First we load all of the parameters
+ hns = ["simulation parameters"]
+ # note the ordering here is important: runtime parameters should
+ # ovewrite scalars with the same name.
+ for ptype in ['scalars', 'runtime parameters']:
+ for vtype in ['integer', 'real', 'logical','string']:
+ hns.append("%s %s" % (vtype, ptype))
+ for hn in hns:
+ if hn not in self._handle:
+ continue
+ for varname, val in self._handle[hn]:
+ vn = varname.strip()
+ if vn in self.parameters and self.parameters[vn] != val:
+ mylog.warning("{0} {1} overwrites a simulation scalar of the same name".format(hn[:-1],vn))
+ self.parameters[vn] = val
self.domain_left_edge = na.array(
- [self._find_parameter("real", "%smin" % ax) for ax in 'xyz']).astype("float64")
+ [self.parameters["%smin" % ax] for ax in 'xyz']).astype("float64")
self.domain_right_edge = na.array(
- [self._find_parameter("real", "%smax" % ax) for ax in 'xyz']).astype("float64")
- self.min_level = self._find_parameter(
- "integer", "lrefine_min", scalar = False) - 1
+ [self.parameters["%smax" % ax] for ax in 'xyz']).astype("float64")
+ self.min_level = self.parameters["lrefine_min"] -1
# Determine domain dimensions
try:
- nxb = self._find_parameter("integer", "nxb", scalar = True)
- nyb = self._find_parameter("integer", "nyb", scalar = True)
- nzb = self._find_parameter("integer", "nzb", scalar = True)
+ nxb = self.parameters["nxb"]
+ nyb = self.parameters["nyb"]
+ nzb = self.parameters["nzb"]
except KeyError:
nxb, nyb, nzb = [int(self._handle["/simulation parameters"]['n%sb' % ax])
for ax in 'xyz'] # FLASH2 only!
try:
- dimensionality = self._find_parameter("integer", "dimensionality",
- scalar = True)
+ dimensionality = self.parameters["dimensionality"]
except KeyError:
dimensionality = 3
if nzb == 1: dimensionality = 2
@@ -334,45 +365,28 @@
if dimensionality < 3:
mylog.warning("Guessing dimensionality as %s", dimensionality)
- nblockx = self._find_parameter("integer", "nblockx")
- nblocky = self._find_parameter("integer", "nblocky")
- nblockz = self._find_parameter("integer", "nblockz")
+ nblockx = self.parameters["nblockx"]
+ nblocky = self.parameters["nblocky"]
+ nblockz = self.parameters["nblockz"]
self.dimensionality = dimensionality
self.domain_dimensions = \
na.array([nblockx*nxb,nblocky*nyb,nblockz*nzb])
-
try:
- self.parameters['Gamma'] = self._find_parameter("real", "gamma")
- except KeyError:
+ self.parameters["Gamma"] = self.parameters["gamma"]
+ except:
+ mylog.warning("Cannot find Gamma")
pass
- if self._flash_version == 7:
- self.current_time = float(
- self._handle["simulation parameters"][:]["time"])
- else:
- self.current_time = \
- float(self._find_parameter("real", "time", scalar=True))
+ self.current_time = self.parameters["time"]
- if self._flash_version == 7:
- self.parameters['timestep'] = float(
- self._handle["simulation parameters"]["timestep"])
- else:
- self.parameters['timestep'] = \
- float(self._find_parameter("real", "dt", scalar=True))
-
- try:
- use_cosmo = self._find_parameter("logical", "usecosmology")
+ try:
+ self.parameters["usecosmology"]
+ self.cosmological_simulation = 1
+ self.current_redshift = self.parameters['redshift']
+ self.omega_lambda = self.parameters['cosmologicalconstant']
+ self.omega_matter = self.parameters['omegamatter']
+ self.hubble_constant = self.parameters['hubbleconstant']
except:
- use_cosmo = 0
-
- if use_cosmo == 1:
- self.cosmological_simulation = 1
- self.current_redshift = self._find_parameter("real", "redshift",
- scalar = True)
- self.omega_lambda = self._find_parameter("real", "cosmologicalconstant")
- self.omega_matter = self._find_parameter("real", "omegamatter")
- self.hubble_constant = self._find_parameter("real", "hubbleconstant")
- else:
self.current_redshift = self.omega_lambda = self.omega_matter = \
self.hubble_constant = self.cosmological_simulation = 0.0
diff -r e08c15b9ef014ccfb62ce558ff5442ba01612e8c -r 0061d9b65795c67436334ee716416fe133dd99da yt/frontends/flash/fields.py
--- a/yt/frontends/flash/fields.py
+++ b/yt/frontends/flash/fields.py
@@ -65,6 +65,7 @@
"TotalEnergy": "ener",
"GasEnergy": "eint",
"Temperature": "temp",
+ "Pressure" : "pres",
"particle_position_x" : "particle_posx",
"particle_position_y" : "particle_posy",
"particle_position_z" : "particle_posz",
@@ -213,3 +214,16 @@
function=_ParticleMassMsun, validators=[ValidateSpatial(0)],
particle_type=True, convert_function=_convertParticleMassMsun,
particle_convert_function=_ParticleMassMsun)
+
+def _ThermalEnergy(fields,data):
+ te = data["TotalEnergy"] - 0.5 * data["Density"] * (
+ data["x-velocity"]**2.0 +
+ data["y-velocity"]**2.0 +
+ data["z-velocity"]**2.0 )
+ try:
+ te -= (data['magx']**2 + data['magx']**2 - data['magz']**2)/(8*3.1415927)
+ except:
+ pass
+ return te
+add_field("ThermalEnergy", function=_ThermalEnergy,
+ units=r"\rm{ergs}/\rm{cm^3}")
https://bitbucket.org/yt_analysis/yt/changeset/89d18e8b2da8/
changeset: 89d18e8b2da8
branch: yt
user: ngoldbaum
date: 2012-03-28 00:05:43
summary: I'm no longer implicitly assuming Gaussian units.
affected #: 1 file
diff -r 0061d9b65795c67436334ee716416fe133dd99da -r 89d18e8b2da8bf94d2ba6807b6ff19d19e123bca yt/frontends/flash/fields.py
--- a/yt/frontends/flash/fields.py
+++ b/yt/frontends/flash/fields.py
@@ -221,7 +221,7 @@
data["y-velocity"]**2.0 +
data["z-velocity"]**2.0 )
try:
- te -= (data['magx']**2 + data['magx']**2 - data['magz']**2)/(8*3.1415927)
+ te -= data['magp']
except:
pass
return te
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