Research Summary

Three bottlenecks exist in scientific computing, generating the effective software for complicated mathematical problems, running the software on a machine, and interpreting, or visualizing, the large body of data that is produced by the computation. In computational fluid dynamics and especially in turbulence research, the time spent developing effective software can dwarf the actual running time by a orders of magnitude.

This research focusses on automating the process of synthesizing scientific software using a high level programming language called SPL. SPL allows the programmer to indicate continuous objects of interest, like differentiable functions, distributions, etc. and manipulate them using operations from arithmetic and calculus as well as to limit their possible values by using constraints such as algebraic and differential equations. This specification is then transformed into a more concrete, executable form via user directed transformations coded in conjunction with the computer algebra substrate Weyl.


Divakar Visnawath
Richard Zippel