<div dir="ltr">Hi Jose,<div><br></div><div>I'm not sure what's happening exactly.</div><div><br></div><div>Is there any chance you can make a self-contained example demonstrating the issue you're having? You could use one of the public test datasets at <a href="http://yt-project.org/data">yt-project.org/data</a>, set up a dataset based on fake data using e.g. load_uniform_grid, or upload the dataset you're dealing with along with a script.</div><div><br></div><div>Having a self-contained example means I can reproduce it locally and try to debug.</div><div><br></div><div>-Nathan</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 18, 2016 at 1:17 PM, José Utreras <span dir="ltr"><<a href="mailto:jutreras@das.uchile.cl" target="_blank">jutreras@das.uchile.cl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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" target="_blank">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" target="_blank">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>
<br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" rel="noreferrer" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>