« Back

Simulating Fish Behavior to Protect Migratory Fish Runs


Developing a method of simulating fish behavior can lead to protecting and preserving migratory fish runs. One of our most loved blogs, originally titled “Some Fishy Business for the Army Corps of Engineers” was written in 2011. It has been updated and is re-posted here.

The U.S. Army Corps of Engineers’ (USACE) mission is to provide vital public engineering services in peace and war to strengthen our nation’s security, energize the economy, and reduce risks from disasters. Maintaining the nation’s inland waterways is found beneath that large umbrella and in support of that mission, USACE has been developing an exciting new way of protecting and preserving migratory fish runs.

Simulating Fish Behavior

Dr. Andy Goodwin, a USACE scientist, has developed a method of simulating fish behavior that allows him to evaluate proposed modifications to dams, fish ladders and related structures to predict their effect on fish survival.

His simulation computer code takes as input a computational fluid dynamics (CFD) simulation of water flow through the proposed structures plus fish initial positions and behavior parameters. It outputs the path each fish would be expected to swim over a specified period of time. From this output he can deduce whether the proposed modifications would have a favorable or unfavorable effect on fish survival rates.

This information enables his sponsors to select, from among a number of possibilities, those modifications that will have the most beneficial impact.

Sample output from Dr. Goodwin’s solver. See more on YouTube .

Tecplot 360 reads popular CFD file formats. Try it for Free »

Tecplot 360 Reads Many CFD Solution File Formats

Dr. Goodwin contracts with companies to produce the CFD results he needs. Due to the large number of CFD simulation codes in use today, he was finding it increasingly important to modify his code to read a wide variety of CFD solution file formats, including the n-faced polyhedral meshes used by two of the most popular CFD solvers.

After examining a number of options, he selected Tecplot 360 to do this work for him. This was a good fit because Tecplot 360 already reads the most popular CFD file formats, and has an extensible architecture that allows Dr. Goodwin’s solver to interact with any data Tecplot 360 can read. And I was the lucky Tecplot developer selected to do the interfacing work.

Developing Tecplot 360 Add-ons

The most interesting challenges I faced included dusting off and updating my Fortran. I learned Fortran back in the F77 days; Dr. Goodwin’s code is in Fortran 90/95.

I also needed to:

  • Locate the proper seams at which to interface his code with Tecplot 360.
  • Write the Fortran/C glue code required to allow his code to query Tecplot 360 for the CFD solution information it needs.
  • Implement in Tecplot 360 the ability to detect when a proposed (fish) path intersects a solid boundary or exits the solution domain, since his solver does this for the CFD data it can read.

Our Technical Support Team Can Help

I have been in the IT business for over 25 years, and you provided the best support of any vendor I have worked with to date.

– IT Administrator, College of Pharmacy & Health Sciences, Western New England University

Learn more about Tecplot Technical Support »

I subsequently wrote a CFD post-processing Tecplot add-on to perform some clean-up operations on legacy CFD data to make it suitable input for Dr. Goodwin’s simulations. This “fishy business” was challenging and interesting, and I have enjoyed seeing the results that Dr. Goodwin produced with Tecplot assistance.

And finally, a required disclaimer: Any statements, opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views or policies of the federal sponsors, and no official endorsement should be inferred.



By Dave Taflin
Developer | Tecplot, Inc.

Read Dave’s employee profile »