We propose several

These routines have been written by G. Allaire, A. Kelly.

**Warning :**
Although they have been written and tested with great care, these FreeFem++
programs come with absolutely no warranty. Their authors decline any responsability linked to their use.

* What is shape optimization ?*

In the context of solid mechanics it is also called structural optimization.
It is the mathematical theory which makes possible the ``automatic'' optimization
of mechanical structures. By ``automatic'' it is meant that these methods
and algorithms can be implemented on a computer which can analyse and
improve the designs of numerous successive configurations without any
help from the engineer or designer.

For more details on this topic we refer to the book *"Conception optimale de structures"* quoted below.

A simple introductory example is to optimize the distribution of elastic material in a thick plate under load in order to minimize the structure's compliance. The algorithm proceeds by a gradient descent on the elastic energy density of the structure. The total amount of material in the design is constrained by a Lagrange multiplier on the descent step. Numerically implementation of this method requires the use of two capabilities of FreeFEM++: the construction of the three-dimensional mesh, and iterative solution of the PDEs of elasticity by the Finite Element Method on this mesh. For simple structures such as thick plates, the mesh is easily constructed using FreeFEM's internal layer meshing tool. Here a mesh is constructed in two dimensions (x,y) and essentially extruded by copying it in the third (z) and tetrahedralizing. The Finite Element Method is implemented using the Conjugate Gradient solver incorporated in FreeFEM++.

The script for this density optimization algorithm in FreeFEM++ can be downloaded here

.

The SIMP (Solid Isotropic Material with Penalization) is implemented in essentially the same way numerically as the density optimization example above. The difference is that the material density is "penalized" (i.e. the density is raised to some large exponent, say >=3) in order to discourage the formation of intermediate densities (i.e. between 0 and 1) that have no real physical significance in structural optimization. For simple structures such as the long cantilever, which is optimized on a fixed mesh that is shaped as a rectangular prism, the layer mesh capability again proves sufficient to generate the mesh for the Finite Element Method.

**The Thick Plate by the SIMP Method**

A script for the thick plate by the SIMP Method
can be obtained here.

**Long Cantilever by the SIMP Method**

A script for a long cantilever by the
SIMP Method can be obtained
here.

**A Pylon by the SIMP Method**

For more interesting structures (such
as a pylon) where layered meshes prove insufficient, the
three-dimensional meshing is made possible through FreeFEM's interface
with the third-party mesh generator *TetGen* (by Hang Si, see
http://tetgen.berlios.de). A three dimensional
surface mesh generated in FreeFEM++ and tetrahedralized by calling
the *TetGen* software.

A script for the Pylon by the SIMP Method can be obtained
here *(requires TetGen included in current FreeFEM++ releases)*.

FreeFem++ is a software for solving partial differential equations by the finite element method. It is a free software, written in C++, developed by F. Hecht, O. Pironneau, A. Le Hyaric, K. Ohtsuka, and it runs on several Unix, Windows and MacOS platforms. It can be freely downloaded here.

**Thanks**:

*This work was conducted with the support of the ANR Project FF2A3.*