FEniCS / dolfinx

Next generation FEniCS problem solving environment
https://fenicsproject.org
GNU Lesser General Public License v3.0
734 stars 178 forks source link

Make PETSc an optional dependency #2472

Closed garth-wells closed 4 months ago

garth-wells commented 1 year ago

If PETSc was an optional dependency we should, in principle, be able to build under Windows and in particular via conda.

We have native distributed vectors and a beta-version native parallel CSR matrix. We do not have linear solvers but can use SciPy solvers (no MPI).

chrisrichardson commented 1 year ago

I've also used pyamg which is good.

bhaveshshrimali commented 1 year ago

This would be great! I have also used pypardiso which is quite good.

garth-wells commented 5 months ago

We should bump this up in priority - some in industry have license concerns that this change would overcome.

chrisrichardson commented 5 months ago

https://github.com/FEniCS/dolfinx/tree/chris/petsc-optional is part way there. It is quite easy for C++ but will require more work for Python. Maybe we should proceed with the C++ part first?

jorgensd commented 5 months ago

Not quite done, as pyproject.toml depends on PETSc4py? @garth-wells

garth-wells commented 5 months ago

Not quite done, as pyproject.toml depends on PETSc4py? @garth-wells

Some details to work through, but can build locally without PETSc.