The LIBPF CORE module contains the basic functionalities required to make it easier for process engineers to create process models in the C++ programming language: quantities with physical units of measurement, pure components, reactions, physical properties, material streams with unlimited phases, phase equilibria and flashes, reactions and equilibrium reactions.
This is the detailed list of the LIBPF CORE modeling features:

Basic functionalities:

Quantities with physical units of measurement and dimensional checks;

Analytical, compiletime sparse derivatives;

Persistency of the objects to a relational database;


Problem Resolution:

Steady state processes;

Sequential resolution of flowsheets with material and heat recycle (direct substitution or accelerated direct substitution);

Process specifications (feedback);

Solving NLAE (NonLinear Algebraic Equation) sets;

Simultaneous solution of flowsheets, sparse linear solver;


Physicochemical properties:

Ideal (Rault and Henry laws);

NRTL activity coefficient model;

classical cubic equations of state: van der Waals, PengRobinson and SoaveRedlich Kwong;

statistical PCSAFT equation of state;

Gas phase, liquid phase or vaporliquid phase processes;


Concentrated parameters unit operations:

Stream mixer, 2 or more inlets;

Stream splitter (tee), 2 or more outlets;

Spawn (duplicates the inlet);

Fixedyield separator, 2 or three outlet streams;

Optionally reactive (fixed yield stoichiometric or equilibrium) flash with phase equilibrium;

Isentropic compressor / expander;

Countercurrent nonreactive adiabatic HTU/NTU absorber/stripper;

Reactive multistream heat exchanger;

FlowsheetinFlowsheet;


Distributed parameters unit operations:
 Generic multistage 1D unit, with co/counter current flow pattern.