Home

Awesome

MATLAB Programming for Finite Element Methods

Arrangement of the ongoing Toolbox

We shall establish an iFEM-like package or a simplified version with certain extensions, named mFEM toolbox.

Display and marking of polygonal meshes

We present some basic functions to show the polygonal meshes, including marking of the nodes, elements and (boundary) edges.

Auxiliary mesh data and setboundary.m

For the convenience of computation, we introduce some auxiliary mesh data. The idea stems from the treatment of triangulation in iFEM, which is generalized to polygonal meshes with certain modifications.

1-D problems

FEM1D.m and main_FEM1D.m introduce FEM programming of one dimensional problems. The assembly of stiffness matrix and load vector is explained in detail.

2-D Poisson equation

The source codes of solving the 2-D Poisson equation are presented, see Poisson.m, PoissonP2.m and PoissonP3.m.

Linear elasticity equations

For linear elasticity problems, we give a unified programming framework. Specifically,

We consider three forms of variational problems.

For the first two formulations, “Neumann” boundary conditions and Dirichlet boundary conditions are applied. For the third fomulation, only Dirichlet conditions are used in view of the practical problems.

Plate bending problems

Mixed FEM

The mixed FEM is applied to solve the biharmonic equation, a special case of plate bending problems.

Adaptive finite element method and Newest-node bisection

The adpative finite element method (AFEM) is introduced for the Poisson equation with homogeneous Dirichlet conditions. Each step was explained in detail, viz. the loops of the form:

       SOLVE -> ESTIMATE -> MARK -> REFINE

The newest-node bisection for the local mesh refinement was clearly stated thanks to the smart idea in iFEM.
The MATLAB codes are in Folder afem.

Multigrid V-cycle method for linear elements