LLNL / echemfem

Finite Element Method for Electrochemical Transport (EchemFEM)
MIT License
20 stars 5 forks source link

Justification in paper for using Firedrake #12

Closed TomTranter closed 4 months ago

TomTranter commented 4 months ago

This is a minor point but there is no justification for using Firedrake. Are there any major advantages to using this over FEniCS which seems to be a larger and more developed project with similar functionality?

tlroy commented 4 months ago

There are some key advantages for Firedrake over the two FEniCS codes (the legacy version, which is no longer being developed, and FEniCSx).

For echemfem, the main advantage of Firedrake over both FEniCS codes is the solvers. First, since Firedrake is built on top of PETSc, its interface with PETSc is essentially seamless. Second, Firedrake has a great interface for defining custom preconditioners with custom operators (e.g. the p-MG preconditioner for high order elements used in the DG paper).

FEniCSx is relatively early in its development so it does not have important features such as pyadjoint support, which is crucial since we are using echemfem for design optimization.

Firedrake is still actively developed (big UK grant 2021-2025). New features are still being added (e.g. external operators for things like coupling Firedrake with Machine Learning operators).

TomTranter commented 4 months ago

I think you should add a few words to that effect in the paper

tlroy commented 4 months ago

Added a few words in the latest commit to joss branch.