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, compile-time 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 (feed-back);

    • Solving NLAE (Non-Linear Algebraic Equation) sets;

    • Simultaneous solution of flowsheets, sparse linear solver;

  • Physico-chemical properties:

    • Ideal (Rault and Henry laws);

    • NRTL activity coefficient model;

    • classical cubic equations of state: van der Waals, Peng-Robinson and Soave-Redlich -Kwong;

    • statistical PC-SAFT equation of state;

    • Gas phase, liquid phase or vapor-liquid phase processes;

  • Concentrated parameters unit operations:

    • Stream mixer, 2 or more inlets;

    • Stream splitter (tee), 2 or more outlets;

    • Spawn (duplicates the inlet);

    • Fixed-yield separator, 2 or three outlet streams;

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

    • Isentropic compressor / expander;

    • Counter-current non-reactive adiabatic HTU/NTU absorber/stripper;

    • Reactive multi-stream heat exchanger;

    • Flowsheet-in-Flowsheet;

  • Distributed parameters unit operations:

    • Generic multi-stage 1-D unit, with co-/counter- current flow pattern.