Skip to content

MKPP Documentation

Welcome to the documentation for the Multiphase Kinetic PreProcessor (MKPP).

Our documentation follows the DiΓ‘taxis framework, organizing information into four distinct categories based on user needs:

                  LEARNING-ORIENTED
                          β”‚
            Tutorials     β”‚    Explanation
                          β”‚
PRACTICAL ────────────────┼──────────────── THEORETICAL
                          β”‚
          How-To Guides   β”‚    Reference
                          β”‚
                   WORK-ORIENTED

πŸŽ“ 1. Tutorials (Learning-Oriented)

Step-by-step lessons for newcomers to learn MKPP through hands-on practice.

  • AOT Solver Quickstart Tutorial
  • Learn how to generate, compile, and execute an Ahead-Of-Time (AOT) Kokkos chemical ODE solver header from a mechanism YAML file.

πŸ› οΈ 2. How-To Guides (Problem-Oriented)

Practical step-by-step guides for solving specific real-world tasks.

  • Create Custom Reactions
  • Define custom kinetics, SymPy math rate expressions, multiphase aerosol condensation, and extend the Python lowering engine.
  • Run a Box Model in Python
  • Integrate any OpenAtmos mechanism as a 0-D chemical box model directly in Python with SciPy β€” no C++ compilation required.
  • Solver Comparison Benchmarks
  • Execute numerical accuracy verification against legacy Fortran KPP, run 24-hour diurnal cycle benchmarks, and profile GPU register usage.
  • Compile & Run Adjoint and TLM Solvers
  • Generate discrete adjoint and Tangent-Linear Model (TLM) solvers using --adjoint for JEDI 4D-Var data assimilation workflows.

πŸ“– 3. Reference (Information-Oriented)

Technical descriptions of APIs, CLI flags, configuration schema, and data structures.


πŸ’‘ 4. Explanation (Understanding-Oriented)

Deep-dive discussions on theoretical foundations, architectural design, and trade-offs.