GetDP: a General Environment for the Treatment of Discrete Problems
Keywords: free, finite element, solver, finite elements, integral equations, boundary elements, partial differential equations, numerical methods, electromagnetism, electromagnetics, thermal, thermics, mechanical, mechanics, acoustics, couplings, Gmsh, solveur, elements finis, programme gratuit

# GetDP

# A General Environment for the Treatment of Discrete Problems

#### Patrick Dular and Christophe Geuzaine

GetDP is a free finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions. The main feature of GetDP is the closeness between the input data defining discrete problems (written by the user in ASCII data files) and the symbolic mathematical expressions of these problems.

For example, to solve the Poisson equation `div(a grad(v)) = f` on a domain `D`, an input file ("`.pro`" file) would contain something like this:

      FunctionSpace {
        { Name H1; Type Form0;
          BasisFunction {
            { Name sn; NameOfCoef vn; Function BF_Node; Support D; Entity NodesOf[All]; }
          }
        }
      }
      Formulation{
        { Name Poisson; Type FemEquation;
          Quantity {
            { Name v; Type Local; NameOfSpace H1; }
          }
          Equation {
            Galerkin { [ a[] * Dof{d v}, {d v} ] ; In D; Jacobian V; Integration I; }
            Galerkin { [ f[], {v} ] ; In D; Jacobian V; Integration I; }
          }
        }
      }

i.e., a direct transcription of the discrete function space and weak formulation of the problem.

See GetDP's reference manual for a more thorough overview of GetDP's capabilities.

## Download

GetDP is distributed under the terms of the GNU General Public License (GPL):

- Current stable release (Version 2.11.3, November 5 2017): Windows (32 bit), Linux, MacOS and source code

  The binary versions are compiled with PETSc, with support for the multi-threaded direct sparse linear solver MUMPS. Distributed memory versions for computer clusters (using MPI) should be compiled from source.

- Development version:
  - Git access: '`git clone https://gitlab.onelab.info/getdp/getdp.git`'
  - Latest automatic snapshots: Windows (32 bit), Linux, MacOS and source code
- All versions: binaries and sources

If you use GetDP please cite one of the references in your work (books, articles, reports, etc.).

To help fund GetDP development, you can make a donation.

## Documentation

- Reference manual (also available in pdf and in plain text)
- Short presentation
- Various examples on the site of the ONELAB project
- Gitlab development site with a time line of changes and the bug tracking database
- Changelog
- Mailing lists:
  - getdp (archived here) is the public mailing list for GetDP discussions, and is the best place to ask questions (and get answers!)
  - getdp-announce (archived here) is a moderated ("read-only") list for announcements about new releases and other GetDP news

Please use the public mailing list getdp@onelab.info to send questions or ask for help. If you think you have found a bug in the program, you can file a report directly here.

## Licensing

GetDP is copyright (C) 1997-2017 by P. Dular and C. Geuzaine, University of Liège (see the CREDITS file for more information), and is distributed under the terms of the GNU General Public License (GPL) (version 2 or later).

In short, this means that everyone is free to use GetDP and to redistribute it on a free basis. GetDP is not in the public domain; it is copyrighted and there are restrictions on its distribution (see the license and the related FAQ). For example, you cannot integrate this version of GetDP (in full or in parts) in any closed-source software you plan to distribute (commercially or not). If you want to integrate parts of GetDP into a closed-source software, or want to sell a modified closed-source version of GetDP, you will need to obtain a different license. Please contact us directly for more information.

## Links

- GetDP uses either PETSc or SPARSKIT to solve linear systems, and ARPACK or SLEPc to solve eigenvalue problems.
- Gmsh can be used as a graphical front-end for GetDP, through the ONELAB interface.
- GetDP and Gmsh are bundled in the Onelab/Mobile app for iPhone, iPad and Android devices.