[Paraview] particle tracking on top of unsteady flow solution

Berk Geveci berk.geveci at kitware.com
Wed May 21 10:33:02 EDT 2014


Hi Tom-Robin,

The values in the csv file needs to match the time values (not indices)
reported on the information tab of the reader. There should be a table that
lists time index, value pairs.

Best,
-berk


On Wed, May 21, 2014 at 4:46 AM, Tom-Robin Teschner <
tomrobin.teschner at yahoo.de> wrote:

> wow, thanks a lot for this! I am on a report deadline at the moment but
> will try it afterwards. I guess the easiest way is just to write integers
> (1, 2, 3 ...) as the timesteps to the cgns file which should make the
> mapping work without problems. In any case, I will fiddle around a bit with
> what you give me, should be able to make it work, if I have serous problems
> I might contact you again but think this is already all I need :)
> cheers, tom
>    Berk Geveci <berk.geveci at kitware.com> schrieb am 20:35 Dienstag,
> 20.Mai 2014:
>
>
> OK try this. Apply a Programmable Filter to the csv file. Turn on advanced
> properties on that panel and use the following scripts:
>
> Script:
>
> oi = self.GetOutputInformation(0)
> ut = oi.Get(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_TIME_STEP())
> t = inputs[0].RowData['t']
> output.RowData.append(numpy.transpose(inputs[0].RowData['x'][t==ut]), 'x')
> output.RowData.append(numpy.transpose(inputs[0].RowData['y'][t==ut]), 'y')
> output.RowData.append(numpy.transpose(inputs[0].RowData['z'][t==ut]), 'z')
>
>  RequestInformation script:
>
> oi = self.GetOutputInformation(0)
> oi.Remove(vtk.vtkStreamingDemandDrivenPipeline().TIME_STEPS())
> oi.Append(vtk.vtkStreamingDemandDrivenPipeline().TIME_STEPS(), 0)
> oi.Append(vtk.vtkStreamingDemandDrivenPipeline().TIME_STEPS(), 1)
> oi.Remove(vtk.vtkStreamingDemandDrivenPipeline().TIME_RANGE())
> oi.Append(vtk.vtkStreamingDemandDrivenPipeline().TIME_RANGE(), 0)
> oi.Append(vtk.vtkStreamingDemandDrivenPipeline().TIME_RANGE(), 1)
>
> The csv file looks like:
>
> x,y,z,t
> 0, 0, 0, 0
> 1, 0, 0, 0
> 2, 0, 0, 0
> 1, 0, 0, 1
> 2, 0, 0, 1
> 3, 0, 0, 1
>
> If the column names are different, you can adjust the Script code.
>
> After this filter, you can apply Table to Points and Glyph usual way. The
> heart of this is the inputs[0].RowData['x'][t==ut] bit. This selects
> elements from an array that fit a certain criteria. In this case t == ut
> where t is the time column value and ut is the time value requested from
> the filter by ParaView's animation engine. If you are running into an
> issue, make sure that the values in the csv file match exactly the values
> in the simulation file. If there are round off errors, you may have to
> implement a more complicated logic in the file to round the ut value to one
> that is closest in the table.
>
> Best,
> -berk
>
>
> On Mon, May 19, 2014 at 5:41 AM, Tom-Robin Teschner <
> tomrobin.teschner at yahoo.de> wrote:
>
> Hi Berk,
>
> I think option two would be best as I don't use vtu (at least for my
> animations) + for the sake of animation I can reduce the csv file to
> contain only 1 particle per location so the csv file would be indeed small.
> If you could send me the python file I would be very thankful, could you
> also let me know how to put it into paraview as i have never used the
> python shell before (in paraview).
>
> Thanks,
> Tom
>
>    Berk Geveci <berk.geveci at kitware.com> schrieb am 19:21 Freitag, 16.Mai
> 2014:
>
>
> Since you want to sync the two, you can't live without the time
> information, unless the simulation time values are simply an integer
> sequence of 0, 1, 2, 3 etc. The time value is what ParaView uses to sync
> sources. So unless you have this particular case, we need to do something
> to fix the issue. There are two ways I thought of:
>
> 1. Using a pvd file pointing to vtu files
> 2. Doing Python magic to extract particles from a single csv file
>
> 2 is very doable and fun under two conditions:
> a. the number of particles and the number of time steps are relatively
> small (otherwise the csv file will be too big)
> b. you add the time value as another column.
>
> If these hold, I can send you a script that does this. Otherwise, I can
> send you an example file collection of pvd/vtu files.
>
> -berk
>
>
> On Thu, May 15, 2014 at 5:48 PM, Tom-Robin Teschner <
> tomrobin.teschner at yahoo.de> wrote:
>
> thanks berk,
>
> thanks for the reply. i can live without the time information, but would
> paraview automatically map the csv file to the flow solution that i would
> load before?
> the problem is that i have one cgns file containing all flow solutions so
> i wonder if paraview would know which csv file to use.
> i'll probably give it a try in the next days when i have some time, but
> thanks again for your reply.
>
>  cheers,
> tom
>    Berk Geveci <berk.geveci at kitware.com> schrieb am 15:59 Dienstag,
> 13.Mai 2014:
>  Hi Tom-Robin,
>
> ParaView does not support having a time series of particles within a
> single csv file. You can have a file series of csv files as described here:
>
> http://www.paraview.org/Wiki/ParaView/Users_Guide/Loading_Data
>
> Unfortunately, you will not be able to specify a time value in this case.
> ParaView will pick 0, 1, 2 etc.
>
> To be able to specify time values, you will have to use a  format such as
> pvd or Xdmf. Of course, I just noticed that we have absolutely no
> documentation on the PVD format :-) We'll fix that. Here is some info:
>
> http://www.cacr.caltech.edu/~slombey/asci/vtk/
>
> Xdmf is better documentation.
>
> Both of these formats support ASCII content. Xdmf supports having all of
> the data in one file although if you have thousands of time steps, the file
> may get somewhat bulky.
>
> -berk
>
>
> On Thu, May 8, 2014 at 10:59 AM, Tom-Robin Teschner <
> tomrobin.teschner at yahoo.de> wrote:
>
> Hi,
>
> I am doing particle tracking at the moment and I am visualise my results
> with paraview. I have a 3D Navier Stokes solver from which I get a CGNS
> file with the flow solution (for example velocity and vorticity in x, y and
> z) and I also get csv file where I store position of particles, which i
> track inside my code.
> Now I want to bring them both together, i.e. have an animation of the
> flowfield (let's say of the x velocity) and on top I want to display the
> particles at each timestep (so how they move along the flow). the csv file
> looks something like this (shorten for visualisation):
>
> "X" , "Y" , "Z"
> 0.0068 , 0.52500 , 0.005
> 0.0593 , 0.52510 , 0.005
> 0.1171 , 0.52542 , 0.005
>
> I have loaded the particles into paraview and then used tabletopoints from
> the filters but then I get all the particles displayed, instead of getting
> one particle per timestep. I have tried to use a fourth column for time but
> I was unable to map that to my animation.
>
> Does anyone have an idea how to solve this?
>
> Kind regards,
>  Tom-Robin Teschner
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
>
>
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20140521/ddaa8ac9/attachment-0001.html>


More information about the ParaView mailing list