<div dir="ltr"><div>Noah,</div><div><br></div><div>Unfortunately, no examples that I know of will be adaptable to this problem. What you would probably want to do is create a new vtkStructuredGrid of the proper dimension and copy the data you need to the right locations by looping over the logical grid locations.</div><div><br></div><div>HTH,</div><div>Cory</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 6, 2015 at 2:38 PM, Noah Reddell <span dir="ltr"><<a href="mailto:reddell@uw.edu" target="_blank">reddell@uw.edu</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">Cory,  <div>  Thanks for the encouragement that a programmable filter may make this possible.</div><div>   Can you point to any example code that could do this sort of trimming in the programmable filter?  I'm hoping by logical index, but I suppose a x-coordinate mask could work too.</div><div>   Likewise, how can cells be added to the output to fill-in the center?  This point data, so I'm guessing we really need to express the connectivity between the old trimmed x>0 nodes and the new reflected (and -1 scaled) x<0 nodes.</div><div><br></div><div>Best Regards,</div><div><br></div><div>Noah Reddell</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 5, 2015 at 7:41 PM, Cory Quammen <span dir="ltr"><<a href="mailto:cory.quammen@kitware.com" target="_blank">cory.quammen@kitware.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"><div class="gmail_extra"><div class="gmail_quote"><span>On Mon, Nov 2, 2015 at 11:30 AM, Noah Reddell <span dir="ltr"><<a href="mailto:reddell@uw.edu" target="_blank">reddell@uw.edu</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 Cory,<div><br></div><div>   Thanks for your interest.  I can answer your two questions pretty compactly.</div><span><div><br></div><div><i>> <span style="font-size:13px">Could you describe the glitches? I couldn't understand them from just the images you attached.</span></i></div></span><div><span style="font-size:13px">The scalar variable EM_field_n_c4 in the referenced .VTS file is the analytic function: </span><font face="monospace, monospace"><b>tanh(-x/4.082)</b></font>.</div><div>The resulting odd symmetry reflection about x=0 should achieve the same function.  The function is smooth.</div><div>I suspect the glitches come from the two nodes left of x=0 in my original data.  I speculate that the Reflect filter is reflecting those as well.  Actually, I'm pretty sure I observed as much yesterday when not using the option to copy the original data.  This means some kind of funny overlap occurs between the before and after reflection data.</div></div></blockquote><div><br></div></span><div>Ah, thanks for clarifying. Now I understand your grid layout better.</div><span><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span><div><i>> <span style="font-size:13px">what do you expect to see at x=0 if your original data doesn't have anything at x = 0?</span></i></div></span><div>My preference would be to have no new nodes created along x=0.  I have nodes at x= { 0-d2,  0-d1,  0+d1, 0+d2, 0+d3, 0+d4, ... }.</div><div>One way to look at the problem would be to reflect nodes {0+d3,0+d4,...} about x=0 because the the existing two nodes {0-d2, 0-d1} are already correct. </div><div>Another way to look it it is to discard existing nodes {0-d2, 0-d1} and reflect what remains about x=0.</div><div>In both cases, reflect with possible negative scaling!</div></div></blockquote><div><br></div></span><div>Yes, I would try trimming the extent to get rid of 0-d2 and 0-d1, then reflect the rest. This *should* solve the glitch you see, but you will still have the center missing from the result.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I don't care if a new node is created at x=0 which would be the average value of nodes {0-d1, 0+d1}.  But Paraview linear interpolation already does this for presentation purposes and it would not be strictly correct for the underlying polynomial element.</div></div></blockquote><div><br></div></span><div>Your best bet is probably a programmable filter to get the control you want. You should be able to take care of the trimming away of {0-d2, 0-d1}, do the reflection with odd symmetry, then fill in the center by adding cells to the output.</div><span><font color="#888888"><div><br></div><div>- Cory</div></font></span><div><div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Best Regards,</div><div><br></div><div>Noah Reddell</div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 2, 2015 at 7:42 AM, Cory Quammen <span dir="ltr"><<a href="mailto:cory.quammen@kitware.com" target="_blank">cory.quammen@kitware.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"><div class="gmail_extra"><div class="gmail_quote"><div>Hi Noah,</div><div><br></div><div>See answers and questions for you inlined below.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><span style="white-space:pre-wrap">   </span>1)  My original data extends beyond the x=0 symmetry plane by two data points.  And I have no data point on x=0 itself.  This is because in the simulation, there is a third-order polynomial element centered on x=0.</div></div></blockquote><div><br></div></span><div>What would you like to see on x=0?</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><span style="white-space:pre-wrap">   </span>2)  My data is represented as Structured Curvilinear Grid (.VTS files) though in actuality, it is rectilinear.</div></div></blockquote><div><br></div></span><div>Shouldn't be a problem.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><span style="white-space:pre-wrap">    </span>3)  Some data arrays have odd symmetry, such that f(x<0) = -f(x>0)</div></div></blockquote><div><br></div></span><div>The Reflect filter doesn't support this, but you obviously know that.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Here’s what I’ve tried.</div><div>A) Use the Reflect filter, reflect about x=0.  Works quite well for even symmetry data, but the odd-symmetry data is misrepresented with opposite sign for (x<0).  Also, there are glitches with the doubled-up mesh points about x=0.  That becomes obvious when I tried to add a calculator to correct the odd symmetry based on (x<0) boolean expression.</div></div></blockquote><div><br></div></span><div>Could you describe the glitches? I couldn't understand them from just the images you attached.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>B) Manually select data points with (x>0); Extract Selection; Reflect that extraction; Group original and new selection.  Problem:  I end up with a band of missing data for the cell centered on x=0.</div></div></blockquote><div><br></div></span><div>Again, what do you expect to see at x=0 if your original data doesn't have anything at x = 0?</div><div><br></div><div>Thanks,</div><div>Cory</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><div style="word-wrap:break-word"><div>Ideally, I want to end up with a consistent full-domain representation such that I can perform stream line traces across the x=0 mid-plane.</div><div><br></div><div>I’d be very grateful if anyone could point out a working solution.   Here’s one of my data files and some screenshots of my failed attempts.  ( The scalar data item EM_field_n_c4 is a good odd-symmetry example. )</div><div><br></div><div><a href="https://dl.dropboxusercontent.com/u/54478577/supporting%20forum%20posts/paraview_odd_symmetry_help/harris_current_sheet_equilibreum_2.vts" target="_blank">VTS data file 800 kB</a></div><div><br></div><div><a href="https://dl.dropboxusercontent.com/u/54478577/supporting%20forum%20posts/paraview_odd_symmetry_help/By.jpg" target="_blank">Existing Curvilinear Mesh representation</a></div><div><br></div><div><a href="https://dl.dropboxusercontent.com/u/54478577/supporting%20forum%20posts/paraview_odd_symmetry_help/missingband.jpg" target="_blank">ProblemA demonstration of missing band about x=0</a></div><div><br></div><div><a href="https://dl.dropboxusercontent.com/u/54478577/supporting%20forum%20posts/paraview_odd_symmetry_help/glitch_at_centerline.jpg" target="_blank">ProblemB demonstration of glitch at centerline</a></div><div><br></div><div><br></div><div>Best Regards,</div><div><br></div><div>Noah Reddell</div><div>University of Washington</div><div><br></div></div><br></span>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView" rel="noreferrer" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=ParaView" rel="noreferrer" target="_blank">http://markmail.org/search/?q=ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/paraview" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/paraview</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>Cory Quammen<br>R&D Engineer<br>Kitware, Inc.</div>
</font></span></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br><div>Cory Quammen<br>R&D Engineer<br>Kitware, Inc.</div>
</div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Cory Quammen<br>R&D Engineer<br>Kitware, Inc.</div>
</div>