<div dir="ltr"><div><div>Hi everyone,<br> I'm having the following problem: I want to 
calculate the gradient field of the angular velocity which I have 
defined as follows:<br><br>>def _Omega(field,data):<br>>        if data.has_field_parameter("bulk_velocity"):<br>>                bv = data.get_field_parameter("bulk_velocity").in_units("cm/s")<br>>        else:<br>>                bv = data.ds.arr(np.zeros(3), "cm/s")<br>>        xv = data["gas","velocity_x"] - bv[0]<br>>        yv = data["gas","velocity_y"] - bv[1]<br>>        center = data.get_field_parameter('center')<br>>        x_hat = data["x"] - center[0]<br>>        y_hat = data["y"] - center[1]<br>>        r = np.sqrt(x_hat*x_hat+y_hat*y_hat)<br>>        x_hat /= r**2<br>>        y_hat /= r**2<br>><br>>        return np.sqrt((xv*y_hat-yv*x_hat)**2)<br>>yt.add_field("Omega", function=_Omega,take_log=False,      units=r"1/yr",validators=[ValidateParameter('bulk_velocity')])<br><br></div>This is the profile I have got using the SlicePlot tool:<br><br><a href="https://drive.google.com/file/d/0B43CkTTj8OeOcy16TkFaZlBhRE0/view?usp=sharing">https://drive.google.com/file/d/0B43CkTTj8OeOcy16TkFaZlBhRE0/view?usp=sharing</a><br><br>So, it is a function of radius. The density is also a function of radius. The problem is that if I use<br><br>>grad_fields = ds.add_gradient_fields(("gas","Omega"))<br>>slice = yt.SlicePlot(ds, 'z', "Omega_gradient_x")<br><br></div>I get this<br><div><br><a href="https://drive.google.com/file/d/0B43CkTTj8OeOLUxGVUJSQ253TE0/view?usp=sharing">https://drive.google.com/file/d/0B43CkTTj8OeOLUxGVUJSQ253TE0/view?usp=sharing</a><br><br>​the sign should only change across x=0. I did the same for the density field getting the correct behaviour. <br>I've also tried to define the gradient field <br><br>>def _vorticity_2(field, data):<br>>    f  = (data[ftype, "Omega"][sl_right,sl_center,sl_center] -<br>>          data[ftype, "Omega"][sl_left,sl_center,sl_center]) \<br>>          / (div_fac*just_one(data["index", "dx"]))<br>><br>>    new_field = data.ds.arr(np.zeros_like(data[ftype, "velocity_z"],<br>>                                          dtype=np.float64),<br>>                            f.units)<br>>    new_field[sl_center, sl_center, sl_center] = f<br>>    return new_field<br><br>But I got the same results. <br><br>If I'm doing something wrong please let me know.<br><br>Cheers!<br><br>Jose Utreras <br></div></div>