Code

Here you can download some code I’m releasing open source. I can’t release all of the primary code I work on for research due to restrictions on some of the components (at this time), but other smaller programs that I wrote as tools I’m free to share. If you use anything and find it helpful, or if you find a bug or just make improvements, please let me know!

Tools

vol-to-mole
DOI
Many multicomponent fuel mixtures are described using liquid volume percentage; this needs to be converted to mole fraction to be used in chemical kinetics software. This little program takes species and volume fraction and converts it to mole fractions, and calculates the mole fractions of the products and species.

irrev_mech
DOI
This is a Python utility for converting Chemkin-format reaction mechanisms with reversible reactions into irreversible-only mechanisms.

VODE_F90
I modified the great VODE_F90 code to be compatible with OpenMP, so that simultaneous integrations can be performed at the same time. Contact me if you have more questions about how you can use it.

Research

create_rate_subs
DOI
This Python tool creates C and CUDA species and reaction rate subroutines from a Chemkin-style reaction mechanism.

lid-driven-cavity_gpu
DOI
This code solves the classic lid-driven cavity problem using the finite difference method, with both C and CUDA versions. I implemented various GPU optimization strategies to show the potential acceleration in this paper: K.E. Niemeyer and C.J. Sung, “Recent progress and challenges in exploiting graphics processors in computational fluid dynamics,” J. Supercomput. 67 (2014):528–564. doi:10.1007/s11227-013-1015-7.

cf_expm
DOI
Calculates the terms needed for a rational function (partial fraction) approximation to the matrix exponential, using the Carathéodory-Fejér method. It is based on the Matlab code in L.N. Trefethen, J.A.C. Weideman, T. Schmelzer, “Talbot quadratures and rational approximations,” BIT Numer. Math. 46 (2006) 653–670. doi:10.1007/s10543-006-0077-9.