CI / CD tools
| LGTM | Coverity |
|:----:|:--------:|
| [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/FreeFem/FreeFem-sources.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/FreeFem/FreeFem-sources/context:cpp) |
|
Jenkins ([FreeFEM-dev](https://ci.inria.fr/freefem-dev/)):
*Develop branch only*
| | macOS | Ubuntu | Windows|
|:-------:|:---------:|:---------:|:------:|
| **Job** | **10.14** | **20.04** | **10** |
| #1 | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job1)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job1/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job1)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job1/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job1)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job1/) |
| #2 | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job2)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job2/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job2)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job2/) | |
| #3 |[![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job3)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job3/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job3)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job3/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job3)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job3/) |
| #4 (OpenMPI) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job4_openmpi)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job4_openmpi/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job4_openmpi)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job4_openmpi/) | |
| #4 (MPICH) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job4_mpich)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job4_mpich/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job4_mpich)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job4_mpich/) | |
| #4 (MSMPI) | | | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job4)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job4/) |
| #5 (OpenMPI) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job5_openmpi)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job5_openmpi/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job5_openmpi)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job5_openmpi/) | |
| #5 (MPICH) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job5_mpich)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job5_mpich/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job5_mpich)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job5_mpich/) | |
| #5 (MSMPI) | | | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job5)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job5/) |
Jenkins ([FreeFEM](https://ci.inria.fr/freefem/)):
*Master branch*
| Release | .pkg | AppImage | .deb | .exe | Docker |
|:-------:|:----:|:--------:|:----:|:----:|:------:|
| [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-createRelease)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-createRelease/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-deployPKG)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-deployPKG/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-deployAppImage)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-deployAppImage/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-deployDEB)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-deployDEB/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=deployEXE)](https://ci.inria.fr/freefem/view/Master/job/deployEXE/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-docker)](https://ci.inria.fr/freefem/view/Docker/job/FreeFEM-docker/) |
See [CI/CD Tools](#cicd-tools)
FreeFEM sources
FreeFEM is a partial differential equation solver for non-linear multi-physics systems in 2D and 3D using the finite element method.
Problems involving partial differential equations from several branches of physics such as fluid-structure interactions require interpolations of data on several meshes and their manipulation within one program.
FreeFEM includes a fast interpolation algorithm and a language for the manipulation of data on multiple meshes. It is written in C++ and the FreeFEM language is a C++ idiom.
For users
The user documentation is available here.
If you use FreeFEM for academic research, please use the following:
BibTeX:
@article{MR3043640,
AUTHOR = {Hecht, F.},
TITLE = {New development in FreeFem++},
JOURNAL = {J. Numer. Math.},
FJOURNAL = {Journal of Numerical Mathematics},
VOLUME = {20}, YEAR = {2012},
NUMBER = {3-4}, PAGES = {251--265},
ISSN = {1570-2820},
MRCLASS = {65Y15},
MRNUMBER = {3043640},
URL = {https://freefem.org/}
}
APA:
Hecht, F. (2012). New development in FreeFem++. Journal of numerical mathematics, 20(3-4), 251-266.
ISO 690:
HECHT, Frédéric. New development in FreeFem++. Journal of numerical mathematics, 2012, vol. 20, no 3-4, p. 251-266.
MLA:
Hecht, Frédéric. "New development in FreeFem++." Journal of numerical mathematics 20.3-4 (2012): 251-266.
For developers
All development efforts take place in the develop branch (or in feature branches: feature-cmake, geneo4PETSc, ... for specific projects)
Do not commit on master branch!
Have a look on the Wiki!
CI/CD Tools
FreeFEM-dev
See Jenkins configuration files
FreeFEM
All: all dependency packages are installed (computer with root access).
No: dependency packages are not installed (computer without root access).
1: Ubuntu 18.04 x86
2: macOS 10.13
3: macOS 10.9
4: Windows 7 + MSYS2 + MS MPI 7
Executed commands:
Automatic configuration:
autoreconf -i
Configuration:
./configure --enable-download --enable-optim
If you do not have administrator rights or do not want FreeFEM files scattered around on your machine, please use the --prefix
option, e.g.:
./configure --enable-download --enable-optim --prefix=${HOME}/FreeFem-install
Download:
./3rdparty/getall -a
PETSc:
cd 3rdparty/ff-petsc
make petsc-slepc
cd -
./reconfigure
Make:
make -j2
make check
Install:
(sudo) make install
See CI/CD Tools Wiki for more informations.