divergence of velocity field in yt
Hi people, I wish to see the sliceplots of "divergence of velocity" fields in yt. I see yt has an example of how to derive gradient of a scalar field , is there any example to show how to derive new field for divergence too ? Best Turhan
Hi Turhan, If you have a copy of the yt source, I suggest having a look the file yt/fields/vector_operations.py. In there, you will find a function called _divergence which illustrates how to create a divergence field. Additionally, I recommend looking for where that function is put to use in that file for an example of how to add such a field to the list of known fields. Britton On Tue, Oct 18, 2016 at 2:32 PM, turhan nasri <turhannasri@gmail.com> wrote:
Hi people,
I wish to see the sliceplots of "divergence of velocity" fields in yt. I see yt has an example of how to derive gradient of a scalar field , is there any example to show how to derive new field for divergence too ?
Best Turhan
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
Hi Turhan, Sorry for noticing your message late… I attach some lines here of defining a (velocity) divergence field. You can change "velocity_x,y,z" to any vector field you want. ################################################## import yt from yt.fields.derived_field import ValidateSpatial @yt.derived_field(name='div_velocity', units='1/code_time', validators = [ValidateSpatial(1, ['velocity_x','velocity_y','velocity_z'])]) def _div_velocity(field,data): sl_left = slice(None, -2, None) sl_right = slice(2, None, None) div_fac = 2.0 ds = div_fac * data['dx'].flat[0] f = data["velocity_x"][sl_right,1:-1,1:-1]/ds f -= data["velocity_x"][sl_left ,1:-1,1:-1]/ds if data.ds.dimensionality > 1: ds = div_fac * data['dy'].flat[0] f += data["velocity_y"][1:-1,sl_right,1:-1]/ds f -= data["velocity_y"][1:-1,sl_left ,1:-1]/ds if data.ds.dimensionality > 2: ds = div_fac * data['dz'].flat[0] f += data["velocity_z"][1:-1,1:-1,sl_right]/ds f -= data["velocity_z"][1:-1,1:-1,sl_left ]/ds new_field = np.zeros(data["velocity_x"].shape, dtype='float64') new_field = data.ds.arr(new_field,'1/code_time') new_field[1:-1,1:-1,1:-1] = f return new_field ################################################## Best wishes, -- Suoqing JI Ph.D Candidate Department of Physics University of California, Santa Barbara http://web.physics.ucsb.edu/~suoqing
On Oct 27, 2016, at 2:24 PM, Britton Smith <brittonsmith@gmail.com> wrote:
Hi Turhan,
If you have a copy of the yt source, I suggest having a look the file yt/fields/vector_operations.py. In there, you will find a function called _divergence which illustrates how to create a divergence field. Additionally, I recommend looking for where that function is put to use in that file for an example of how to add such a field to the list of known fields.
Britton
On Tue, Oct 18, 2016 at 2:32 PM, turhan nasri <turhannasri@gmail.com <mailto:turhannasri@gmail.com>> wrote: Hi people,
I wish to see the sliceplots of "divergence of velocity" fields in yt. I see yt has an example of how to derive gradient of a scalar field , is there any example to show how to derive new field for divergence too ?
Best Turhan
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org <mailto:yt-users@lists.spacepope.org> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org <http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org>
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
participants (3)
-
Britton Smith
-
Suoqing Ji
-
turhan nasri