<div dir="ltr">Hi Nathan, <div><br></div><div>Thanks for the explanation. I will follow up if I make any progress.</div><div><br></div><div>Best</div><div>Tazkera</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 18, 2017 at 11:55 AM, Nathan Goldbaum <span dir="ltr"><<a href="mailto:nathan12343@gmail.com" target="_blank">nathan12343@gmail.com</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">Hi Tazkera,<div><br></div><div>I think what's happening is that the gradient is getting periodically wrapped. It helps if you take a look at a SlicePlot of your 'psi' and 'psi_gradient_x' fields:</div><div><br></div><div>psi: <a href="http://i.imgur.com/EK73NNO.png" target="_blank">http://i.imgur.com/<wbr>EK73NNO.png</a></div><div>psi_gradient_x: <a href="http://i.imgur.com/wXPpqi9.png" target="_blank">http://i.<wbr>imgur.com/wXPpqi9.png</a></div><div><br></div><div>The gradient at the left and right edges of the domain is being calculated using the periodically wrapped values (i.e. the local difference between neighboring values of the psi field shoots up from 1 in the middle of the domain to 12 at the edges). This causes the gradient to have different values at the edges of the domain.</div><div><br></div><div>I guess you are looking for a gradient field that uses forward differences on the left side of the domain and backward differences on the right side of the domain rather than being periodically wrapped? Unfortunately right now yt doesn't have an option to specify that. That said, I think it would be possible to do e.g. by adding a new keyword argument to Datset.add_gradient_field and then adding the new difference logic to the setup_gradient_fields function in yt/fields/fluid_fields.py.</div><div><br></div><div>Hope that helps,</div><div><br></div><div>Nathan</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Thu, May 18, 2017 at 10:15 AM, tazkera haque <span dir="ltr"><<a href="mailto:h.tazkera@gmail.com" target="_blank">h.tazkera@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="auto"><div style="font-family:sans-serif;font-size:13.696px" dir="auto"><div style="margin:16px 0px"><div><div class="m_-546789954303668112m_1405122022971512658elided-text"><div dir="ltr">Hi people, <div><br></div><div>I am trying to define curl of a vector field in yt, but first I needed to see if correct derivatives are taken at the boundary. I am starting with a mock data set and followed yt tutorial:</div><div><br></div><div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><div>import yt</div><div>from yt import YTArray</div><div>import numpy as np</div><div><br></div></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">posx = np.linspace(-1.0,1.0,12)<br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><div>posy = np.linspace(-1.0,1.0,12)</div><div>posz = np.linspace(-1.0,1.0,12)</div></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">X, Y, Z = np.meshgrid(posx, posy, posz, indexing='ij') # From gradient output, yt seems to use ij indexing<br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">psi = X<br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><div>data_dict = {"psi":(psi,'kg/cm**3'),</div><div>            "number_of_particles":12,</div><div>            "particle_position_x":(posx, 'kg/cm**3'),</div><div>            "particle_position_y":(posy, 'kg/cm**3'),</div><div>            "particle_position_z":(posz, 'kg/cm**3')}</div><div><br></div><div>bbox = np.array([[-1.0, 1.0], [-1.0, 1.0], [-1.0, 1.0]])</div></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">y  = yt.load_uniform_grid(data_dict<wbr>,domain_dimensions=(12,12,12),<wbr>bbox=bbox)<br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">grad_fields = y.add_gradient_fields(("stream<wbr>","psi"))<br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">ad = y.all_data()</div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">print( ad["psi_gradient_x"] )</div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">print( ad["psi_gradient_y"] )</div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">print( ad["psi_gradient_z"] )</div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">Output:</div><div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">yt : [INFO     ] 2017-05-17 19:40:16,410 Parameters: current_time              = 0.0</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">yt : [INFO     ] 2017-05-17 19:40:16,410 Parameters: domain_dimensions         = [12 12 12]</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">yt : [INFO     ] 2017-05-17 19:40:16,411 Parameters: domain_left_edge          = [-1. -1. -1.]</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">yt : [INFO     ] 2017-05-17 19:40:16,411 Parameters: domain_right_edge         = [ 1.  1.  1.]</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">yt : [INFO     ] 2017-05-17 19:40:16,412 Parameters: cosmological_simulation   = 0.0</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">[-5.45454545 -5.45454545 -5.45454545 ..., -5.45454545 -5.45454545</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px"> -5.45454545] kg/cm**4</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">[ 0.  0.  0. ...,  0.  0.  0.] kg/cm**4</span></font></div><div><font color="#212121" face="wf_segoe-ui_normal, segoe ui, segoe wp, tahoma, arial, sans-serif, serif, emojifont"><span style="font-size:15px">[ 0.  0.  0. ...,  0.  0.  0.] kg/cm**4</span></font></div></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">Now my question is, since psi(x,y,z) = x, the gradient should be (1,0,0)...and it is everywhere except the boundaries of the box. Can you please explain to me what is going wrong here? I don't </div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">   think YT is interpreting the bbox and grid points as I am.</div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px">Best</div><div style="color:rgb(33,33,33);font-family:'wf_segoe-ui_normal','segoe ui','segoe wp','tahoma','arial',sans-serif,serif,'emojifont';font-size:15px"><br></div></div></div></div></div></div></div><div style="height:0px"></div></div><br></div>
<br></div></div>______________________________<wbr>_________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">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/lis<wbr>tinfo.cgi/yt-users-spacepope.<wbr>org</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<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/<wbr>listinfo.cgi/yt-users-<wbr>spacepope.org</a><br>
<br></blockquote></div><br></div>