Skip to content

jaff.codegen

The jaff.codegen subpackage contains the classes for generating solver source code from a chemical reaction network.

Classes

Class Description
Builder High-level build orchestrator using named plugin templates
Codegen Low-level multi-language code generator (rates, ODEs, Jacobian)
Preprocessor Pragma-based template preprocessor for file-level code generation

Quick Start

from jaff import Network
from jaff.codegen import Codegen, Builder, Preprocessor

net = Network("networks/react_COthin")

# High-level: build a ready-to-run solver
builder = Builder(net)
builder.build(template="python_solve_ivp", output_dir="output/")

# Low-level: generate individual code blocks
cg = Codegen(network=net, lang="c++")
rates = cg.get_rates_str(use_cse=True)
odes  = cg.get_ode_str(use_cse=True)
jac   = cg.get_jacobian_str(use_cse=True)