Software development kit for advanced numerical simulations
Jive is an open source, research-oriented C++ programming toolkit aimed at solving partial differential equations (PDEs). It provides a collection of functions and data structures for transforming a PDE into a system of equations; for solving such a system of equations; and for computing quantities derived from the solution. It provides support for various numerical methods, including the (extended) finite element method, the discontinuous Galerkin method, and the discrete element method.
Parallel computing support
Jive has been constructed from the ground up with support for parallel and multi-core computers. It supports domain decomposition (with and without overlapping sub-domains) and functional decomposition. When using domain decomposition, an entire simulation – including both the assembly and solution phase – can be executed in parallel.
Jive is a flexible C++ programming tool kit for building numerical applications. It provides a large collection of functions and data structures, bundled into classes, for solving partial differential equations (PDEs) and for other types of numerical operations, including data analysis and data visualization.
In particular, Jive provides classes for example for:
- Transforming PDEs into (non-linear) systems of equations
- Solving such a (non-linear) systems of equations
- Computing quantities derived from the solution
- Storing and manipulating unstructured grids of arbitrary dimensions
- Building dense and sparse matrices
- Performing (sparse) matrix and vector operations
- Adding and deleting degrees of freedom on the fly
- Evaluating many different types of shape functions
- Performing geometrical operations
Jive is aimed at researchers who want or need to develop their own programs for solving PDEs; for analyzing and processing data; for solving large systems of linear equations; and for other types of numerical computations. Jive is also aimed at students who want to gain practical experience with various numerical methods for solving PDEs.
To use Jive you need to have a working knowledge of the C++ programming language. You also need to have knowledge of the numerical methods that you will be using in your application. Knowledge of basic linear algebra algorithms, such as Gaussian elimination, is recommended but not required.
Jive and its underlying library Jem are open source. They can be used under the terms of the GNU Lesser General Public License (LGPL) version 2.1 or version 3 as published by the Free Software Foundation. In a nutshell, the LGPL permits closed-source applications to make use of Jive (and Jem) as long as these applications are dynamically linked with the Jive (and Jem) libraries. Modification of Jive (and Jem) is possible, as long as the changes are made available in source form to users of the modified Jive library.
The exact terms of the LGPL are available here:
If you can not meet the terms of the LGPL, you can obtain a commercial license from DRG.
Professional support and training for Jive can be obtained from DRG. As the original developers of Jive, we know Jive inside out and can help you effectively with getting up to speed with Jive.
As Jive is open source, we welcome any contributions, including bug fixes and new features; applications based on Jive; documentation and example programs; new material for the website; and any ideas that may help improving Jive.
Note that for any contribution to Jive (and Jem), DRG will ask you to accept a contribution agreement that defines the license rights and obligations that the contributor is willing to grant for the benefit of Jive. The main aim of the contribution agreement is to allow Jive to be used in both open source and commercial programs.
Implementing numerical methods no matter what they are — finite elements, mesh free or discrete elements — in jem-jive is an enjoyable experience to me. It cannot be more true that I would not be able to publish 6 papers for my PhD at the Delft University of Technology if the work was not implemented in Jem-jive. This library provides tools that allow you to quickly have your mathematical model coded thanks to its smart design of the core classes. I have been using Jem-jive since 2007 and I really cannot live without it as long as I still work on computational mechanics problems.
Nguyen Vinh Phu, Monash University