[Julia][julia] interface to [HYPRE][hypre] ("high performance preconditioners and solvers
featuring multigrid methods for the solution of large, sparse linear systems of equations on
massively parallel computers").
[Julia](https://julialang.org) interface to [HYPRE](https://github.com/hypre-space/hypre)
("high performance preconditioners and solvers featuring multigrid methods for the solution
of large, sparse linear systems of equations on massively parallel computers").
While the main purpose of HYPRE is to solve problems on multiple cores, it can also be used
for single core problems. HYPRE.jl aims to make it easy to use both modes of operation, with
@ -22,7 +23,7 @@ HYPRE.jl can be installed from the Pkg REPL (press `]` in the Julia REPL to ente
@@ -22,7 +23,7 @@ HYPRE.jl can be installed from the Pkg REPL (press `]` in the Julia REPL to ente
(@v1) pkg> add HYPRE
```
To configure MPI, see the [documentation for MPI.jl][mpi-docs].
To configure MPI, see the [documentation for MPI.jl](https://juliaparallel.org/MPI.jl/).
## Changes
@ -35,9 +36,10 @@ Some basic usage examples are shown below. See the [documentation][docs-url] for
@@ -35,9 +36,10 @@ Some basic usage examples are shown below. See the [documentation][docs-url] for
### Example: Single-core solve with standard sparse matrices
It is possible to use Julia's standard sparse arrays (`SparseMatrixCSC` from the
[SparseArrays.jl][sparse-stdlib] standard library, and `SparseMatrixCSR` from the
[SparseMatricesCSR.jl][sparsecsr] package) directly in HYPRE.jl. For example, to solve
`Ax = b` with conjugate gradients:
[SparseArrays.jl](https://github.com/JuliaSparse/SparseArrays.jl) standard library, and
`SparseMatrixCSR` from the
[SparseMatricesCSR.jl](https://github.com/gridap/SparseMatricesCSR.jl) package) directly in
HYPRE.jl. For example, to solve `Ax = b` with conjugate gradients:
```julia
# Initialize linear system
@ -53,10 +55,10 @@ x = HYPRE.solve(cg, A, b)
@@ -53,10 +55,10 @@ x = HYPRE.solve(cg, A, b)
### Example: Multi-core solve using PartitionedArrays.jl
For multi-core problems it is possible to use [PartitionedArrays.jl][partarrays] directly
with HYPRE.jl. Once the linear system is setup the solver interface is identical. For
example, to solve `Ax = b` with bi-conjugate gradients and an algebraic multigrid
preconditioner:
For multi-core problems it is possible to use
[PartitionedArrays.jl](https://github.com/fverdugo/PartitionedArrays.jl) directly with
HYPRE.jl. Once the linear system is setup the solver interface is identical. For example, to
solve `Ax = b` with bi-conjugate gradients and an algebraic multigrid preconditioner: