Speaker
Description
We present the GitHub organization WIAS-PDELib, which provides an
ecosystem of free and open source solvers for nonlinear systems of PDEs written in Julia.
WIAS-PDELib is a collection of a finite element package (ExtendableFEM.jl), a finite volume package (VoronoiFVM.jl), as well as grid managers (e.g., ExtendableGrids.jl) and other related tools for grid generation and visualization.
The ecosystem is characterized by sharing a common data structure for grids and strives to be compatible with the SciML package ecosystem concerning solution objects and solver calls. The nonlinear PDE solvers rely on automatic differentiation for the calculation of Jacobians.
A GitHub organization allows to define different fine-grained maintainer roles so that each package can have its own experts responsible for internals and integrity.
At WIAS Berlin, we have a long history of solver development for PDEs.
The new WIAS-PDELib in Julia builds upon the experience from developing a feature-rich C++ library, PDELib2, which has been used in a number of WIAS application projects.
However, the deployment of the code, the build process, and the adaptability to user extensions were naturally difficult. This is due to the maintenance burden for build systems and interoperability with scripting languages such as Python.
Julia's built-in package management overcomes most of these difficulties.
In addition, it provides built-in reproducibility of exact versions of all code dependencies, as well as portability to all major operating systems.
Another advantage of the Julia language is the easy way to write generic yet efficient code, allowing, for example, our PDE solvers to be composed with the ODE solvers available from the SciML organization.
The PDE solvers are used in a number of scientific projects at WIAS and beyond in areas such as semiconductor modeling, (bio)electrochemistry, porous media flow and catalysis.