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.
Licensing
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 kppa@paratools.com for a consultation and quote. A free 60-day demo license is available on request. Please send your request for a free license to kppa@paratools.com.
Downloads
Please visit the Kppa downloads page to download Kppa.
Installation Instructions
Please see the Kppa installation guide for help installing Kppa.
Quick Start
The simplest way to use Kppa is to pass it an input file on the command line:
kppa my_model.kppa
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
Type kppa --help
to see all Kppa’s command line arguments:
================================================================================ Kppa: the Kinetic preproccessor acceleratedKppausage: kppa [-h] [-v {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-n NAME] [-o OUTPUTDIR] [-f] [-l LICENSE] [-t] input_file Kppa: The Kinetic preprocessor accelerated positional arguments: input_file Input file in KPP or KPPA language optional arguments: -h, --help show this help message and exit -v {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --verbosity {DEBUG,INFO,WARNING,ERROR,CRITICAL} Set program logging level -n NAME, --name NAME Name of generated model -o OUTPUTDIR, --outputdir OUTPUTDIR Destination directory for generated files -f, --force Overwrite output files if they already exist -l LICENSE, --license LICENSE Path to license file -t, --test Execute unit tests. Writes files in current directory
Examples
Support
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 kppa@paratools.com.
Publications
Credits
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.
Software License
Kppa is copyright (c) ParaTools, Inc. All rights reserved.
Kppa is licensed under the terms described in license file included in the Kppa distribution.