[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