### Short Implementation of Adaptive Conforming, Nonconforming, Mixed, and Discontinuous Galerkin FEM's

This software, written for Matlab, contains four different finite element methods to solve the Poisson model problem on a two-dimensional L-shaped domain with homogeneous Dirichlet boundary conditions and a constant right-hand side equal to one.
It implements the lowest order of conforming, non-conforming, mixed, and discontinuous Galerkin finite element methods in
* CFEM.m,
* NCFEM.m,
* MFEM.m,
* DGFEM.m,

together with their corresponding a posteriori error estimators
* CESTIMATE.m,
* NCESTIMATE.m,
* MESTIMATE.m,
* DGESTIMATE.m.

The bisection refinement algorithm for triangulations is implemented in
* BISECT.m,

where the necessary enumerations for element sides are computed in
* SIDES.m.

The bulk marking strategy is implemented in
* MARK.m.

The four adaptive finite element loops of the standard form
solve -> estimate -> mark -> refine
are implemented in the files
* CAFEM.m,
* NCAFEM.m,
* MAFEM.m,
* DGAFEM.m,

which are the main functions to start the adaptive computations. They implement the adaptive finite element loops with bulk parameter theta=0.5 and stop when the number of degrees of freedom exceeds 1e4.
The geometric data of the L-shaped domain is encoded in the files
* c4n.dat
* n4e.dat
* n4Db.dat

where c4n encodes the coordinates of each vertex, n4e encodes the three vertices of each triangle, and n4Db encodes the two vertices of each Dirichlet boundary edge.
Further details on the assembly of the conforming, non-conforming, and mixed finite element matrices can be found in
* J. Alberty, C. Carstensen, and S.A. Funken, Remarks around 50 lines of Matlab: short finite element implementation, Numer. Algorithms 20 (1999), no. 2-3, 117-137.
* C. Bahriawati and C. Carstensen, Three MATLAB implementations of the lowest-order Raviart-Thomas MFEM with a posteriori error control, Comput. Methods Appl. Math. 5 (2005), no. 4, 333-361.
