ResearchBlog‎ > ‎

[Tool] LCS, FTLE, and CUDA

posted Jul 25, 2011, 10:29 PM by Teng-Yok Lee   [ updated Jul 26, 2011, 8:44 AM ]
http://www.its.caltech.edu/~raymondj/LCS/

Reference:
Raymond Jimenez and Joris Vankerschavery, Optimization of FTLE Calculations Using nVidia's CUDA. August 14, 2009

PS. Since the official site is not very stable, I mirrored the page below. Also, the software is mirrored to here. The credit belongs to the authors.



LCS, FTLE, and CUDA

Summer 2009, I participated in the Freshman Summer Research Institute at Caltech under the guidance of Joris Vankerschaver. FSRI offers incoming Caltech freshmen a five week research job and a primer math course that helps with Math 1a.

I studied accelerating the computation of FTLE fields and LCS by parallel processing using nVidia CUDA. Here's the final paper (PDF, 3.1M). I was able to achieve a 1000x speedup over a naive FTLE implementation, so a comparable real-world speedup would be 50-100x.

But, the most interesting things are the pictures and videos and software:

cuda_ftle

Download

cuda_ftle-0.9.tar.bz2 (16M) contains all of the source code and most of the documentation you'll need to get going. Released August 14, 2009.

Features of this software include a performance boost from CUDA, a fast data plotter (graph_data), the ability to make frames in a batch easily, and the ability to plot tracers that just follow the liquid.

Prerequisites: CUDA (and hardware), libgd, (optionally) PLPlot

If you have any questions/comments/bug reports/complaints, please send email to: raymondj@caltech.edu

Examples

I've uploaded some YouTube videos to illustrate; high-bandwidth connection recommended! Please ask if you would like to see originals (1024x1024 @ 30fps!); arrangements can be made. All pictures with axis labels were created with PLPlot; those without were created with the included graph_data utility.

  • FTLE examples

    Reverse (blue) and forward (red) LCS for a rotating cylinder in a potential flow coming from the left.

  • FTLE examples

    Different resolution of the aforementioned example. This one is high resolution (4096x4096px).

  • FTLE examples

    Different resolution of the aforementioned example. This one is medium resolution (2048x2048px).



  • FTLE examples

    The phase portrait of a forced pendulum system.

  • FTLE examples

    The phase portrait of a forced pendulum system. Higher resolution and longer time constant (T=15).


  • FTLE examples

    A batch of tracers convected forward in a Stokes flow with counter-rotating blinking rotlets. Similar to the system described in Meleshko and Aref.

  • Here is a downloadable version: stokes_stirrer_tracer.avi (10MB)

  • Here is a downloadable version: stokes_stirrer_lcs.avi (1MB)


  • FTLE examples

    Twin vortexes in a co-moving frame plus a time-variant strain flow, as described in Rom-Kedar et al.. Gamma=1.0, Epsilon=0.0

  • FTLE examples

    Twin vortexes in a co-moving frame plus a time-variant strain flow, as described in Rom-Kedar et al.. Gamma=1.0, Epsilon=0.05

  • FTLE examples
  • Twin vortexes in a co-moving frame plus a time-variant strain flow, as described in Rom-Kedar et al.. Gamma=1.0, Epsilon=0.1

  • FTLE examples

    Twin vortexes in a co-moving frame plus a time-variant strain flow, as described in Rom-Kedar et al.. Gamma=0.5, Epsilon=0.1. This image matches the example diagrams in the paper.

  • FTLE examples

    Contrast-enhanced version of the above example to emphasize LCS structure.

  • Here is a downloadable version: rlw_vortex_eps_0.1_gam_0.5_tracers.avi (10MB). A version without the tracers showing one loop of the LCS is here: rlw_vortex_eps_0.1_gam_0.5.avi (740KB)


  • FTLE examples

    The FTLE field for the time-varying double gyre, with the same settings as in Shadden et al.


Comments