Skip to content
/ permon Public

PERMON main package for quadratic programming (PermonQP)

License

Notifications You must be signed in to change notification settings

permon/permon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PERMON toolbox

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.

Quick guide to PERMON installation

  1. set environment variables PETSC_DIR and PETSC_ARCH pointing to a PETSc instance

    • PETSC_ARCH is empty in case of "prefix" PETSc installation
    • for more details about PETSc installation and the two environment variables, see PETSc documentation
  2. set PERMON_DIR variable pointing to the PERMON directory (probably this file's parent directory)

  3. build PERMON simply using makefile (makes use of PETSc buildsystem):

    make

  4. 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

Documentation and examples

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.

Supported PETSc versions

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.