Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions src/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -1308,6 +1308,37 @@ We recommend reviewing examples 9, 14, 16, and 18 before this example._
<div style="clear:both;"/></div>
<br></div>

<div id="ex43" markdown="1">
##Example 43: Weakly-imposed Sliding Boundary Conditions in Linear Elasticity
<img class="floatright" width="240pt" src="../img/examples/ex43.png">

This example code solves a linear elasticity problem using Nitsche's method to
enforce sliding boundary conditions. In particular, we consider a linear
elastic body that is displaced in the normal direction on the entire boundary,
but is free to slide in the tangential direction. This is achieved by imposing
homogeneous Dirichlet boundary conditions on the normal component of the
displacement, while applying homogeneous Neumann boundary conditions on the
tangential components of the displacement. By enforcing a uniform, constant
normal displacement on the boundary, we can simulate the effect of compressing
or expanding the elastic body uniformly. These boundary conditions are applied
weakly using Nitsche's method, allowing for more flexibility in handling
complex geometries in either 2D or 3D.

This example can be viewed as an alternative to Example 28. Whereas Example 28
imposes sliding boundary conditions using the general-purpose constrained
system solvers found in mfem/linalg/constraints.hpp, this example employs
Nitsche's method to weakly enforce the same condition by modifying the
underlying variational formulation. Unlike Example 28, the approach here is
specialized to isotropic linear elasticity, but it has the advantage of
producing a well-conditioned SPD stiffness matrix that can be readily
preconditioned with standard AMG.

_The example has a serial ([ex43.cpp](https://github.com/mfem/mfem/blob/ex43/examples/ex43.cpp))
and a parallel ([ex43p.cpp](https://github.com/mfem/mfem/blob/ex43/examples/ex43p.cpp)) version.
We recommend reviewing examples 2 and 28 before this example._
<div style="clear:both;"/></div>
<br></div>


<div id="nurbs_ex1" markdown="1">
##NURBS Example 1: Poisson Problem
Expand Down
3 changes: 2 additions & 1 deletion src/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,8 @@ MFEM includes a number of well-documented [example codes](examples.md) that can
- [Example 38](https://docs.mfem.org/html/ex38_8cpp_source.html): cut-surface and cut-volume integration,
- [Example 39](https://docs.mfem.org/html/ex39_8cpp_source.html): named mesh attributes,
- [Example 40](https://docs.mfem.org/html/ex40_8cpp_source.html): eikonal equation,
- [Example 41](https://docs.mfem.org/html/ex41_8cpp_source.html): DG/CG IMEX time dependent advection-diffusion.
- [Example 41](https://docs.mfem.org/html/ex41_8cpp_source.html): DG/CG IMEX time dependent advection-diffusion,
- [Example 43](https://docs.mfem.org/html/ex43_8cpp_source.html): weakly-imposed sliding boundary conditions for linear elasticity.

Most of the examples have a serial and a parallel version, illustrating the ease of transition and the minimal code changes between the two.

Expand Down
Binary file added src/img/examples/ex43.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.