Git reference: Example elasticity-bracket.
This example employs the adaptive multimesh hp-FEM to solve equations of linear elasticity. The code is basically the same as in example crack and thus we do not discuss it in great detail.
Our domain is a bracket loaded on its top edge and fixed to the wall:
\begin{eqnarray*} \bfu \!&=&\! 0 \ \ \ \ \ \rm{on}\ \Gamma_1 \\ \dd{u_2}{n} \!&=&\! f \ \ \ \ \ \rm{on}\ \Gamma_2 \\ \dd{u_1}{n} = \dd{u_2}{n} \!&=&\! 0 \ \ \ \ \ \rm{elsewhere.} \end{eqnarray*}
The dimensions are L = 0.7 m, T = 0.1 m and the force f = 10^3 N.
The following figures show the two meshes and their polynomial degrees after several adaptive steps:
Note that the meshes are slightly different, not only in polynomial degrees, but also in element refinements. This is possible in Hermes thanks to adaptive multi-mesh hp-FEM.
Convergence graphs of adaptive h-FEM with linear elements, h-FEM with quadratic elements and hp-FEM are shown below.
The following graph shows convergence in terms of CPU time.
Comparison of the multimesh and single-mesh hp-FEM:
In this example the difference between the multimesh hp-FEM and the single-mesh version was not extremely large since the two elasticity equations are very strongly coupled and have singularities at the same points. To see more significant differences, look at the tutorial example P04-linear-adapt/02-system-adapt.