FREEFEM++ Nonlinear Multiphysics Partial Differential Equation Solver

FREEFEM++ is a directory of examples which illustrate the use of the FREEFEM++ package, a high-level integrated development environment for the numerical solution of nonlinear multiphysics partial differential equations in 2D and 3D.

While trying to 'express myself' in FreeFem++, I discovered a few issues:

• It seems that you can't use underscores in variable names. A statement like "real u_old = 0;" will cause an error.
• A statement like "int n = 10;" is a combination of declaration and initialization. If you want n to have the value 10 in one place and the value 20 in another, then the second operation is simply "n = 20;" whereas "int n = 20;" would cause an error since it is also attempting to declare a variable that has already been declared.
• The finite element system should be thought of as having the form
```            bilinear(u,v)=linear(v)
```
Terms belonging to the linear form must be put in a separate integral. Thus, a simple 2D poisson equation would be expressed by
```            problem poisson ( u, v ) =
int2d ( Th ) dx(u)*dx(v) + dy(u)*dy(v)
- int2d ( Th ) f * v;
```
FreeFem++ CANNOT accept this problem in a single combined integral:
```            problem poisson ( [u,v] ) =
Int2d ( Th ) ( dx(u)*dx(v) + dy(u)*dy(v) -f * v );
```

Local information:

FreeFem++ is installed on the hallway machines, and can be accessed by typing:

```        /usr/local/bin/FreeFem++
```

Related Data and Programs:

BAMG, examples which illustrate the use of BAMG, a program for generating 2D meshes that can be used to define the geometry for the the finite element package FREEFEM++.

DEALII, examples which illustrate the use of DEAL.II, a finite element Differential Equations Analysis Library (DEAL).

FENICS, programs which illustrate the use of a collection of free software with an extensive list of features for automated, efficient solution of differential equations.

FREEFEM++_MSH, a data directory which contains examples of the mesh files created by the FreeFem++ program, which use the extension ".msh".

FREEFEM++_MSH_IO, a FORTRAN90 library which can read and write files used by the FreeFem++ finite element program to store mesh information.

GMSH, examples which illustrate the use of the Gmsh program, a 1D, 2D or 3D mesh generator that can create meshes suitable for use by the finite element method (FEM).

HECHT_FREEFEM++ examples which accompanied the standard reference paper for FREEFEM++, used by Frederic Hecht to illustrate special features of the program.

IFISS, examples which illustrate the use of IFISS, the MATLAB-based flow-solver.

MESH2D_TO_MEDIT, a MATLAB program which accepts the nodes and triangles of a mesh created by MESH2D and creates a corresponding file that is in MEDIT format.

MITCHELL_FREEFEM++, examples which illustrate the implementation of the Mitchell 2D elliptic partial differential equation (PDE) test problems using FREEFEM++.

Reference:

1. Frederic Hecht,
New development in FreeFem++,
Journal of Numerical Mathematics,
Volume 20, Number 3-4, 2012, pages 251-265.

Examples and Tests:

CYLINDER_3D

• cylinder_3d.edp, the input file for a 3D problem involving flow past a cylinder.

EXAMPLE_2.1 defines a Poisson problem on a circle:

EXAMPLE_2.1a defines a Poisson problem on a circle with an elliptical hole.

MICROWAVE is a version of a standard example from the FreeFem++ manual. It models the complex microwave signal in a cooker using the Helmholtz equation, and then the temperature response localized to an item in the cooker, using the usual heat equation, with a source term proportional to the strength of the microwave signal.

MPI_TEST

• mpi_test.edp, an input file which tests the MPI version of FreeFree++.

STOKES_3D

You can go up one level to the Examples directory.

Last revised on 25 July 2015.