def calc_ufluct(ufld, ubar): """ create the expression for u' = u - ubar where ubar = <u>_{xy} """ u_fluct = "%s_fluct" % ufld exprs.define(u_fluct, "%s - %s" % (ufld, ubar)) return u_fluct
def average_xy(var_name, num_samples, ts=None): """ averages a given field in the xy plane """ # ts : time slider if ts is not None: ddf_name = "%s_avg_xy_%04d" % (var_name, ts) else: ddf_name = "%s_avg_xy" % (var_name) # create the reduction object with the right operator fld_bar = ReductionOps(op='avg', var_name=var_name) # find the spatial extents of the comp. domain sext = fld_bar.mesh_spatial_extents() # set the remainder of the attributes # average in xy by binning based on z fld_bar.atts.varnames = ("mesh_z_nodal", ) fld_bar.atts.ranges = (sext[2], sext[3]) fld_bar.atts.ddfName = ddf_name fld_bar.atts.numSamples = (num_samples, ) # construct the ddf once all attributes are set fld_bar.ddf() mesh_name = fld_bar.mesh_name avg_ename = "%s_avg" % var_name exprs.define(avg_ename, "apply_ddf(%s,%s)" % (mesh_name, ddf_name)) return avg_ename
def test_define(self): exprs.clear() exprs.define("test_expr","a + b") vexprs = visit.Expressions() self.assertEqual(1,len(vexprs)) self.assertEqual("test_expr",vexprs [0][0]) self.assertEqual("a + b",vexprs [0][1]) exprs.define("test_expr","b*b") vexprs = visit.Expressions() self.assertEqual("test_expr",vexprs [0][0]) self.assertEqual("b*b",vexprs [0][1])
def test_define(self): exprs.clear() exprs.define("test_expr", "a + b") vexprs = visit.Expressions() self.assertEqual(1, len(vexprs)) self.assertEqual("test_expr", vexprs[0][0]) self.assertEqual("a + b", vexprs[0][1]) exprs.define("test_expr", "b*b") vexprs = visit.Expressions() self.assertEqual("test_expr", vexprs[0][0]) self.assertEqual("b*b", vexprs[0][1])
def test_exists(self): exprs.clear() exprs.define("test_expr","a + b") self.assertTrue(exprs.exists("test_expr"))
def test_echo(self): exprs.clear() exprs.define("test_expr", "a + b", echo=True) self.assertTrue(exprs.exists("test_expr"))
def test_delete(self): exprs.clear() exprs.define("test_expr", "a + b") self.assertTrue(exprs.exists("test_expr")) exprs.delete("test_expr") self.assertFalse(exprs.exists("test_expr"))
def setup_exprs(self): """ Sets up spatial expressions to use with DDF. """ mesh_name = self.mesh_name exprs.define("mesh_x_nodal", "coord(%s)[0]" % mesh_name) exprs.define("mesh_y_nodal", "coord(%s)[1]" % mesh_name) exprs.define("mesh_z_nodal", "coord(%s)[2]" % mesh_name) exprs.define("mesh_x_zonal", "recenter(coord(%s)[0])" % mesh_name) exprs.define("mesh_y_zonal", "recenter(coord(%s)[1])" % mesh_name) exprs.define("mesh_z_zonal", "recenter(coord(%s)[2])" % mesh_name)