JuliaPDE: Survey of PDE Packages

This is a very nice list, thank you for putting it together! I’d argue for inclusion only of packages that have been updated in the last six months or so. Could also be interesting to list applications (ie programs that solve a particular PDE), I know of a few but I’d be interested to see how many there are.

On the one hand, this intuitively makes sense. However what if there is a stable library that doesn’t take much maintenance, and would be excluded by such a rule?

Good idea, thanks. About that list: would you share please?

1 Like

Unfortunately things don’t seem to work out this way… Either packages get updated regularly, or they bitrot.

Regarding applications, there are at least



But I’m sure there are plenty more

2 Likes

How would you classify the latter? It appears you are it’s co-author :slight_smile:

Of course, that’s why I’m talking about applications :-p Essentially it’s 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).

There’s also https://qojulia.org/, and a couple more at https://github.com/climate-machine

Very cool! Thanks.

I think it is clear why the input of many people will be required to construct the list of relevant PDE packages. I only know my little neck of the woods well, so the more we hear from developers from other areas the better.

2 Likes

The more I dig into what has been done in Julia already, the more impressed I am. There are so many great projects out there!

1 Like

@rveltz

2 Likes

For formally working with operators and to build matrix-free applies there is also:


and

and for playing with low-rank factorisations there is

2 Likes
1 Like

Thank you all who posted above. Please keep the suggestions coming. PRs at https://github.com/JuliaPDE/SurveyofPDEPackages are welcome!

Thanks for compiling this! Is there some goal you’d like to achieve in compiling this survey?

Also, is there a benchmark for how mature a package should be? I’ve got a nodal discontinuous Galerkin package based on codes from this book that I’ve developed this semester for a course, but it’s still very much in progress. However, I plan on actively developing and maintaining it for the foreseeable future. If that’s OK, I’d love to have it included.

1 Like

Well, simply put it is to assess what is available. Other domains have organizations which aggregate packages into groups. That hasn’t happened yet in the area of PDE problems.

If your package works, include it in the list. One never knows which of the packages will actually be useful to someone else.

1 Like

Sounds good. Please add me to the list then!

If topology optimization is of interest here, I have https://github.com/mohamed82008/TopOpt.jl. It is very much my PhD playground more than anything else and I release code in big batches usually after a paper has been submitted. It needs more documentation and dev time so if anyone is interested in collaborating, please let me know.

A further comment on discoverability.
If I were searching for Julia repos on pdes, the following 6 are the ones I’d try:

1 #partial-differential-equations 15 repos: https://github.com/topics/partial-differential-equations?l=julia
2 #pde 11 repos: https://github.com/topics/pde?l=julia
3 #pdes 2 repos: https://github.com/topics/pdes?l=julia
4 Observer: https://juliaobserver.com/searches?utf8=✓&term=pde
5 Filter by tag: https://pkg.julialang.org/docs/
6 Svaksha’s: https://github.com/svaksha/Julia.jl

Of course you wouldn’t discover repos that are not tagged or registered.
In none of these searches would you discover @jlchan’s repo on DG methods for pdes or several other nice repos in @PetrKryslUCSD’s survey.

The R community’s solution is CRAN Task Views, for example see Differential Equations.
Python is trying Python Task Views.

To be clear before CRAN Task Views R users have informally posted links to packages in their domains on their blogs etc. However, having something in an official place w/ volunteers who maintain it is more reliable.

There have been multiple requests for a Julia Task Views. I would be happy to volunteer to organize one on Data sources. @StefanKarpinski @viralbshah @jeff.bezanson would it be possible to create a Julia Task Views w/ volunteers? Possibly (https://julialang.org/community/) below organizations?

2 Likes

Nice. I added an “Optimization” section to accommodate your package. If there is more, don’t hesitate to make a PR.

I added a couple more of your packages. Don’t hesitate to make a PR if something needs to be changed or added. Thanks.

1 Like

Thanks :slight_smile: that list is great!

Also:
https://github.com/alsam/hyperbolic_PDE.jl

1 Like