About this project

Choupo is a free and open-source chemical process simulator written in C++17. It is designed as a "glass-box" system, meaning all equations and iterations are visible in the source code and terminal output to facilitate teaching and research. The software is divided into four specialized binaries: - choupoSolve: Steady-state simulation and root finding. - choupoBatch: Time-dependent simulation and recipe-driven sequences. - choupoCtrl: Dynamic continuous simulation with control loops (e.g., PID). - choupoProps: Thermodynamic property evaluation and parameter fitting. Key technical capabilities include: - Thermodynamics: Support for NRTL, Wilson, UNIQUAC, and UNIFAC activity coefficients; SRK and Peng-Robinson cubic Equations of State; and Pitzer electrolyte models. - Unit Operations: Includes flash (VL/LL/VLLE), distillation (Wang-Henke, MESH, FUG), reactors (CSTR, PFR, Gibbs, Batch), heat exchangers, rotating equipment, solids handling (cyclones, crystallisers, dryers), and spiral-wound NF/RO membranes. - Solvers & Drivers: Built-in implementations of Newton-Raphson, Wegstein, RK4, Nelder-Mead, and Levenberg-Marquardt. It supports sequential-modular flowsheets with recycle and outer drivers for optimization and sensitivity sweeps. - Interface: A web-based GUI built with React and Plotly, utilizing WebAssembly to run the C++ engine in the browser. Choupo is designed for minimal dependencies, requiring only a C++17 compiler and GNU make for native builds.