PERMON (Parallel Efficient Robust Modular Object Numerical) is a software toolbox for the scalable (parallel) solution of quadratic programming (QP) problems based on PETSc. It also includes domain decomposition methods (FETI and Total FETI) and Support Vector Machines (SVM) machine learning methods.
Project homepage: http://permon.vsb.cz
PERMON contains following modules:
- PermonQP - this repository
- solvers and routines for solution of QP problems
- constrained (Total) FETI domain decomposition methods able to solve contact problems
- PermonSVM - SVM machine learning implementation based on PermonQP - separate repository
Please use GitHub for issues and pull requests.
-
set environment variables
PETSC_DIR
andPETSC_ARCH
pointing to a PETSc instancePETSC_ARCH
is empty in case of "prefix" PETSc installation- for more details about PETSc installation and the two environment variables, see PETSc documentation
-
set
PERMON_DIR
variable pointing to the PERMON directory (probably this file's parent directory) -
build PERMON simply using makefile (makes use of PETSc buildsystem):
make
-
if the build is successful, there is a new subdirectory named
$PETSC_ARCH
, the program library is$PETSC_ARCH/lib/libpermon.{so,a}
- shared library (.so) is built only if PETSc has been configured with option
--with-shared-libraries
- all compiler settings are inherited from PETSc
- shared library (.so) is built only if PETSc has been configured with option
The documentation of the routines is available at http://permon.vsb.cz/documentation.htm. There are several examples in the tutorials directory illustrating the basic usage of both modules.
PERMON tries to support newest versions of PETSc as soon as possible. The releases are tagged with major.minor.sub-minor numbers. The major.minor numbers correspond to the major.minor release numbers of the supported PETSc version.