Kppa is a software tool that automatically generates C or Fortran90 code to simulate chemical kinetic systems. It has many applications including atmospheric simulation, chemical reactor modeling, microorganism growth modeling, and even food spoilage modeling. The generated code can use your GPU or multi-core CPU to deliver outstanding performance. Kppa also uses the sparsity of the model Jacobian and Hessian to achieve excellent computational efficiency. In peer-reviewed studies, Kppa-generated chemical kernels achieved 10-25x the performance of the state-of-the-art codes used in WRF-Chem and CMAQ.
Kppa will help you develop new chemical simulation codes or improve your existing simulations. Kppa input files are written in a superset of the popular KPP language, so many projects will find it easy to integrate Kppa into their workflow. The code Kppa generates is modular and well documented, so using Kppa to testbed numerical integration schemes or add chemistry to an existing model is straightforward.
We offer a variety of licensing options to best fit your organization’s needs. Paid licenses include technical support and free software upgrades. Please send an e-mail to firstname.lastname@example.org for a consultation and quote. A free 60-day demo license is available on request. Please send your request for a free license to email@example.com.
Please visit the Kppa downloads page to download Kppa.
Please see the Kppa installation guide for help installing Kppa.
The simplest way to use Kppa is to pass it an input file on the command line:
This will create a chemical model named “my_model” using the parameters specified in the my_model.kppa file. The output will be several source code files in the current directory. You can use the -o flag to specify an output directory for the generated files:
kppa my_model.kppa -o output
Kppa includes several example models in the “examples” folder. These are a great starting point for creating your own models:
cd /opt/paratools/kppa-0.2/examples cp -R small $HOME cd $HOME/small kppa small.kppa -o small_example
kppa --help to see all Kppa’s command line arguments:
================================================================================ Kppa: the Kinetic preproccessor accelerated
Please join the Kppa user’s mailing list to be notified of new Kppa releases and updates. If you’re having any issues with Kppa or would like to suggest new features, please contact firstname.lastname@example.org.
J.C. Linford, J. Michalakes, M. Vachharijani, and A. Sandu, “Automatic Generation of Multi-Core Chemical Kernels”, IEEE TPDS: Special Issue on High-Performance Computing with Accelerators, Vol. 22, No. 1, p. 119-131, 2011.
We wish to acknowledge Dr. Adrian Sandu, Dr. Valeriu Damian, Dr. Mirela Damian, Dr. Florian A. Potra, and Dr. Gregory R. Carmichael for their contributions to this field, both through published literature and the development of KPP: The Kinetic PreProcessor. Kppa is an original work containing no code from KPP, but it would not have been posible without KPP’s example. We also wish to thank Dr. John Michalakes for his work in GPU acceleration of numerical weather prediction.
A. Sandu, D. Daescu, and G.R. Carmichael, “Direct and Adjoint Sensitivity Analysis of Chemical Kinetic Systems with KPP: I — Theory and Software Tools”, Atmospheric Environment, Vol. 37, p. 5083-5096, 2003.
D. Daescu, A. Sandu, and G.R. Carmichael, “Direct and Adjoint Sensitivity Analysis of Chemical Kinetic Systems with KPP: II — Validation and Numerical Experiments”, Atmospheric Environment, Vol. 37, p. 5097-5114, 2003.
V. Damian, A. Sandu, M. Damian, F. Potra, and G.R. Carmichael, “The Kinetic PreProcessor KPP — A Software Environment for Solving Chemical Kinetics”, Computers and Chemical Engineering, Vol. 26, No. 11, p. 1567-1579, 2002.
A. Sandu, J. Verwer, J. Blom, J. Spee, G.R. Carmichael, and F. Potra, “Benchmarking stiff ODE solvers for atmospheric chemistry problems II: Rosenbrock solvers”, Atmos. Environ., Vol. 31, p. 3459-3472, 1997.