Home

Awesome

Survey of PDE Packages

State of the ecosystem as of: 10/02/2023

This is a brief list of packages relevant when solving partial differential equations with Julia. The information is mostly gleaned from repositories of packages or from published reports or articles. If

file an issue, or even better, make it a PR.

For some projects the actual software is not available (or it is not clear how to get it). In that case the document would at least include a link to the paper or other source of information.

Table of contents

<a name="general"></a>General PDE approximation methods

ApproxFun.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

ApproxFun is a package for approximating functions. It is in a similar vein to the Matlab package Chebfun and the Mathematica package RHPackage. Active and high quality project.

DiffEqDocs

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

DifferentialEquations.jl: Efficient Differential Equation Solving in Julia. This is a suite for numerically solving differential equations written in Julia and available for use in Julia, Python, and R. The purpose of this package is to supply efficient Julia implementations of solvers for various differential equations. Equations within the realm of this package include:

<a name="tm"></a>Transform methods

julia-pde-benchmark

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Benchmarking a simple PDE integration algorithm in Julia and other languages. Fourier approach.

DFTK.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The density-functional toolkit is a library of Julia routines for experimentation with plane-wave-based density-functional theory (DFT): it is an engine to solve nonlinear eigenvector equations discretized in a Fourier basis, applied to the Kohn-Sham equations of electronic structure theory (as well as a couple of others).

FourierFlows.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Tools for solving partial differential equations on periodic domains using Fourier-based pseudospectral methods.

PencilFFTs.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Fast Fourier transforms of MPI-distributed Julia arrays that can be used for pseudospectral partial differential equation solvers.

<a name="fdm"></a>Finite difference methods

DiffEqOperators.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Automatic construction of arbitrary order finite difference stencils on regular and irregular grids. Utilizes stencil compilers and matrix-free implementations for low memory high efficiency implementation.

sbp.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Finite difference method, unregistered.

SummationByPartsOperators.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A library of classical summation-by-parts (SBP) operators used in finite difference methods to get provably stable semidiscretisations, paying special attention to boundary conditions.

EconPDEs.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package solves (systems of) nonlinear ODEs/PDEs arising in economic models (i.e. parabolic/elliptic PDEs arising from HJB equations) The underlying algorithm is based on a combination of upwinding and fully implicit time stepping, using sparse Jacobians.

Partial-Differential-Equations

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Solving partial differential equations using finite difference methods on Julia.

hyperbolic_PDE.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The examples are given from the book Numerical Solution of Hyperbolic Partial Differential Equations by John A. Trangenstein.

JuliaIBPM

An ecosystem of repositories for solving PDEs with the immersed boundary projection method on staggered Cartesian grids.

ParallelStencil.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Package for writing high-level code for parallel high-performance stencil computations that can be deployed on both GPUs and CPUs

ImplicitGlobalGrid.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Almost trivial distributed parallelization of stencil-based GPU and CPU applications on a regular staggered grid

<a name="fem"></a>Finite element methods

FEniCS.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

FEniCS.jl is a wrapper for the FEniCS library for finite element discretizations of PDEs.

Ferrite.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A simple finite element toolbox written in Julia. It is actually quite powerful, and it is being actively updated. Some parallels with deal.II might help with the learning curve.

JuliaFEM

The JuliaFEM project develops open-source software for reliable, scalable, distributed Finite Element Method.

Maintains an overview page with documentation at http://www.juliafem.org/.

NESSie.jl

Paper: Efficient and intuitive finite element and boundary element methods for nonlocal protein electrostatics in the Julia language Link

GaLerKia-a-unified-Julia-implementation-of-mesh-and-meshfree-based-Galerkin-methods

Provide a modern and unified simulation platform for finite element methods, meshfree Galerkin methods and virtual element methods. The platform is being built over three Julia independent libraries: FEMLia (for finite elements), MEMLia (for meshfree methods) and VEMLia (for virtual elements).

Makhno.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

HPFEM.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

HP Finite elements in Julia. One-dimensional. Might have been abandoned.

EllipticFEM.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

FEM Solver for Elliptic, Parabolic and Hyperbolic PDEs Written in Julia. No update in the past three years.

BEAST.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The package can support finite element discretization. Also listed as a boundary-element code. Also see TeaTalk.jl.

SauterSchwabQuadrature.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

HyperbolicDiffEq.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Active with updates for Julia 1.3.

Gridap.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Gridap provides a rich set of tools for the grid-based approximation of PDEs, mainly finite element methods, written in the Julia programming language. Some features of the library are:

FinEtools.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

FinEtools is a package for basic operations on finite element meshes. It also supports a number of packages for applications to heat conduction, acoustics, static and dynamic linear and nonlinear stress analysis, vibrations and fluids, model reduction, and flexible beams.

DiscretePDEs.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

DiscretePDEs.jl is a package for discretizing partial differential equations using DiscreteExteriorCalculus.jl. In addition to functionality for discretizing arbitrary PDEs, DiscretePDEs.jl also has functionality specifically for modeling electromagnetism.

PDESolver.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

PDESolver is a multi-physics solver primarily focused on Computational Fluid Dynamics.

juSFEM

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Smoothed FEM. Paper

jPDE

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Partial Differential Equations with Julia, with FEM.

CFD_Julia_A_Learning_Module_Structuring_an_Introductory_Course_on_Computational_Fluid_Dynamics

CFD Julia is a programming module developed for senior undergraduate or graduate-level coursework which teaches the foundations of computational fluid dynamics (CFD). The paper explains various concepts related to spatial and temporal discretization, explicit and implicit numerical schemes, multi-step numerical schemes, higher-order shock-capturing numerical methods, and iterative solvers in CFD.

HDiscontinuousGalerkin.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A finite element toolbox, with focus on Hybridizable Discontinuous Galerkin (at the moment it only works in 2D).

GalerkinSparseGrids.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

For solving hyperbolic partial differential equations in higher dimensions, where the curse of dimensionality restricts the computational feasibility of discretization of space using regular grid methods. Instead, the employ sparse grid construction is employed.

LibTOAST.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

LibTOAST.jl is a low-level interface to the TOAST++ library. (TOAST++ is an end-to-end solution for forward modelling and image reconstruction in Diffuse Optical Tomography).

PtFEM.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Programs in chapters 4, 5 and early sections of 6 as described in "Programming the Finite Element Method" by Smith, Griffiths and Margetts.

NodesAndModes.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A collection of routines to compute high order "modal" and "nodal" basis functions and their derivatives on 1D, 2D (triangle, quadrilateral), and 3D (hexahedral, tetrahedral, wedge, pyramid) elements. Routines are also provided for quadrature rules and for computing optimized interpolation points.

StartUpDG.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A translation of the core Matlab codes from Nodal Discontinuous Galerkin methods to Julia.

eFEMpart

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Finite Element code in the Julia language focused on complex fluid-dynamic and porous-media applications, with the possibility of including a particle simulator in the framework of the discrete element method. The 'eFEM' component allows the use of Finite Elements discretizations to solve common problems in fluid dynamics, and the 'part' refers to mesh-free particle methods (discrete element method) primarily aimed at granular-media simulations where continuum constitutive laws are unavailable.

Elfel.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Elfel.jl is an Extensible library for Finite Element methods. It provides support for the development of Finite Element Method applications, especially in continuum mechanics. Mixed methods with cooperating finite element spaces are supported. High performance is one of the focus points.

NNFEM.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

NNFEM is a lightweight educational 2D finite element library with truss and 2D quadrilateral elements. Different constitutive relations are supported, including plane stress/strain, hyperelasticity, elasto-plasticity, etc. It supports unstructured grid. It supports learning a neural network-based constitutive relations with both direct data (i.e, strain-stress pairs) and indirect data (i.e. full displacement field) via automatic differentiation, and solving finite element problems with network-based constitutive relations.

Trixi.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Trixi.jl is a numerical simulation framework for hyperbolic conservation laws written in Julia. A key objective for the framework is to be useful to both scientists and students. Therefore, next to having an extensible design with a fast implementation, Trixi is focused on being easy to use for new or inexperienced users, including the installation and postprocessing procedures. Its features include:

<a name="fvm"></a>Finite volume methods

FiniteVolume.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Finite Volume code. Not much information on the site.

VoronoiFVM.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Solver for coupled nonlinear partial differential equations based on the Voronoi finite volume method.

JFVM.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Finite volume tool for the transport phenomena in chemical and petroleum engineering and similar fields (linear transient advection-diffusion PDE). Updated for Julia 1.0.

Oceananigans.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Incompressible fluid flow solver written in Julia that can be run in 1-3 dimensions on CPUs and GPUs. It is designed to solve the rotating Boussinesq equations used in non-hydrostatic ocean modeling but can be used to solve for any incompressible flow.

Kinetic.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A lightweight finite volume toolbox for solving Boltzmann equation and its moments systems (Euler, Navier-Stokes, etc).

FiniteVolumeMethod.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This is a package for solving two-dimensional PDEs of type $\partial_t u + \boldsymbol{\nabla} \boldsymbol{\cdot} \boldsymbol{q}(x, y, t, u) = R(x, y, t, u)$ with the finite volume method with a user-provided triangular mesh. Builds on the DifferentialEquations.jl interface to allow for different algorithms, linear solvers, etc. to be used with ease.

HighVoronoi.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A Julia Package for setting up high dimensional (i.e. any dimension >= 2) Finite Volume problems on Voronoi Meshes.

<a name="sem"></a>Spectral element methods

SpectralElements.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Not much activity.

PolynomialBases.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

CFD_Julia_MAE5093

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This repository contains fundamental codes related to CFD that can be included in any graduate level CFD coursework. A number of codes are included in CFD_Julia module, for instance 1D inviscid Burgers equation, 1D Euler equation, 2D Poisson equation, and 2D incompressible Navier-Stokes equations.

A library of functions for polynomial bases used in spectral element methods.

<a name="bie"></a>Boundary element, boundary integral methods

BEAST.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package contains common basis functions and assembly routines for the implementation of boundary element methods. Examples are included for the 2D and 3D Helmholtz equations and for the 3D Maxwell equations.

NESSie.jl

Paper: Efficient and intuitive finite element and boundary element methods for nonlocal protein electrostatics in the Julia language Link Also listed as a finite element toolkit.

<a name="mfe">Mesh free methods and particle methods

HighDimPDE.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A Julia package for Deep Backwards Stochastic Differential Equation (Deep BSDE), Feynman-Kac and Multi-level Picard (MLP) methods to solve high-dimensional non-local nonlinear PDEs. Reference: Boussange, V., Becker, S., Jentzen, A., Kuckuck, B., Pellissier, L., Deep learning approximations for non-local nonlinear PDEs with Neumann boundary conditions. arXiv (2022)

Peridynamics.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Peridynamics is a non-local formulation of continuum mechanics in which material points represent the continuum. It is particularly well suited for dynamic fracture simulations.

Programming_the_material_point_method_in_Julia

GaLerKia-a-unified-Julia-implementation-of-mesh-and-meshfree-based-Galerkin-methods

See information above for the finite element methods.

<a name="vem">Virtual element methods

jFEMTools.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Tools for FEM and VEM (Virtual Element) methods.

GaLerKia-a-unified-Julia-implementation-of-mesh-and-meshfree-based-Galerkin-methods

See information above for the finite element methods.

eFEMpart

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Listed above under finite elements as well. Finite Element code in the Julia language focused on complex fluid-dynamic and porous-media applications, with the possibility of including a particle simulator in the framework of the discrete element method. The 'eFEM' component allows the use of Finite Elements discretizations to solve common problems in fluid dynamics, and the 'part' refers to mesh-free particle methods (discrete element method) primarily aimed at granular-media simulations where continuum constitutive laws are unavailable.

<a name="mm">Multi-method packages

CLIMA

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The Climate Machine is a new Earth system model that leverages recent advances in the computational and data sciences to learn directly from a wealth of Earth observations from space and the ground.

<a name="nonclassical">Non-classical methods

NeuralNetDiffEq.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A library for solving (partial) differential equations with neural networks. Currently supports parabolic differential equations, though a generic NN-based PDE solver is in progress. Can solve very high dimensional (hundred or thousand) partial differential equations through universal differential equation approaches.

<a name="solvers">Solvers, sparse and hierarchical matrix libraries

DifferentialEquations.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A package for solving time-stepping of differential equations which result from PDE discretizations. Heavy emphasis on large-scale stiff differential equations with sparse Jacobians, i.e. DEs from PDEs. See the stiff ODE tutorial for more details.

PETSc.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package provides a high level interface for PETSc.

PETSc2.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package provides thin wrappers for PETSc, as well as a few convenience functions that take advantage of multiple dispatch.

PositiveFactorizations.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

PositiveFactorizations is a package for computing a positive definite matrix decomposition (factorization) from an arbitrary symmetric input. The motivating application is optimization.

FiniteDiff.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package is for calculating derivatives, gradients, Jacobians, Hessians, etc. numerically.

SparseDiffTools.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package is for exploiting sparsity in Jacobians and Hessians to accelerate computations. Matrix-free Jacobian-vector product and Hessian-vector product operators are provided that are compatible with AbstractMatrix-based libraries like IterativeSolvers.jl for easy and efficient Newton-Krylov implementation. It is possible to perform matrix coloring, and utilize coloring in Jacobian and Hessian construction.

HierarchicalMatrices.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package provides a flexible framework for hierarchical matrices in Julia.

LowRankApprox.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This Julia package provides fast low-rank approximation algorithms for BLAS/LAPACK-compatible matrices based on some of the latest technology in adaptive randomized matrix sketching.

LazyBandedMatrices.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package supports lazy banded and block-banded matrices.

BlockBandedMatrices.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A Julia package for representing block-block-banded matrices and banded-block-banded matrices.

kernelmatrices.jl

This software suite is a companion to the manuscript Scalable Gaussian Process Computations using Hierarchical Matrices.

ClusterTrees.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Tree data structures for fast multipole methods and H-matrices.

Arpack.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Julia wrapper for the arpack library designed to solve large scale eigenvalue problems. ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.

AlgebraicMultigrid.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Solve sparse linear systems using Algebraic Multigrid (AMG). This works especially well for symmetric positive definite matrices.

NonlinearEigenproblems.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This package aims to provide state-of-the-art algorithms to solve the nonlinear eigenvalue problem. This currently includes (but is not restricted to) Newton-type methods, Subspace methods, Krylov methods, contour integral methods, block methods, companion matrix approaches. Problem transformation techniques such as scaling, shifting, deflating are also natively supported by the package.

BifurcationKit.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This organisation provides a set of tools to compute (automatically) bifurcation diagrams of ODE, DDE, PDE, nonlocal problems, etc. It can thus tackle large dimensional problems, by for example, using a GPU. The computation of periodic orbits and their bifurcations is also possible.

KrylovKit.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A Julia package collecting a number of Krylov-based algorithms for linear problems, singular value and eigenvalue problems and the application of functions of linear maps or operators to vectors.

LinearOperators.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Operators behave like matrices, but are defined by their effect when applied to a vector. They can be transposed, conjugated, or combined with other operators cheaply. The costly operation is deferred until multiplied with a vector.

LinearMaps.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A Julia package for defining and working with linear maps, also known as linear transformations or linear operators acting on vectors. The only requirement for a LinearMap is that it can act on a vector (by multiplication) efficiently.

AbstractOperators.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Abstract operators extend the syntax typically used for matrices to linear mappings of arbitrary dimensions and nonlinear functions. Unlike matrices however, abstract operators apply the mappings with specific efficient algorithms that minimize memory requirements. This is particularly useful in iterative algorithms and in first order large-scale optimization algorithms.

MUMPS.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

MUMPS is a library for the solution of large linear systems using a factorization. Structure can be exploited, such as symmetry, or symmetry and definiteness. The factorization and solve phases can be performed in parallel.

Pardiso.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The Pardiso.jl package provides an interface for using PARDISO 6.0 and Intel MKL PARDISO from the Julia language.

Metis.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Metis.jl is a Julia wrapper to the Metis library which is a library for partitioning unstructured graphs, partitioning meshes, and computing fill-reducing orderings of sparse matrices.

IterativeSolvers.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

IterativeSolvers is a Julia package that provides iterative algorithms for solving linear systems, eigensystems, and singular value problems.

Preconditioners.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Selected pre-conditioners for iterative solvers of coupled linear algebraic equations. Including AMG.

<a name="geo">Geometry and topology

Manifolds.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Manifolds.jl aims to provide both a unified interface to define and use manifolds as well as a library of manifolds to use for your projects.

Grassmann.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The Grassmann.jl package provides tools for doing computations based on multi-linear algebra, differential geometry, and spin groups using the extended tensor algebra known as Leibniz-Grassmann-Clifford-Hestenes geometric algebra.

DiscreteDifferentialGeometry.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The DiscreteDifferentialGeometry Julia package defines types and methods to implement Discrete Differential Geometry.

<a name="grids">Mesh and Grid Generation

Gmsh.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Gmsh.jl contains API for Gmsh: a three-dimensional finite element mesh generator. With the help of Gmsh.jl, it is possible add parametric model construction and/or automatic mesh generation to a FEM/FVM pipeline.

Triangulate.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Julia wrapper for Johnathan Richard Shewchuk's Triangle mesh generator.

TetGen.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

The TetGen.jl package is a Julia wrapper for the C++ project TetGen. This wrapper enables TetGen based tetrahedral meshing, and (constrained) 3D Delaunay and Voronoi tesselation.

CompScienceMeshes.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Geometry types and algorithms for computational science. Meshes, charts, and neighborhoods.

VoronoiDelaunay.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Fast, robust construction of 2D Delaunay and Voronoi tessellations on generic point types.

MiniQhull.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A simple Julia wrapper around Qhull to compute Delaunay triangulations in arbitrary dimensions. This is a direct wrapper using ccall (in constrast to QHull.jl that is a wrapper around a python wrapper of Qhull.)

FMMTrees.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Tree data structures for H(2), hierarchical matrices, and FMM-like algorithms (fast multiple methods).

DistMesh.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Tetrahedral mesh refinement on signed distance/implicit functions or level sets using TetGen.

HalfEdges.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Halfedge data structure for navigating and querying polygonal meshes.

MeshCore.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Small package for the topology of meshes for the Finite Element Methods (FEM). All essential topological incidence relations are provided: see the guide. The library provides efficient storage of coordinates and connectivities in static arrays for speed of access.

MeshSteward.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Small package for the management of meshes for the Finite Element Methods (FEM). A convenience layer on top of MeshCore.jl.

DelaunayTriangulation.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Package for constructing unconstrained or constrained Delaunay triangulations of planar point sets, with support for mesh refinement with constant or custom area and angle constraints, with a generic interface for geometric primitives to allow for easy customisation. Exact predicates are used to make the procedures robust.

<a name="post"></a>Postprocessing, visualization

WriteVTK.jl.

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This module allows to write VTK XML files, that can be visualised for example with ParaView. Seems pretty complete, writes compressed files.

VTKDataTypes.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

VTKDataTypes.jl presents a Julia type system for representing and manipulating VTK data natively in Julia.

<a name="hpc"></a>HPC, Parallel processing

MPI.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This provides Julia interface to the Message Passing Interface (MPI), roughly inspired by mpi4py.

PumiInterface.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

This code provides a way to use PUMI from Julia by wrapping functions in PUMIs APF API.

<a name="opt"></a>Optimization

TopOpt.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

A WIP topology optimization package in pure Julia.

<a name="misc"></a>Miscellanea

AD4SM.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Automatic Differentiation for Solid Mechanics in Julia.

RHEOS.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

RHEOS, an abbreviation of Rheology Open Source, is a software package written in the Julia programming language that provides tools for analyzing rheological data.

Tensors.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Efficient computations with symmetric and non-symmetric tensors with support for automatic differentiation.

TensorOperations.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Fast tensor operations using a convenient Einstein index notation.

TensorToolbox.jl

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Julia package for tensors (dense tensors, Tucker format, Kruskal (CP) format, Hierarchical Tucker format, Tensor Train format).

NonlinearPDE

GitHub contributors GitHub closed issues GitHub last commit GitHub stars GitHub license

Solution of a nonlinear elliptic PDE with multi-grid.

Waiting for classification