MITCHELL_FREEFEM++
Mitchell Elliptic Test Problems for FREEFEM++


MITCHELL_FENICS, example scripts which set up and solve Mitchell's 2D Elliptic Partial Differential Equations (PDE's) using the FREEFEM++ package.

Mitchell proposed these problems as a test suite for adaptive PDE solvers. An adaptive solver is one that constructs a proposed solution, estimates the error in this proposed solution, and then modifies its approach, perhaps by refining the mesh or using higher order elements, to reduce the error.

In this directory, we simply attempt to set up a fixed mesh and finite element space and solve the problem once.

Mitchell's problems include:

  1. "Analytic Solution"
  2. "Reentrant Corner"
  3. "Linear Elasticity"
  4. "Peak"
  5. "Battery"
  6. "Boundary Layer"
  7. "Boundary Line Singularity"
  8. "Oscillatory"
  9. "Wave Front"
  10. "Interior Line Singularity"
  11. "Intersecting Interfaces"
  12. "Multiple Difficulties"

Local information:

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

        /usr/local/bin/FreeFem++
      

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

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++.

DOLFIN-CONVERT, a Python program which can convert a mesh file from a given format to an XML format suitable for use by DOLFIN or FENICS, by Anders Logg.

DOLFIN_XML, a data directory which contains examples of XML files that describe 3D finite element meshes as used by DOLFIN and FENICS.

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 3D mesh generator for 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.

MESH2D, a MATLAB library which can automatically create a triangular mesh for a given polygonal region, by Darren Engwirda.

MESHFACES, a MATLAB library which can automatically create a triangular mesh for a given polygonal region that has been subdivided into multiple faces, by Darren Engwirda.

MESHLAB, examples which illustrate the use of the meshlab program, an advanced mesh processing system for automatic or user-assisted editing, cleaning, filtering, converting and rendering of large unstructured 3D triangular meshes. MESHLAB can read and write 3DS, OBJ, OFF, PLY, and STL graphics files.

MITCHELL_DEALII, examples which illustrate the implementation of the Mitchell 2D elliptic partial differential equation (PDE) test problems using DEAL.II.

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

PARAVIEW, examples which illustrate the use of the paraview interactive visualization program.

TETGEN, examples which illustrate the use of TETGEN, a program which can compute the convex hull and Delaunay tetrahedralization of a set of 3D points, or can start with a 3D region defined by its boundaries, and construct a boundary-constrained conforming quality Delaunay mesh, by Hang Si.

TRIANGULATION_TO_XML, a MATLAB program which reads information defining a trinagulation, namely a file of node coordinates and a file of elements defined by node indices, and creates a corresponding DOLFIN XML mesh file.

VISIT, examples which illustrate the use of the visit interactive graphics program.

VTK, a data directory which contains examples of legacy VTK files, a file format used by the Visual Toolkit, and which can be displayed by programs such as paraview and visit;

Reference:

A web site at NIST describes these and many other problems: http://math.nist.gov/amr-benchmark/index.html

  1. Frederic Hecht,
    New development in FreeFem++,
    Journal of Numerical Mathematics,
    Volume 20, Number 3-4, 2012, pages 251-265.
  2. William Mitchell,
    A collection of 2D elliptic problems for testing adaptive grid refinement algorithms,
    Applied Mathematics and Computation,
    Volume 220, 1 September 2013, pages 350-364.
  3. Pedro Morin, Ricardo Nochetto, Kunibert Siebert,
    Data oscillation and convergence of adaptive FEM,
    SIAM Journal on Numerical Analysis,
    Volume 38, Number 2, 2000, pages 466-488.

Examples and Tests:

TEST01 defines the "analytic solution" problem, with the Poisson equation on the [0,+1]x[0,+1] square, with zero boundary conditions.

TEST02A defines the "reentrant corner" problem, using an angle of OMEGA = PI + 0.01.

TEST02B defines the "reentrant corner" problem, using an angle of OMEGA = 5 PI /4.

TEST02C defines the "reentrant corner" problem, using an angle of OMEGA = 6 PI /4.

TEST02D defines the "reentrant corner" problem, using an angle of OMEGA = 7 PI /4.

TEST02E defines the "reentrant corner" problem, using an angle of OMEGA = 8 PI /4.

TEST03a defines the "linear elasticity" problem, a coupled system of two equations with a mixed derivative in the coupling term, defined on the [-1,+1]x[-1,+1] square, with a slit from (0,0) to (1,0), using parameter values nu = 0.3, E = 1, lambda = 0.5444837367825, Q = 0.5430755788367.

TEST03b defines the "linear elasticity" problem, a coupled system of two equations with a mixed derivative in the coupling term, defined on the [-1,+1]x[-1,+1] square, with a slit from (0,0) to (1,0), using parameter values nu = 0.3, E = 1, lambda = 0.9085291898461, Q = -0.2189232362488.

TEST04a defines the "peak" problem on the [0,+1]x[0,+1] square, using parameters XC = 0.5, YC = 0.5, ALPHA = 1000.

TEST04b defines the "peak" problem on the [0,+1]x[0,+1] square, using parameters XC = 0.51, YC = 0.117, ALPHA = 100000.

TEST05 defines the "battery" problem. This problem is defined on a rectangle which has been subdivided into seven subregions. Because of the complicated internal walls, it was expedient to create the mesh beforehand with BAMG.

TEST06A defines the "boundary layer" problem on the [-1,+1]x[-1,+1] square, using the parameter EPS = 0.1.

TEST06B defines the "boundary layer" problem on the [-1,+1]x[-1,+1] square, using the parameter EPS = 0.001. The only difference from TEST06A is the value of EPS, but this test fails to run at all. Even EPS=0.01 won't run.

TEST07 defines the "boundary line singularity" problem on the [0,+1]x[0,+1] square. There is a singularity in the right hand side function F(X,Y), at the left boundary. We use the parameter value ALPHA = 0.6.

TEST08a defines the "oscillatory" problem on the [0,+1]x[0,+1] square, using parameter ALPHA = 1 / ( 10 * PI ).

TEST08b defines the "oscillatory" problem on the [0,+1]x[0,+1] square, using parameter ALPHA = 1 / ( 50 * PI ).

TEST09a defines the "wave front" problem on the [0,+1]x[0,+1] square with parameters ALPHA = 20, XC = -0.05, YC = -0.05, R0 = 0.7.

TEST09b defines the "wave front" problem on the [0,+1]x[0,+1] square with parameters ALPHA = 1000, XC = -0.05, YC = -0.05, R0 = 0.7.

TEST09c defines the "wave front" problem on the [0,+1]x[0,+1] square with parameters ALPHA = 1000, XC = 1.5, YC = 0.25, R0 = 0.92.

TEST09d defines the "wave front" problem on the [0,+1]x[0,+1] square with parameters ALPHA = 50, XC = 0.5, YC = 0.5, R0 = 0.25.

TEST10a defines the "interior line singularity" problem on the [-1,+1]x[-1,+1] square with parameters ALPHA = 2.5, BETA = 0.0.

TEST10b defines the "interior line singularity" problem on the [-1,+1]x[-1,+1] square with parameters ALPHA = 1.1, BETA = 0.0.

TEST10c defines the "interior line singularity" problem on the [-1,+1]x[-1,+1] square with parameters ALPHA = 1.5, BETA = 0.6.

TEST11 defines the "intersecting interfaces" problem on the [-1,+1]x[-1,+1] square.

TEST12 defines the "multiple difficulties" problem, on the "upside down L" shaped region.

You can go up one level to the Examples directory.


Last revised on 15 February 2015.