A Suite of Optimal Power Flow Solvers

Beltistos is a suite of high-performance OPF algorithms, including extremely scalable and low memory multiperiod OPF (MPOPF) and security-constrained OPF (SCOPF) solvers. Beltistos adopts selected algorithms implemented in IPOPT that converge faster for OPF problems. The MPOPF and SCOPF solution algorithms implement structure exploiting and data compression techniques, designed appropriately for the particular structure of the MPOPF and SCOPF problems. Beltistos-mem is a variant of the MPOPF algorithm which sacrifices a bit performance for a low memory footprint. Beltistos relies on the PARDISO sparse direct linear solver, allowing enhanced performance and accuracy by utilizing features such as reordering, scaling and pivoting.
  • Multiperiod OPF Problems

    Multiperiod optimal power flow problems including storage devices and generator ramping

  • Security Constrained OPF

    Security constrained optimal power flow problems for very large number of contingencies

  • Stochastic OPF Problems

    Stochastic OPF problems with thousands of scenarios


Academic Licenses / Corporate Licensing Program

Here you can dowload a cost-free academic license or a corporate license for the current release of PARDISO which is an important solver component for the BELTISTOS optimizer. The option corporate is only available for selected corporate or commercial entities. Please choose the desired license type:

License Type Period of Validity License
12 months, user-locked, but host-unlocked license PDF
12 months, user-locked, but host-unlocked license PDF

Library and Interfaces

BELTISTOS (PARDISO 7.0) and the Matlab interface

Architecture Operating System Files
Architecture x86-64, 64-bit, Matlab R2018b Linux ipopt.mexa64, ipopt.m, ipopt_auxdata.m, beltistos.opt, params

Demo example

An extension of the Matpower OPF model which implements inter-temporal coupling introduced by energy storage devices. The manual in section Documentation describes the model and provides a step-by-step guide how to solve it using BELTISTOS.

Description Platform Files
MPOPF model with storage devices Matlab, GitHub repository


BELTISTOS is distributed as a MATLAB MEX application which can be called directly from MATLAB. The MEX binary can be downloaded here. The BELTISTOS solver can be used in MATPOWER as described in the following guide.


In case that you are using the BELTISTOS library please cite:

  1. D. Kourounis, A. Fuchs, and O. Schenk, Towards the next generation of multiperiod optimal power flow solvers, IEEE Transactions on Power Systems, vol. PP, no. 99, pp. 1-10, 2018.
  2. J. KardoŇ°, D. Kourounis and O. Schenk, Two-Level Parallel Augmented Schur Complement Interior-Point Algorithms for the Solution of Security Constrained Optimal Power Flow Problems, in IEEE Transactions on Power Systems, vol. 35, no. 2, pp. 1340-1350, March 2020.
  3. Wächter, A., Biegler, L. On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming, Math. Program. 106, 25-57 (2006).


OPF Performance Comparison

Time for the solution of various OPF benchmarks using various commercial and open source optimizers is shown below. Beltistos is the fastest optimizer for all large-scale cases. MIPS-PARDISO was slower by a factor of 4, while KNITRO and IPOPTPARDISO were up to 5.5 times slower. MIPS with the default linear solver and FMINCON were slower up to a factor of 35 or 40, respectively. Concerning the number of iterations, IPOPT-PARDISO and MIPS-PARDISO perform up to 2.5 times more iterations compared to the Beltistos. Regarding the memory requirements, MIPS-PARDISO is the most efficient optimizer for roughly 50% of the benchmark cases, very closely followed by Beltistos and IPOPT-PARDISO. MIPS with the default linear solver required up to 7 times more memory while solving the largest benchmark. More details about the benchmarks can be found at the following reference: Technical report.

MPOPF Comparision - case118 Time and Memory

The average time per iteration for number of time periods N=3,600 up to N=8,760 corresponding to one year with a time step size corresponding to one hour is shown below. It is worth noting that BELTISTOS-mem, the memory saving approach of Beltistos, is slightly slower than the normal mode of BELTISTOS but it is still almost four orders of magnitude faster than IPOPT and KNITRO. It also needs approximately two orders of magnitude less memory than IPOPT. More details about the benchmarks can be found at the following reference: MPOPF IEEE paper.

MPOPF Performance Comparison

The average time per iteration for number of time periods N=600 up to N=4,800 is shown below for different power grid networks.

SCOPF Performance Comparison

The average time per iteration is shown for the SCOPF benchmarks with different number of (artifitial) contingency scenarios. Serial IPOPT and parallel implementation of Beltistos with distributed memory using different number of MPI proccesses is shown. More details about the benchmarks can be found at the following reference: SCOPF IEEE paper.