Docker containers are relatively small, standalone, executable software packages that include everything needed to run an application, such as code, runtime, libraries, and system tools. Containers are a form of operating system virtualisation. To use Docker containers, you need to install suitable software. For instance, you can install Docker Desktop for Windows 11, MacOS, and various distributions of Linux. The latest PSOPT distribution on GitHub now provides a Docker container file (Dockerfile). This gives an alternative way of installing and running PSOPT.
The following are opportunities provided by the use of docker containers with PSOPT.
Reproducible Environments: A Docker container ensures PSOPT is run with the same OS libraries, compiler, and dependencies, eliminating configuration mismatches, regardless of the host OS.
Easier Setup: Users avoid manually installing IPOPT, ADOL-C, COLPACK, EIGEN3, and other dependencies. A single docker build command spins up a ready-to-run PSOPT environment.
Continuous Integration (CI) Testing: Automated pipelines (e.g. GitHub Actions) can pull and test PSOPT in a Docker image, allowing fast and consistent builds.
Cloud or HPC Deployment: Clusters often support container-based workloads. Docker images simplify running large-scale optimal control problems in cloud services or high-performance computing environments.
PSOPT is now published in a rolling release mode.
Rolling release is a concept in software development of frequently delivering updates to applications. This is in contrast to a standard or point release development model which uses software versions which replace the previous version. Users can download the latest source code from the GitHub repository. The documentation will also be updated on a rolling release basis.
Please visit the GitHub page to download the most recent version of the source code and documentation.
PSOPT Release 5 is now available from GitHub via the following link:
https://github.com/PSOPT/psopt
New features of Release 5 include:
PSOPT now builds using CMake, a well known open-source, cross-platform software tool used to build, test and package software, which means that PSOPT can be compiled on a range of platforms where CMake is available and where its dependencies can be installed.
PSOPT now uses Eigen3 for its interface and for internal linear algebra manipulations. Eigen3 is a free state-of-the-art linear algebra suite written in C++. With the use of Eigen3, various old dependencies (DMatrix, LUSOL, SparseSuite) have been removed.
The SNOPT interface is working once again.
Miscellaneous bug fixes
PSOPT has been deployed in a the Advanced PlatformTechnology Centre at the US Department for Veteran Affairs as part of their high performance computational resources for musculoskeletal modeling, biomechanical simulation and controller design
PSOPT Release 4 is now available to researchers as an EasyBuild module on the HPC clusters at Cranfield University, UK.
PSOPT Release 4 is now available from GitHub via the following link:
https://github.com/PSOPT/psopt
New features of Release 4 include:
PSOPT now builds on the latest Long Term Support Ubuntu release (18.04.2 LTS)
Support of newer versions of IPOPT (3.12.12) and ADOL-C (2.6.3).
Fixing of various memory leaks
Improvements and corrections to local mesh refinement procedure
General improvements to the code.
Fixing of various bugs
Support for a newer version of GNUPLOT.
Additional examples
NLR, the national aerospace laboratory of the Netherlands, is using PSOPT as a key tool in the computation of optimised aircraft continuous descent trajectories, aiming to reduce fuel consumption, emissions and noise, as part of their involvement in the EU project Clean Sky.
PSOPT is being used to help design optimal trajectories for the first Brazilian deep space mission to the triple asteroid system 2001 SN263, which is due to be launched in 2016
PSOPT Release 3 has been published. New feasures of release 3 include:
New interface to facilitate the definition of single or multi-phase parameter estimation problems involving sampled observations, including the calculation of confidence bounds on the estimated parameters.
Support of newer versions of IPOPT (version 3.9.3) and ADOL-C (version 2.1.12).
Additional auxiliary functions, including 2-D interpolation functions.
New function to generate multi-plots with GNUplot, this is multiple plots in a single window.
Several additional examples
Miscellaneous improvements and bug fixing, including improvements in the calculation of adjoint variables.
Release 2 of PSOPT has been published on 26 February 2010. New features included in release 2 are:
Alternative local discretizations (trapezoidal, Hermite-Simpson and central differences)
Evaluation of the discretization error by computing the integral of the absolute approximation error over each collocation interval.
Automatic mesh refinement option for global and local discretizations.
Ability to use the exact Hessian under IPOPT.
Straightforward definition of multi-segment problems, which are multiphase problems where the dynamics and path constraints are the same in all phases.
Several new real world examples, including the zero propellant maneuver of the International Space Station.
Data interpolation using cubic splines.
Additional interface functions to GNUplot to produce 3D curves, surfaces, and polar plots.
Additional auxiliary functions.
Miscellaneous minor improvements and corrections.