# Install pARMS library of parallel solvers

**URL:** <https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480>\
**Category:** General Discussion\
**Created:** [June 21, 2020, 3:17am UTC](https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480 "2020-06-21T03:17:33Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![abou](https://avatars.discourse-cdn.com/v4/letter/a/5daacb/32.png) [@abou](https://community.freefem.org/u/abou)\
**Post date:** [June 21, 2020, 3:17am UTC](https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480/1 "2020-06-21T03:17:33Z")

</div>

Hello I’m trying to solve a 3-D heat equation. When I reduce the mesh I get this error:  
read mesh ok 0Mesh3, num Tetra:= 583101, num Vertice:= 102624 num boundary Triangles:= 64696  
Mesh3::meshS, num Triangles:= 64696, num Vertice:= 31952 num boundary Edges:= 1496  
— Warning manifold obj nb:816 adj 816 of dim =2  
– Mesh3 : tp.mesh, space dimension 3, num Tetrahedron elts 583101, num Vertice 102624 num Bordary elts 64696  
– Mesh3:MeshS : tp.mesh, space dimension 3, num Triangle elts 64696, num Vertice 31952 num Bordary elts 1496  
– Build Nodes/DF on mesh : n.v. 102624, n. elmt. 583101, n b. elmt. 64696  
nb of Nodes 769965 nb of DoF 769965 DFon=1100  
– FESpace: Nb of Nodes 769965 Nb of DoF 769965  
Error umpfack umfpack\_di\_numeric status -1  
Error umfpack\_di\_solve status -3  
– Solve :  
min 0 max 0

a memory problem I guess.

so I decided to use pARMS a library of parallel solvers. i don’t know if this will solve the problem.

I get this error:

– FreeFem++ v4.6 (Fri, Apr 03, 2020 2:08:08 PM - git v4.6)  
Load: lg\_fem lg\_mesh lg\_mesh3 eigenvalue  
1 : load “msh3”(load: loadLibary C:\Program Files (x86)\FreeFem++\.\msh3 = 0)  
2 : load “medit”(load: loadLibary C:\Program Files (x86)\FreeFem++\.\medit = 0)  
3 : //load “UMFPACK64”  
4 : load “parms\_FreeFem”  
Load error: parms\_FreeFem  
fail:  
list prefix: ‘C:\Program Files (x86)\FreeFem++\.’ list suffix: ‘’ , ‘.dll’  
current line = 4  
Load error : parms\_FreeFem  
line number :4, parms\_FreeFem  
error Load error : parms\_FreeFem  
line number :4, parms\_FreeFem  
code = 2 mpirank: 0

how can I access to this library?

thank you in advance for you response

---

<div class="post-metadata">

**Author:** ![prj](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@prj](https://community.freefem.org/u/prj)\
**Post date:** [June 21, 2020, 4:39am UTC](https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480/2 "2020-06-21T04:39:09Z")

</div>

pARMS plugin has been deprecated for a long time. You can access it through PETSc, but you’ll need to configure it yourself with the added flag `--download-parms`. Otherwise, you can use _hypre_ which will be much much more efficient than pARMS or UMFPACK for the heat equation.

---

<div class="post-metadata">

**Author:** ![abou](https://avatars.discourse-cdn.com/v4/letter/a/5daacb/32.png) [@abou](https://community.freefem.org/u/abou)\
**Post date:** [June 22, 2020, 12:01am UTC](https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480/3 "2020-06-22T00:01:51Z")

</div>

thank you for this proprosition.  
how can i install hypre using windows?

I’ve tried to follow these instructions [INSTALL.rar](https://community.freefem.org/uploads/short-url/wyLKR5ZKZktQIOOhvzHUKAc2tRD.rar) (1.7 KB) but it doesn’t work.

should i install something before?

ps: I never install a library before.

thank you in advance for you response

---

<div class="post-metadata">

**Author:** ![prj](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@prj](https://community.freefem.org/u/prj)\
**Post date:** [June 22, 2020, 5:11am UTC](https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480/4 "2020-06-22T05:11:11Z")

</div>

If you are using [this](https://github.com/FreeFem/FreeFem-sources/releases/download/v4.6/FreeFEM-4.6-win7-64.exe) binary, you can just replace:

```auto
matrix A;
set(A, solver = sparsesolver);
real[int] sol = A^-1 * rhs;

```

by:

```auto
load "PETSc"
matrix A;
Mat wrap(A);
set(wrap, sparams = "-pc_type hypre -ksp_converged_reason");
real[int] sol = wrap^-1 * rhs;

```

You do not have to install _hypre_ yourself. It’s done for you and packaged inside the PETSc plugin.

---

<div class="post-metadata">

**Author:** ![LazarosP](https://avatars.discourse-cdn.com/v4/letter/l/85e7bf/32.png) [@LazarosP](https://community.freefem.org/u/LazarosP)\
**Post date:** [May 6, 2021, 2:53am UTC](https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480/5 "2021-05-06T02:53:01Z")

</div>

Hi prj,  
I have been trying to migrate some old code from FreeFem v3.6 to the latest version. The code is using pARMS\_FreeFem which as you pointed out is now depricated. Is it still possible to use it via PETSc (pARMS was completely absent from PETSc documentation…)? Following your suggestion, I was wondering if it would make sense to include the `--download-parms` flag in the Dockerfile file in the following way (see 4th line):

```
# Configure FreeFEM and download PETSc
RUN autoreconf -i \
    && ./configure --enable-download --enable-optim --enable-generic --prefix=/usr/freefem/ \
    && ./3rdparty/getall -o PETSc -a --download_parms

# Compile PETSc/SLEPc and reconfigure FreeFEM
RUN cd $DIRPATH/3rdparty/ff-petsc \
    && sed -i'.bak' 's#download-mpich#download-mpich=http://www.mpich.org/static/downloads/3.4rc1/mpich-3.4rc1.tar.gz#' Makefile \
    && sed -i '/Not on windows/a\COMMON_FLAGS += CFLAGS="-D_POSIX_C_SOURCE=199309L -std=c99"' Makefile \
    && sed -i '/Not on windows/a\COMMON_FLAGS += CXXFLAGS="-D_POSIX_C_SOURCE=199309L -std=c++11"' Makefile \
    && make petsc-slepc

```

Are there any additional steps after that to be able to use pARMS?  
Thanks a lot in advance,  
Lazaros

---

<div class="post-metadata">

**Author:** ![prj](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@prj](https://community.freefem.org/u/prj)\
**Post date:** [May 6, 2021, 5:49am UTC](https://community.freefem.org/t/install-parms-library-of-parallel-solvers/480/6 "2021-05-06T05:49:40Z")

</div>

My advice is to not use pARMS, as it is not very maintained and probably less efficient than other PETSc solvers. What you are suggesting does not make sense `--download-parms` must be put inside `3rdparty/ff-petsc/Makefile`, with all the other `--download-XYZ`.
