Public project portfolio for Paul Kienzle


Over the past two years I have been active in the SasView project, primarily creating a plugin architecture for small angle scattering models written in C to be run on OpenCL enabled computers. We are trying to maximize performance on commodity hardware while preserving accuracy. In addition to tuning the code, this sometimes requires numerical analysis to improve the accuracy, allowing the models to be computed with single precision floating point values. Supporting a very broad range of graphics cards requires automated testing as well careful programming to work around the idiosyncracies in the compilers and libraries provided by the different hardware vendors.
For uncertainty analysis in modeling and inverse problems, Bayesian analysis using Markov Chain Monte Carlo is an effective black box procedure. Define your cost function as a probability distribution and MCMC can pull a sample from the multidimensional probability density function which you can use to get information about confidence intervals and parameter correlations. The Bumps package was developed to provide fitting and uncertainty analysis for Refl1D, but has since been used for fitting problems in other domains such as triple axis spectometry. We plan to make this an independent package during the summer of 2012, with easy installation from pypi.
For some many kinds of science the raw data needs to be transformed through multiple steps and combined with other information to bring it to a state where it can be modelled. We developed a package which allows us to do this on the web. We are using a visual programming model which allows us to wire together the transformations. My contributions to this has primarily been to the backend infrastructure. students produce the front end. Dataflow is live at ReflWeb. A manuscript is in preparation.
Much of my work at NIST has been in reflectometry analysis, which allows users to reconstruct the depth profile of a sample from the measured reflection. These projects are hosted on but developed on GitHub.
Periodic table
There are many large data sets associated with nuclei and ions in the periodic table. No one application needs all of them, but they can all share the basic infrastructure. The periodic table package is a periodic table written in python which allows third party extensions which add attributes to the element, isotope or ion to be independently managed and installed. It includes a chemical formula calculator, but stops short of structural representations of molecules.
I made major contributions to the octave-forge project, gathering contributions from the community and my own code into a set of independently installed third party packages for Octave. I have not been active in this community for a number of years.
Personal projects
Being personal these will be of minimal interest to you, dear reader. My github personal webpage (this page) is hosted here, as well as recent experiments with python.


Publications are listed on google scholar